在 Ubuntu 中优化 swap(交换分区/交换文件),可以从是否使用 swap、swap 大小、swappiness、缓存压力、使用 zram/zswap、以及磁盘类型几个方面来做。下面按“实用优先”的方式给你一套优化思路。
swapon --show
free -h
cat /proc/swappiness
⚠️ 不建议:
swappiness 决定系统多早使用 swap(0–100)
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf
添加:
vm.swappiness=10
生效:
sudo sysctl -p
控制 inode/dentry 缓存回收速度
cat /proc/sys/vm/vfs_cache_pressure
推荐:
50100(默认)修改:
sudo sysctl vm.vfs_cache_pressure=50
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
如果你 swap 在 SSD:
sudo swapon --discard /swapfile
fstab 中:
/swapfile none swap sw,discard 0 0
zram 用压缩内存当 swap,比磁盘 swap 快很多
sudo apt install zram-tools
sudo nano /etc/default/zramswap
示例:
ALGO=lz4
SIZE=50%
重启:
sudo systemctl restart zramswap
✅ 适合:
⚠️ 不推荐服务器长期关闭
sudo swapoff -a
并从 /etc/fstab 删除 swap 行
vmstat 1
sar -W 1
看 si/so 是否频繁(说明内存不足)
vm.swappiness=10
vm.vfs_cache_pressure=50
如果你愿意,可以告诉我:
我可以给你一套精确可直接抄的配置。