在 Debian(以及大多数 Linux 发行版)里,swapper / swap 占用大通常不是“swapper 进程本身”吃了内存,而是** swap 空间被大量使用**了。下面分点说清楚原因和排查方法。
/proc/swaps 或 free -h 里看到的 Swap 使用量高你看到的“swapper 占用大”,基本都是 swap 使用量高被误读了。
最常见原因:
查看:
free -h
如果:
Mem: used 很高
Swap: used 很高
说明内存确实紧张。
Debian 默认 swappiness=60,会较积极使用 swap。
查看:
cat /proc/sys/vm/swappiness
降低(临时):
sudo sysctl vm.swappiness=10
永久:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
例如:
它们内存被换出后长期不回收。
查看谁在用 swap:
sudo apt install smem
smem -s swap -r | head
或:
for f in /proc/*/status; do
awk '/^Pid:|^Name:|^VmSwap:/{print}' "$f"
done | paste - - - | sort -k3 -n -r | head
Debian 可能:
查看:
swapon --show
可以手动释放(不危险):
sudo swapoff -a
sudo swapon -a
⚠️ 需确保有足够内存,否则会 OOM
free -hswapon --showswappiness如果你愿意,可以把下面命令的输出贴出来,我可以帮你精准判断:
free -h
swapon --show
cat /proc/sys/vm/swappiness