在 Ubuntu 中,“swapper(交换分区/交换文件)失效”通常不是指内核里的 swapper 进程本身(那个是 PID 0,不会“失效”),而是指交换空间(swap)没有被正常使用或启用失败。下面从常见原因到排查方法系统说明。
系统安装了 swap,但没有 swapon:
swapon --show
如果为空,说明当前没有启用任何 swap。
/etc/fstab 配置错误常见于:
ext4)示例正确写法(swap 文件):
/swapfile none swap sw 0 0
常见错误:
600mkswap正确创建方式:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Ubuntu 22.04+ 默认可能使用 zRAM 而不是磁盘 swap:
swapon --show
# 可能看到 /dev/zram0
这看起来像“swap 失效”,其实是用了压缩内存。
即使有 swap,也几乎不用:
cat /proc/sys/vm/swappiness
默认通常是 60,如果是 1 或 0,系统几乎不 swap。
临时修改:
sudo sysctl vm.swappiness=60
如果尝试休眠:
会导致“swap 无效”。
swap 分区所在磁盘有错误,会导致:
swapon 失败mkswap 报错可用:
dmesg | grep swap
swapon --show
free -h
journalctl -xe | grep -i swap
dmesg | grep -i swap
cat /etc/fstab
sudo swapon /swapfile
如果报错,错误信息非常关键。
❌ swapon: /swapfile: read swap header failed
→ 没执行 mkswap
❌ swapon: cannot open /swapfile: Permission denied
→ 权限不是 600
❌ 系统卡死但不 swap → swappiness 太低或内存泄漏
你可以贴出以下信息之一:
swapon --show 输出/etc/fstab 内容lsb_release -a)我可以直接告诉你为什么你的 swapper 失效以及怎么修。