Ubuntu 在 VMware 中使用 Swap 的完整指南
一、概念与规划
- **Swap(交换空间)**用于在物理内存不足时临时换出内存页,避免 OOM,但速度明显慢于 RAM。
- 在虚拟机中,Swap 可用两种方式:分区或Swap 文件。
- 容量建议(经验值):内存≤4GB时,Swap 取内存的1.5–2 倍;内存**>4GB时,Swap 与内存等大**即可。例如:8GB 内存 → 8GB Swap。此建议用于桌面与通用开发场景,可按工作负载微调。
二、查看与启用现有 Swap
- 查看当前 Swap 状态与大小:
- free -h
- swapon --show
- cat /proc/meminfo | grep -i swap
- 启用/关闭某个 Swap:
- sudo swapon /dev/sdXN 或 sudo swapon /swapfile
- sudo swapoff /dev/sdXN 或 sudo swapoff /swapfile
- 若使用 Swap 文件,建议设置权限:sudo chmod 600 /swapfile
三、方式一 使用 Swap 文件(推荐,简单安全)
- 创建并启用 4GB 示例(按需替换大小):
- sudo fallocate -l 4G /swapfile
- sudo chmod 600 /swapfile
- sudo mkswap /swapfile
- sudo swapon /swapfile
- 开机自动挂载:
- echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab
- 验证:free -h 应显示新增的 Swap 容量。
- 调整 Swappiness(控制内核使用 Swap 的倾向,默认60;桌面环境常设为10以更少使用 Swap):
- 临时:sudo sysctl vm.swappiness=10
- 永久:echo ‘vm.swappiness=10’ | sudo tee -a /etc/sysctl.conf
- 适用场景:不想动分区表、LVM、加密分区或磁盘空间紧张的虚拟机环境。
四、方式二 使用 Swap 分区(适合已有分区或重装/扩容场景)
- 场景 A:已有 Swap 分区但想扩容
- 用 GParted(LiveCD/USB 或已安装后运行 gparted)操作:
- 右键 Swap 分区选择 Swapoff;
- 调整系统分区(如 /dev/sda1)大小,留出所需空间;
- 在空闲空间上新建 Linux swap 分区(必要时先建 extended 再建逻辑分区);
- 应用变更后,右键新 Swap 分区选择 Swapon;
- 获取新分区 UUID:sudo blkid,更新 /etc/fstab 中的 Swap 条目为新的 UUID,确保开机启用。
- 场景 B:在安装 Ubuntu 时创建 Swap 分区
- 安装器选择“Something else”手动分区,建议至少创建:
- /boot:约 200MB
- Swap:按上文建议(如内存 8GB → 8GB)
- /:剩余全部空间
- 说明:若使用 LVM/加密分区,步骤会更复杂,需先在相应卷组内调整逻辑卷后再格式化并启用 Swap。上述 GParted 流程与安装器分区要点适用于 VMware 中的 Ubuntu 虚拟机。
五、性能与稳定性建议
- 尽量为虚拟机分配充足的物理内存,减少对 Swap 的依赖;Swap 仅作兜底。
- 适度降低 swappiness(如设为10)可提升交互与编译类桌面体验;内存非常充裕时可保持默认 60。
- 若主机内存紧张,避免在 VMware 全局设置中勾选“Fit all virtual machine memory into reserved host RAM”,以免主机整体卡顿;同时可启用“Disable memory page trimming”以减少主机与虚拟机间的内存页同步(仅在确有内存余量且稳定性可接受时启用)。