优化 Ubuntu 的 Swap 可以从减少不必要的 swap 使用、提升 swap 性能、合理配置 swap 大小三个方面入手。下面按实用程度给你一套完整方案。
swapon --show
free -h
cat /proc/sys/vm/swappiness
swappiness 决定系统使用 swap 的积极程度(0–100)。
10–301–1060–80sudo sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf
添加或修改:
vm.swappiness=10
生效:
sudo sysctl -p
✅ 这是最推荐的第一步优化
| 内存大小 | Swap 建议 |
|---|---|
| ≤2G | 2 × RAM |
| 2–8G | 等于 RAM |
| 8–64G | 0.5–1 × RAM |
| ≥64G | 4–16G(或不用) |
⚠️ 除非需要休眠(hibernate),否则不需要太大 swap
如果你现在用的是 swap 分区,建议换成 swapfile,方便调整。
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo swapoff /dev/sdX
sudo nano /etc/fstab # 删除旧 swap 行
Swap 在:
sudo sysctl vm.vfs_cache_pressure=50
写入 /etc/sysctl.conf 永久生效。
systemctl set-property your.service MemoryMax=2G
htop
ps aux --sort=-%mem
❌ 不建议
✅ 正确做法:保留 swap,但降低使用频率
vm.swappiness=10
vm.vfs_cache_pressure=50
swapfile = 内存的 0.5–1 倍
使用 SSD / NVMe
如果你愿意,可以告诉我:
我可以给你一套完全定制化的 swap 优化方案。