在 Debian(及所有 Linux)系统中,swapper(swap 分区/文件)满负荷通常不是“swapper 本身有问题”,而是内存压力导致系统大量使用 swap。下面从原因、诊断、解决几个层面说明。
si/so(swap in/out)持续很高swappiness=60查看:
cat /proc/sys/vm/swappiness
top
或
htop
关注:
MEM%SWAPload averagefree -h
swapon --show
ps aux --sort=-%mem | head
for pid in $(ls /proc | grep '^[0-9]'); do
echo -n "$pid "; grep VmSwap /proc/$pid/status 2>/dev/null
done | sort -k2 -n -r | head
sudo swapoff -a
sudo swapon -a
⚠️ 前提:有足够空闲内存,否则会卡死
sudo sysctl vm.swappiness=10
永久生效:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
innodb_buffer_pool_size-Xmxsudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
如果是某个服务导致:
systemctl restart xxx
Debian swapper 满负荷 = 内存不够用,系统在“拿硬盘当内存用”
重点不是 swap,而是找出谁在吃内存。
如果你愿意,可以把下面命令的输出发我,我可以直接帮你分析:
free -h
top -b -n1 | head -20