1. 检查当前 swap 状态
首先查看系统是否已经配置了 swap:
1 | sudo swapon --show |
或
1 | free -h |
如果输出中没有显示任何 swap 分区或文件,说明当前没有启用虚拟内存。
2. 决定 swap 大小
常见建议:
- 当物理内存 ≤ 2GB 时,swap 大小可设为内存的 1~2 倍。
- 示例中我们创建 1GB 的 swap 文件,你可以根据磁盘剩余空间调整。
3. 创建 swap 文件
使用 fallocate 命令快速创建指定大小的文件(推荐):
1 | sudo fallocate -l 1G /swapfile |
如果 fallocate 不支持,可用 dd 命令替代(速度稍慢):
1 | sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress |
4. 设置正确的权限
为了安全,swap 文件必须只能由 root 读写:
1 | sudo chmod 600 /swapfile |
5. 将文件格式化为 swap
1 | sudo mkswap /swapfile |
输出会显示该文件的 UUID 和大小。
6. 启用 swap 文件
1 | sudo swapon /swapfile |
再次检查 swap 是否生效:
1 | sudo swapon --show |
或查看内存使用情况:
1 | free -h |
7. 开机自动挂载
编辑 /etc/fstab 文件,使系统启动时自动启用 swap:
1 | echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
或者手动编辑(用 sudo nano /etc/fstab),在文件末尾添加:
1 | /swapfile none swap sw 0 0 |
8. (可选)调整 swap 使用倾向
Linux 内核参数 swappiness 控制使用 swap 的积极程度(值范围 0~100,默认 60)。
对于内存较小的服务器,可以适当调低以减少磁盘 I/O:
1 | # 临时修改(重启后失效) |
验证最终配置
重启服务器或执行以下命令确保 swap 正常工作:
1 | sudo swapon --all # 重新加载所有 swap(根据 fstab) |
注意事项
磁盘空间:确保根分区有足够的剩余空间(df -h)。
性能:swap 位于磁盘,比物理内存慢很多,仅作为内存不足时的补充。
如果已有 swap 分区:上述操作会添加第二个 swap 空间,系统会同时使用它们。