在 Debian(以及其它 Linux 发行版)里,swapper / swap 相关的问题通常分为几类:
下面按排查思路 + 常用命令来说明。
swapon --show
或
free -h
正常应看到:
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 4G 0B -2
如果没有输出,说明 swap 未启用。
cat /proc/swaps
创建 swap 文件示例:
sudo 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
检查:
cat /etc/fstab
确保有类似:
UUID=xxxx none swap sw 0 0
或
/swapfile none swap sw 0 0
可测试:
sudo mount -a
df -h
free -h
vmstat 1
关注:
si / so(swap in/out)top
# 或
ps aux --sort=-%mem | head
查看:
cat /proc/sys/vm/swappiness
默认值通常是 60
降低 swap 使用(如 10):
sudo sysctl vm.swappiness=10
永久生效:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
[swapper] 是什么?swapper / pid 0 是 内核线程top 里看到 swapper 占 CPU 通常是:
查看日志:
dmesg | grep -i oom
journalctl -k | grep -i oom
sudo fsck -f /dev/sdX
(swap 一般不 fsck,但可重建)
重建:
sudo swapoff /dev/sdX
sudo mkswap /dev/sdX
sudo swapon /dev/sdX
sudo apt install zram-tools
自动压缩内存,减少磁盘 swap。
✅ swapon --show 是否有输出
✅ free -h 是否显示 swap
✅ /etc/fstab 是否正确
✅ 内存是否真的不足
✅ swappiness 是否合理
✅ 是否是 zram / 磁盘 swap 混淆
如果你愿意,可以贴一下:
swapon --showfree -hcat /etc/fstab我可以帮你精准判断是哪一类问题。