Ubuntu 升级或调整 Swap 的关键注意事项
一 升级前的检查与备份
- 查看当前 Swap 配置与使用:使用命令sudo swapon --show与free -h,确认是否已有 Swap 分区/文件、容量与当前使用量,避免重复配置或误删正在使用的 Swap。
- 备份重要数据:涉及磁盘写操作(创建/删除/扩容 Swap)前,先做好数据备份,以防误操作导致数据丢失。
- 规划容量与介质:结合内存容量与磁盘空间选择 Swap 大小;若仅有 HDD,尽量将 Swap 放在碎片少的分区;若有 SSD,Swap 速度更快,但需权衡写入寿命(见下文“性能与寿命”)。
- 明确目标:是“新增/替换 Swap”,还是“仅调整 swappiness/vm 参数”,不同目标操作步骤不同。
二 升级或调整过程中的要点
- 优先使用 Swap 文件:相比分区,Swap 文件更灵活,扩容/替换无需重分区,步骤为:创建文件(如fallocate -l 4G /swapfile;不支持时用dd)、设置权限600、格式化mkswap、启用swapon。
- 替换旧 Swap 的正确顺序:先sudo swapoff /旧路径,再删除旧文件/分区,创建并启用新的 Swap,最后更新 /etc/fstab 的挂载条目,避免同时启用多个 Swap 导致混乱。
- 持久化配置:将新的 Swap 添加到 /etc/fstab,常用写法为“/swapfile none swap sw 0 0”或“/swapfile swap swap defaults 0 0”,保存后可用swapon -a测试加载是否成功。
- 无需重启即可生效:多数场景下,新增/启用 Swap 后无需重启;若涉及系统级参数或挂载表变更,建议重启验证。
- 验证是否生效:使用swapon --show与free -h确认新 Swap 已启用且容量正确。
三 容量与性能设置建议
- 容量选择(经验值):
- 物理内存≤2GB:Swap 设为内存的2倍;
- 2–8GB:设为内存的1.5倍;
- >8GB:通常设为8GB即可,过大浪费空间。
- 性能与寿命:Swap 基于磁盘,速度远慢于内存;SSD 的 Swap 速度约为物理内存的 1/10,HDD 更慢。若长期大量使用 Swap,系统会明显卡顿,优先考虑增加物理内存。
- 减少换页倾向:适度降低 swappiness(默认60),如设为10,可减少系统对 Swap 的依赖,但过低可能影响休眠与缓存策略,需结合实际负载测试。
- 休眠支持:若需要休眠(Hibernate),Swap 容量应≥ 物理内存,否则无法完整保存内存映像。
四 常见问题与快速排查
- 已存在 Swap 时:先确认现有 Swap 的路径与大小,再决定是扩容还是替换,避免重复添加。
- 创建失败或设备忙:确保已swapoff相关项;fallocate 失败时改用 dd 创建文件。
- 开机未自动挂载:检查 /etc/fstab 条目是否正确,执行swapon -a测试;必要时修正后重启验证。
- 频繁使用 Swap 导致卡顿:优先增加内存或降低 swappiness,并迁移大内存/编译类任务到内存更充足的时段或机器。
- 云服务器/容器场景:部分环境对 Swap 有策略限制(如默认关闭或配额受限),需结合平台文档调整。