Linux Swap监控工具推荐
小樊
38
2025-11-16 12:40:02
Linux Swap监控工具推荐
一 核心工具清单
- 快速查看
- free -h:查看内存与 Swap 的总量、已用、空闲,适合一眼判断是否存在 Swap 使用。
- swapon --show 或 cat /proc/swaps:列出已启用的 Swap 设备/文件、大小、已用与优先级。
- 实时与趋势
- vmstat 1(或 vmstat -s):关注 si/so(换入/换出 KB/s),持续非零意味着内存压力与磁盘 IO。
- sar -r(需安装 sysstat):查看历史与实时的内存/Swap 利用率,便于回溯分析。
- top/htop:实时观察整体资源;top 可按 f → p 启用 SWAP 列(注意其计算为 VIRT−RES,仅作参考)。
- 进程级定位
- 读取 /proc//smaps 汇总各进程 Swap 使用,定位“谁在用 Swap”。
- 容器场景
- ctop:容器资源视图,可一并观察容器层面的 Swap 使用情况。
二 常用命令示例
- 查看整体使用
- 实时观察换入换出
- 查看历史趋势
- sar -r 1 10(需先安装并启用 sysstat)
- 进程级定位脚本
- for pid in [0-9]*; do awk ‘/Swap/{sum+=$2} END{print sum/1024 " MB", pid, cmd}’ /proc/$pid/cmdline /proc/$pid/smaps 2>/dev/null; done | sort -nr | head
以上命令覆盖即时查看、实时趋势、历史回放与进程定位的典型用法。
三 可视化与告警方案
- 企业级监控
- Prometheus + Node Exporter + Grafana:采集 node_memory_SwapTotal_bytes、node_memory_SwapFree_bytes、node_vmstat_swapin、node_vmstat_swapout 等指标,构建 Swap 使用率与换入换出速率面板,并设置阈值告警(如使用率持续 > 80% 或 si/so 持续非零)。
- 传统平台
- Nagios/Zabbix:通过 SNMP/脚本采集 Swap 使用率、si/so 等,配置告警阈值与事件通知,适合已有监控体系的存量环境。
这些方案便于实现 7×24 监控、可视化与阈值告警,适合生产环境落地。
四 判读要点与优化建议
- 判读要点
- si/so 持续大于 0:存在内存压力与 Swap IO,需结合应用与负载进一步排查。
- Swap 使用率升高但 si/so 很小:多为历史数据残留,可结合业务重启或内存回收策略观察趋势。
- top 的 SWAP 列:为 VIRT−RES 的估算,不等同真实换出页数,定位进程请以 /proc//smaps 为准。
- 优化建议
- 适度配置 Swap:在 内存紧张 或需 休眠 的场景保留/增大 Swap;在 高性能低延迟 场景控制 Swap 依赖,避免频繁换页。
- 优先使用 SSD/NVMe 放置 Swap,降低 IO 延迟;必要时调整 swappiness 与 vfs_cache_pressure,在不影响稳定性的前提下减少不必要的换出。
- 结合监控建立 基线 与 阈值,对使用率、换入换出速率设置分级告警,提前识别内存泄漏或配置不当问题。