在 Debian(及其他 Linux 发行版)中,swapper / swap 的优化主要涉及 swap 分区或 swap 文件的创建方式、swappiness 参数、I/O 调度、以及内存管理策略。下面从「原理 → 常见优化手段 → 实操示例」系统说明。
优化目标通常是:
swappiness控制“系统多早开始用 swap”
cat /proc/sys/vm/swappiness
推荐值:
1020–3060临时修改:
sysctl vm.swappiness=10
永久生效:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
vfs_cache_pressure控制 inode/dentry 缓存回收倾向
cat /proc/sys/vm/vfs_cache_pressure
建议:
50sysctl vm.vfs_cache_pressure=50
如果你还能重装或调整磁盘:
/ 混用fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
写入 fstab:
/swapfile none swap sw 0 0
优化:
swapon --discard=once /swapfile
用内存压缩代替磁盘 IO
apt install zram-tools
配置:
/etc/default/zramswap
示例:
ALGO=lz4
SIZE=50%
重启服务:
systemctl restart zramswap
优点:
discardswapon -o discardswapon /dev/sda2
swapon /dev/sdb2
内核可并行使用
[Service]
MemoryMax=2G
apt install earlyoom
systemctl enable --now earlyoom
比内核 OOM 更及时
free -h
swapon --show
cat /proc/meminfo | grep Swap
| 场景 | 建议 |
|---|---|
| 服务器 ≥ 16G | swappiness=10,swap 4G |
| 桌面 8G | swappiness=10,zram |
| 老机器 2G | zram + swap 文件 |
| 数据库 | swappiness=1,尽量不 swap |
如果你愿意,可以告诉我:
我可以给你一套精确参数配置。