在 Ubuntu 中,swapper(swap 使用率高)通常不是“进程”本身吃资源,而是内存不够,系统把内存数据换到 swap 分区/文件了。你看到的 swapper 或 kswapd0 高,往往是内存压力导致的现象。
下面按「先看原因 → 再优化 → 长期解决」来说。
free -h
swapon --show
重点看:
Swap 的 used 是否很大Mem 的 available 是否很小再看谁在吃内存:
top
# 或
htop
按 内存排序(top 中按 M)
sudo swapoff -a
sudo swapon -a
⚠️ 如果内存不足,这条会卡死或 OOM,谨慎用。
Ubuntu 默认 swappiness=60,可以调到 10:
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10
永久生效:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
available 内存很低,swap 持续增长常见 culprit:
排查:
ps aux --sort=-%mem | head
解决:
如果是 SSD 还好,HDD 会非常卡。
查看:
swapon --show
如果是 HDD + 小 swap → 卡 + 高 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
snap 不用的应用systemd 限制内存:MemoryMax=512M
✅ 以下情况不用慌:
❌ 以下才需要管:
kswapd0 CPU 高如果你愿意,可以把下面命令的输出发我,我可以直接帮你判断:
free -h
swapon --show
top -b -n1 | head -20
我可以告诉你到底是内存不够,还是某个程序在作妖。