Ubuntu 交换与 Swapper 优化以减少系统崩溃
一 核心思路
二 快速检查与定位
free -h、swapon --showvmstat 1 10、iostat -x 1 10、top/htopsi/so(swap in/out)持续不为 0 且 wa(I/O 等待)偏高,说明系统正频繁换页,存在卡顿甚至崩溃风险。三 关键参数与配置
cat /proc/sys/vm/swappiness(默认多为 60)sudo sysctl vm.swappiness=20/etc/sysctl.conf 添加 vm.swappiness=20sudo sysctl vm.min_free_kbytes=250000/etc/sysctl.conf 添加 vm.min_free_kbytes=250000swapon --show、free -hsudo 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
/etc/fstab 中给更快的交换更高 pri):
/swapfile none swap sw,pri=100 0 0/dev/sdXN none swap sw,pri=10 0 0四 场景化建议
vm.swappiness=10–20,保留少量交换(如内存的 1–2 倍或至少 2–4GB),使用 SSD 交换,必要时启用 zswap 压缩缓存(内核默认可能已启用)。vm.swappiness=30–60,确保交换充足(常见为内存的 1–2 倍),并优先使用 SSD/NVMe;结合监控告警,避免长期高 si/so。vm.min_free_kbytes(如 200–300MB 级);精简自启动与后台服务,减少内存占用峰值。五 监控与维护
free -h、swapon --show、vmstat 1 10、iostat -x 1 10、top/htopsi/so、wa、available 与 Swap: 使用率。/etc/sysctl.conf 后可用 sudo sysctl -p 使配置生效;交换文件变更请先 swapoff 再 swapon,并在 /etc/fstab 正确登记以便开机启用。