在 Ubuntu 中 swapper / swap 相关报错 比较常见,原因和处理方式取决于具体报错内容。下面我按「常见场景 → 排查 → 解决」给你一个通用指南,你可以对照自己的情况处理。
请先查看相关日志:
dmesg | grep -i swap
journalctl -xe | grep -i swap
把完整报错信息发出来,能更精准定位。
典型表现:
top 里 swapper 占 CPU原因
解决
free -h
swapon --show
✅ 如果没有 swap:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
永久生效:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
常见于:
✅ 正确方式(不要用 dd 旧方式):
sudo fallocate -l 2G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
❌ 容器(Docker / LXC)通常不支持 swap
可能原因:
/etc/fstab 中 swap 配置错误检查:
blkid
cat /etc/fstab
修正 UUID 或暂时注释 swap 行。
说明:
✅ 临时减少 swap 使用:
sudo sysctl vm.swappiness=10
永久:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
新版本 Ubuntu 可能用 zram
查看:
swapon --show
zramctl
✅ 如果冲突:
sudo systemctl disable systemd-zram-setup
free -h
swapon --show
df -h
dmesg | tail
你可以直接把报错原文贴出来(哪怕是截图文字),例如:
swapper[0]: BUG: unable to handle page faultswapon: /swapfile: swapon failedout of memory: killed process我可以直接告诉你是哪一类问题 + 精确修复命令。