Ubuntu Swapper故障排查与解决
一 快速判断与定位
sudo swapon --show;未显示则未激活。free -h;关注“available”是否接近0。df -h;确保根分区或Swap所在分区剩余空间充足。sudo journalctl -xe | grep -i swapper,或grep -i swap /var/log/syslog、dmesg | grep -i swapper,定位挂载失败、权限错误、设备不存在等具体原因。二 常见故障与修复步骤
/etc/fstab,注释掉与加密Swap相关的行(如/dev/mapper/cryptswap1 none swap sw 0 0),保存后执行reboot先恢复系统可用。sudo swapoff -asudo fallocate -l 1G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfile/etc/fstab添加:/swapfile none swap sw 0 0/etc/crypttab),再update-initramfs -u并更新/etc/fstab对应条目。sudo swapon /dev/sdXY;或启用全部:sudo swapon -a(依赖/etc/fstab正确)。sudo swapoff -asudo mkswap /dev/sdXY;对文件:sudo mkswap /swapfilesudo swapon /dev/sdXY 或 sudo swapon /swapfile/etc/fstab条目是否正确(设备路径或UUID),错误则修正后swapon -a测试。vm.dirty_background_ratio=5、vm.dirty_ratio=10,并执行sysctl -p;生产环境请谨慎评估。vm.swappiness(默认60):查看cat /proc/sys/vm/swappiness;临时sysctl vm.swappiness=10;永久写入/etc/sysctl.conf:vm.swappiness=10。/etc/sysctl.conf添加vm.min_free_kbytes=250000并重启,促使更早触发Swap,避免内存紧张时卡顿。三 验证与优化
swapon --show应能看到Swap设备/文件与容量;free -h显示Swap“used”随负载增长;journalctl -xe | grep -i swapper无挂载失败或I/O阻塞报错。vm.swappiness:内存**<8GB建议10–30**;内存**>8GB建议≤10**,以减少不必要的Swap抖动。vm.min_free_kbytes(如250000)以避免在极低空闲时才触发Swap导致卡顿。sudo apt update && sudo apt upgrade,必要时安装新版内核linux-generic,修复已知Swap/存储相关缺陷。四 应急与数据保护
fsck,需在未挂载状态),再按上文重建Swap与修正/etc/fstab。sudo grub-install /dev/sdX 与 sudo update-grub,然后重启。