如何在 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.0Gi

Swap 已经激活。 ✅

进阶:调节 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.conf

Swappiness 参考表

行为
0完全避免使用 swap(仅在紧急情况下使用)
10强烈倾向使用 RAM —— 适合桌面/工作站
60Ubuntu 默认 —— 均衡
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
0 浏览
Back to Blog

相关文章

阅读更多 »