如何在 Ubuntu 上添加交换空间(5GB 示例)
发布: (2026年3月16日 GMT+8 18:38)
3 分钟阅读
原文: Dev.to
Source: Dev.to
为什么 Swap 很重要
Swap 是操作系统在物理内存(RAM)用尽时使用的磁盘空间作为溢出区。如果没有 Swap,内核在内存耗尽时可能会启动 OOM killer(致命的内存不足杀手),杀掉进程。使用 Swap,系统会在负载过重时逐渐降级,而不是直接崩溃。
我的配置: 7.57 GB RAM,0 KB swap。添加 5 GB swap 可以让系统在高负载下有喘息的余地。
添加 Swap 的步骤
步骤 1:创建 Swap 文件
sudo fallocate -l 5G /swapfile如果系统没有 fallocate,可以使用 dd 作为备选:
sudo dd if=/dev/zero of=/swapfile bs=1M count=5120步骤 2:锁定权限
sudo chmod 600 /swapfile这确保只有 root 能读写该 swap 文件,防止潜在的数据泄漏。
步骤 3:将文件格式化为 Swap
sudo mkswap /swapfile典型输出:
Setting up swapspace version 1, size = 5 GiB (5368705024 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx步骤 4:启用 Swap
sudo swapon /swapfile步骤 5:设为永久
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab将此行追加到 /etc/fstab,可保证系统启动时自动激活 swap。
步骤 6:验证
free -h你应该会看到类似如下的输出:
total used free shared buff/cache available
Mem: 7.5Gi 3.2Gi 1.1Gi 512Mi 3.2Gi 3.6Gi
Swap: 5.0Gi 0B 5.0GiSwap 已经激活。 ✅
进阶:调节 Swappiness
Ubuntu 默认 vm.swappiness=60,这意味着当 RAM 使用率达到约 40 % 时就开始使用 swap。对于内存充足的桌面或工作站,建议使用更低的值。
查看当前值
cat /proc/sys/vm/swappiness立即将其设为 10
sudo sysctl vm.swappiness=10永久保存
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.confSwappiness 参考表
| 值 | 行为 |
|---|---|
0 | 完全避免使用 swap(仅在紧急情况下使用) |
10 | 强烈倾向使用 RAM —— 适合桌面/工作站 |
60 | Ubuntu 默认 —— 均衡 |
100 | 积极使用 swap |
对于大多数拥有 4 GB 以上 RAM 的桌面用户,10 是最佳选择。
快速总结
# 1. 创建
sudo fallocate -l 5G /swapfile
# 2. 加固
sudo chmod 600 /swapfile
# 3. 格式化
sudo mkswap /swapfile
# 4. 启用
sudo swapon /swapfile
# 5. 持久化
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 6. 验证
free -h
# 进阶:调节 swappiness
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf