在 Ubuntu(以及其他 Linux 发行版)里,swapper 通常指 内核交换子系统(swap / swapper 进程,PID 0 或 kswapd),或者是 swap 空间配置与使用问题。下面从「调试思路 + 常用命令 + 典型问题」三部分说明。
常见“swapper 调试”场景:
swapon --show
free -h
cat /proc/swaps
top
htop
vmstat 1
关注:
si / so(swap in/out)wa(I/O wait)sudo apt install smem
smem -s swap -r | head
或:
for f in /proc/*/status; do
awk '/VmSwap|Name/{printf "%s ", $2} END{print ""}' "$f"
done | sort -k2 -n
top -p $(pgrep kswapd)
如果 CPU 高:
cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure
cat /proc/sys/vm/min_free_kbytes
调整示例(临时):
sudo sysctl vm.swappiness=10
永久:
/etc/sysctl.conf
vm.swappiness=10
dmesg | grep -i oom
dmesg | grep -i kill
swapon --show
如果没有:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
开机自动:
/swapfile none swap sw 0 0
可能原因:
解决:
vm.swappiness=10
或加内存 / 用 zram
swapon --show
可能看到:
/dev/zram0
调试:
sudo systemctl status systemd-zram-setup@zram0
sudo sysctl vm.block_dump=1
dmesg -w
sudo trace-cmd record -e vmscan
free -h 看 swap 是否用vmstat 1 看 si/sosmem 找 swap 大户dmesg 看 OOMswappiness如果你能说清楚:
我可以给你更针对性的调试方案。