在 Debian 系统中,swap 占用很高通常不是“故障”,而是系统根据内存压力和配置做出的行为。下面从原因 → 排查 → 解决三个层面说明。
当 RAM 不够用 时,内核会把不常用的内存页换出到 swap。
表现:
free -h 中 Mem 几乎用完Swap 被大量使用swappiness 决定系统“多积极使用 swap”。
查看:
cat /proc/sys/vm/swappiness
例如:
即使内存够,也可能因为碎片化或缓存策略被换出。
比如:
free -h
for file in /proc/*/status; do
awk '/^Pid:|^Name:|^VmSwap:/{print}' "$file"
done | paste - - - | sort -k4 -h | tail
或用工具:
apt install smem
smem -s swap -r | head
swapon --show
sysctl vm.swappiness=10
永久生效:
echo "vm.swappiness=10" >> /etc/sysctl.conf
swapoff -a
swapon -a
⚠️ 风险:
如果长期 swap > 20% 内存,基本说明:
内存容量不足
例如 Docker:
--memory=2g --memory-swap=2g
编辑 /etc/fstab,减小 swap 分区或文件。
✅ 以下情况不必担心:
dmesg | grep oom)Debian swap 占用高,多半是内存不足或 swappiness 太激进;先查进程,再调参数,必要时加内存。
如果你愿意,可以贴一下:
free -h
swapon --show
cat /proc/sys/vm/swappiness
我可以帮你具体分析。