添加 Swap 空间
一、查看当前 Swap 使用情况
1 | sudo swapon --show |
或使用:
1 | free -h |
输出示例:
1 | total used free shared buff/cache available |
这表示你当前有 1GB 的 Swap,其中已使用 500MB。
🛠 二、增加 Swap 大小(以添加一个 2GB 的 Swap 文件为例)
✅ 步骤如下:
- 关闭现有 Swap
1 | sudo swapoff -a |
⚠️ 注意:如果你正在运行一些依赖 Swap 的程序,请确保它们不会因内存不足而崩溃。
- 删除旧 Swap 文件(可选)
如果之前是用文件作为 Swap,比如 /swapfile,可以删除它:
1 | sudo rm /swapfile |
- 创建新的 Swap 文件(如 2GB)
1 | sudo fallocate -l 2G /swapfile |
如果你的系统不支持 fallocate,可以用 dd 替代:
1 | sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 |
- 设置合适的权限(防止被普通用户读写)
1 | sudo chmod 600 /swapfile |
- 格式化为 Swap 文件系统
1 | sudo mkswap /swapfile |
- 启用新 Swap
1 | sudo swapon /swapfile |
- 永久生效(写入 /etc/fstab)
编辑 /etc/fstab 文件:
1 | sudo nano /etc/fstab |
添加一行:
1 | /swapfile none swap sw 0 0 |
保存并退出(Ctrl + O → Enter → Ctrl + X)。
🔍 三、验证新 Swap 是否生效
1 | sudo swapon --show |
你应该看到类似:
1 | NAME TYPE SIZE USED PRIO |
或者使用:
1 | free -h |
确认 Swap 容量已经变为 2GB。
⚙️ 四、调整 Swap 使用频率(swappiness)
Linux 控制 Swap 使用频率的参数叫 swappiness,值范围是 0~100:
0 = 尽可能少使用 Swap
100 = 积极使用 Swap
默认值通常是 60。对于桌面或服务器环境,建议设置为 10~30。
查看当前 swappiness 值:
1 | cat /proc/sys/vm/swappiness |
临时修改(重启后失效):
1 | sudo sysctl vm.swappiness=10 |
永久修改:
编辑配置文件:
1 | sudo nano /etc/sysctl.conf |
添加或修改这一行:
1 | vm.swappiness=10 |
保存并退出。
📌 五、常见问题解答
❓ 我应该设置多大的 Swap?
| 物理内存 (RAM) | 推荐 Swap 大小 |
|---|---|
| ≤ 2GB | ≥ 2GB |
| 4GB | 1~2GB |
| 8GB+ | 0~1GB 或关闭 |
如果你使用的是 SSD,Swap 性能还可以接受;如果是 HDD,尽量避免频繁使用 Swap。
❓ 可以完全关闭 Swap 吗?
可以,但不推荐。关闭 Swap 可能导致系统在内存不足时直接崩溃(OOM Killer 杀掉进程)。如果你内存充足(如 ≥ 8GB),可以关闭 Swap:
1 | sudo swapoff -a |
✅ 六、完整脚本(一键操作)
你可以复制下面这个脚本,一键完成 Swap 扩展到 2GB:
1 | #!/bin/bash |
保存为 resize_swap.sh,然后运行:
1 | chmod +x resize_swap.sh |
🧠 总结
操作 命令
查看 Swap free -h 或 swapon –show
创建 Swap 文件 fallocate -l 2G /swapfile
格式化 Swap mkswap /swapfile
启用 Swap swapon /swapfile
开机自动启用 添加 /swapfile none swap sw 0 0 到 /etc/fstab
调整使用频率 sysctl vm.swappiness=10
