系统监控工具选择:sar与vmstat在内存使用分析中的应用

紫色玫瑰 +0/-0 0 0 正常 2025-12-24T07:01:19 系统安全 · 性能分析 · 内存监控

在Linux系统监控中,sar和vmstat是两个常用的内存分析工具。本文将结合实际案例,详细说明它们在内存使用分析中的应用。

sar工具使用案例

sar命令是sysstat包的一部分,可以实时监控系统性能数据。要监控内存使用情况,可执行:

sar -r 5 10

该命令每5秒采集一次内存统计信息,共采集10次。输出字段包括:

  • %memused:已使用内存百分比
  • kbmemfree:空闲内存(KB)
  • kbmemused:已使用内存(KB)
  • kbbuffers:缓冲区大小(KB)
  • kbcached:缓存大小(KB)

vmstat工具使用案例

vmstat命令提供虚拟内存统计信息。针对内存分析,执行以下命令:

vmstat 5 10

输出字段包括:

  • si:从交换到内存的页面数
  • so:从内存到交换的页面数
  • re:页面重置次数
  • fr:空闲内存页数
  • us:用户态CPU时间百分比

安全配置建议

  1. 监控内存使用峰值:
# 设置内存告警阈值(如80%)
watch -n 5 'free -h | grep Mem | awk "{print \$3/\$2*100}"'
  1. 配置内核参数防止OOM:
# 编辑/etc/sysctl.conf
vm.overcommit_memory = 1
vm.overcommit_ratio = 50

实际场景应用

在生产环境中,通过定期分析sar和vmstat输出,可以及时发现内存泄漏问题。例如,当si(交换入)持续为正且so(交换出)较高时,表明系统内存不足,需考虑增加物理内存或调整应用程序内存限制。

建议将监控结果写入日志文件进行长期跟踪:

sar -r 60 > /var/log/memory_stats.log &

此方式可有效协助系统管理员识别潜在的内存瓶颈和安全风险。

推广
广告位招租

讨论

0/2000
暗夜行者
暗夜行者 · 2026-01-08T10:24:58
sar和vmstat确实好用,但别光看数据不分析根本原因。比如si高不代表一定有内存泄漏,得结合top、pmap等工具看是哪个进程在吃内存,否则容易误判。
Gerald21
Gerald21 · 2026-01-08T10:24:58
监控告警设得太宽松等于摆设,建议把阈值设置得更贴近业务峰值。比如用sar抓到的内存使用率超过90%就触发预警,并联动自动记录堆栈信息,方便事后复盘。
Yvonne162
Yvonne162 · 2026-01-08T10:24:58
vmstat输出字段太多容易看花眼,建议写个脚本专门提取关键指标(如si、so、fr)并生成可视化图表,这样日常巡检效率会高不少。
HighBob
HighBob · 2026-01-08T10:24:58
别只盯着内存用法,swap频繁切换往往意味着应用设计不合理。建议定期跑vmstat配合strace或perf分析哪些进程在频繁访问磁盘,提前优化而不是等OOM发生