温馨提示×

debian swapper怎么监控

小樊
32
2026-09-01 10:43:26
栏目: 智能运维

在 Debian(以及其他 Linux 发行版)里,swapper / swap 使用情况的监控通常可以从 系统级 swap 使用、进程级 swap 占用、I/O 情况、内核参数 几个层面来做。下面按“常用 → 进阶”给你一套实用方案。


一、最常用:看 swap 总体使用情况

1. free

free -h

关注:

  • Swap: total / used / free
  • used 持续增长 → 内存不足或配置不合理

2. swapon

swapon --show

cat /proc/swaps

可以看到:

  • swap 设备(分区 / 文件)
  • 优先级
  • 使用量

二、实时监控 swap 变化

3. top / htop

top
  • Swap 总量
  • f → 打开 SWAP 列,看每个进程的 swap 占用
htop
  • 默认就有 SWAP
  • 更直观

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

4. 查进程 swap 占用(最实用)

for pid in $(ls /proc | grep '^[0-9]'); do
  swap=$(awk '/VmSwap/{print $2}' /proc/$pid/status 2>/dev/null)
  if [ "$swap" ]; then
    cmd=$(cat /proc/$pid/cmdline 2>/dev/null | tr '\0' ' ')
    echo "$pid $swap KB $cmd"
  fi
done | sort -k2 -n -r

或更简单:

grep VmSwap /proc/*/status | sort -k2 -n -r | head

单位通常是 KB


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

5. vmstat

vmstat 1

关注:

  • si(swap in)
  • so(swap out)

如果 si/so 长期不为 0 → 系统正在频繁 swap,性能会明显下降

6. iostat

iostat -x 1

看 swap 所在磁盘的:

  • %util
  • await

五、内核级 swap 行为监控

7. /proc/meminfo

cat /proc/meminfo | grep -i swap

关键字段:

  • SwapTotal
  • SwapFree
  • SwapCached

SwapCached 高 ≠ 坏,说明swap内容还在内存中


六、长期监控(服务器推荐)

8. sar(sysstat)

apt install sysstat
sar -S 1  # swap 使用
sar -W 1  # swap 换入换出

适合:

  • 排查“昨天下午卡顿是不是 swap 导致的”

七、调优 & 预警(进阶)

9. swappiness 监控与调整

cat /proc/sys/vm/swappiness

常见:

  • 服务器:10–30
  • 桌面:60

临时改:

sysctl vm.swappiness=10

永久:

/etc/sysctl.conf
vm.swappiness=10

10. 告警示例(Zabbix / Prometheus)

监控指标:

  • SwapUsedPercent
  • swap_in / swap_out
  • si > 0 持续 N 分钟

八、常见结论判断

现象 可能原因
Swap used 高,si/so=0 历史换出,未活跃
si/so 持续 > 0 内存不足
某进程 VmSwap 很大 该进程被换出
磁盘 IO 高 + swap 性能瓶颈

如果你愿意,我可以:

  • 给你一个 一键 swap 监控脚本
  • 或针对 Debian + 某服务(如 MySQL / Java) 给专项方案

0