Swap是什么?如何分配?
什么是 Swap?
可以把服务器的内存(RAM)想象成一张桌子:
- 内存大 → 桌子大 → 可以同时放很多书(程序/数据)。
- 内存小 → 桌子小 → 书放不下。
Swap 就像是桌子旁边的抽屉(硬盘/SSD 空间划出来的一块区域):
- 当桌子(内存)不够用时,系统会把暂时不用的书(数据)搬到抽屉里(Swap),腾出桌面空间。
- 等需要用的时候再拿回来。
特点
- 优点:避免“桌子放不下时直接崩溃(OOM Kill)”,系统还能坚持下去。
- 缺点:抽屉(Swap 在硬盘/SSD)比桌子(RAM)慢很多倍,所以性能会下降。
为什么你需要 Swap?
如果你的服务器(学生机)只有 2GB/4GB 内存,但 Next.js 构建会瞬间吃 1~2GB+ 内存,超过就会触发 OOM Kill,导致你看到 SSH 掉线、服务挂掉。
👉 有了 Swap,就算物理内存满了,系统还能把一部分数据挪到硬盘里,不至于立刻杀进程。
怎么看有没有 Swap?
1 | free -h |
输出里有一行:
1 | Swap: 0B 0B 0B |
说明还没开 Swap。
如果是:
1 | Swap: 4.0G 0B 4.0G |
说明有 4GB Swap,可以帮你缓冲。
怎么加 Swap?
常见操作(给 4GB swap):
1 | # 创建一个 4GB 的文件当作 swap 空间 |
✅ 总结:
Swap 就是“虚拟内存”,用硬盘空间临时当内存,解决内存不足导致的崩溃问题。它不会让程序更快,但能让小内存机器更稳,不至于一跑构建就挂。
适用于Ubuntu系统的脚本
1 | !/bin/bash |
使用方法
在服务器上创建脚本文件:
1
vim check_or_create_swap.sh
把上面内容粘贴进去,保存退出。
赋予可执行权限:
1
chmod +x check_or_create_swap.sh
用 root 权限运行:
1
sudo ./check_or_create_swap.sh
脚本会:
- 显示当前 swap 状态
- 如果没有,就自动创建一个 4GB 的
/swapfile - 启用并写入
/etc/fstab,确保开机自动生效 - 最后再显示新的 swap 状态
⚠️ 提示:
- 如果你的服务器硬盘空间比较小,可以把
SIZE="4G"改成2G。 - 如果要更稳(比如跑很多构建任务),可以改成
8G。 - 查看整体磁盘挂载情况命令
1 | df -h |
- df = disk free
- -h = human readable(人类可读,显示 GB/MB)
示例输出:
1 | Filesystem Size Used Avail Use% Mounted on |
- Size:磁盘总大小
- Used:已用空间
- Avail:剩余可用空间
- Use%:使用率
- Mounted on:挂载点(/ 就是根目录,主要看这个)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 sharpmind.tech!

