在 CentOS(以及一般 Linux)里,“swapper”通常指的是 swap 分区 / swap 文件的使用、swappiness、swap 异常占用、OOM、进程被 swap 出去 等相关问题。下面按常见排查场景给你一套系统思路。
free -h
swapon -s
cat /proc/swaps
正常应看到:
free -h 中 Swap 有大小swapon -s 有设备(如 /dev/sda2 或 /swapfile)free -h
top
在 top 中:
Swap: 表示系统 swap 使用量RES 大但 VIRT 更大,可能被 swapcat /proc/sys/vm/swappiness
临时调整:
sysctl vm.swappiness=10
永久:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
free -h
vmstat 1
关注:
free 很低si/so(swap in/out)持续不为 0 → 说明在频繁 swapfor pid in $(ls /proc | grep '^[0-9]'); do
awk -v pid=$pid '/VmSwap/{print pid, $2" KB"}' /proc/$pid/status 2>/dev/null
done | sort -k2 -n -r | head
或:
smem -s swap -r | head
(需安装 smem)
ps -eo pid,comm,%mem,vsz,rss,cmd | sort -k3 -nr | head
iostat -x 1
关注:
%util 高await 大如果是机械盘 swap → 很慢
swapon -s
sysctl -a | grep vm
常用:
vm.swappinessvm.vfs_cache_pressurevm.min_free_kbytes如果你看到:
ps -ef | grep swapper
swapper 是内核线程(PID 0 / 1)| 现象 | 可能原因 |
|---|---|
| swap 飙高 | 内存不足 |
| 卡顿 | swap 在机械盘 |
| 服务慢 | 进程被 swap 出去 |
| OOM | swap 太小或没开 |
如果你愿意,可以补充:
free -h 和 swapon -s 输出我可以给你更精确的排查命令。