温馨提示×

怎样监控debian swapper使用

小樊
46
2026-09-07 10:51:38
栏目: 智能运维

在 Debian(以及一般 Linux)里,swapper / swap 的使用情况可以从多个层面来监控。下面按「快速查看 → 持续监控 → 进程级分析 → 内核参数/调优」的顺序说明。


一、快速查看 swap 总体使用情况

1. free

free -h

关注:

  • Swap: total / used / free

2. swapon

swapon --show

cat /proc/swaps

可以看到:

  • swap 设备(分区 / 文件)
  • 大小、已用、优先级

二、持续监控 swap 使用

3. top / htop

top
  • 顶部有 MiB Swap
  • f 可显示 SWAP 列(进程级)
htop
  • 默认就有 SWAP 列(更易读)

三、查看“谁”在用 swap(进程级)

4. /proc/<pid>/status

grep VmSwap /proc/<pid>/status

5. 找出占用 swap 最多的进程

for f in /proc/*/status; do
  awk '/VmSwap|Name/{printf "%s %s\n", $2, $3}' "$f"
done | sort -k2 -h | tail

或更简单(需 procps):

smem -s swap -r

(若未安装:apt install smem


四、监控 swap I/O(是否被频繁换入换出)

6. vmstat

vmstat 1

重点列:

  • si:swap in(从 swap 读入内存)
  • so:swap out(写入 swap)

如果 si/so 长时间非 0,说明内存压力明显

7. iostat

iostat -x 1

查看 swap 设备(如 /dev/sda2)的:

  • %util
  • await

五、内核级 swap 行为监控

8. /proc/meminfo

grep -i swap /proc/meminfo

包括:

  • SwapTotal
  • SwapFree
  • SwapCached

9. sar(历史监控)

apt install sysstat
sar -S 1

查看 swap 使用历史趋势


六、减少不必要的 swap 使用(可选)

10. 调整 swappiness

cat /proc/sys/vm/swappiness

默认值通常是 60

临时修改:

sysctl vm.swappiness=10

永久:

/etc/sysctl.d/99-swap.conf
vm.swappiness=10

七、常见结论判断

  • used swap 很小 + si/so = 0:健康
  • ⚠️ used swap 增长 + si/so > 0:内存不足
  • ❌ 持续 swap thrashing:需要加内存或优化服务

如果你愿意,我可以:

  • 给你一个 一键监控脚本
  • 或针对 服务器 / 桌面 / 容器 场景给具体建议

0