Debian 下 swapper(通常是 kswapd0)一直运行,一般说明系统内存压力较大,内核在频繁做页面回收/交换。下面按「是什么 → 为什么会这样 → 如何排查 → 如何解决」来说明。
如果你看到它 一直跑、CPU 占用高,说明系统不正常。
检查:
free -h
关注:
available 很小swap used 持续增长即使内存没完全用光,也可能:
检查:
swapon -s
vmstat 1
如果 si/so 长期不为 0,说明在频繁换入换出。
特征:
free 很大检查:
cat /proc/buddyinfo
碎片严重时,高阶内存很少。
排查:
top
# 或
ps aux --sort=-%mem | head
Debian 服务器上 THP 经常导致 kswapd0 高 CPU
检查:
cat /sys/kernel/mm/transparent_hugepage/enabled
如果是 always,很容易出问题。
top
# 或
htop
vmstat 1
si/so 持续 > 0 → swap 问题sudo sysctl vm.swappiness=10
(默认通常是 60)
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
永久生效(Debian):
sudo nano /etc/default/grub
# 在 GRUB_CMDLINE_LINUX 加:
transparent_hugepage=never
sudo update-grub
systemctl set-property your.service MemoryMax=2G
sudo sysctl vm.min_free_kbytes=524288
(单位 KB,不要乱设太大)
ps aux --sort=-%mem | head
必要时重启或更新相关程序。
✅ 下面情况 不需要担心:
❌ 下面情况 必须处理:
你可以直接贴出:
free -h
vmstat 1 5
top -b -n1 | head -20
cat /proc/buddyinfo
我可以帮你判断 是内存不够、碎片、还是 THP 导致的 swapper 一直运行。