Linux常见系统监控命令_Linux free与vmstat使用解析

1次阅读

判断内存是否够用需结合free和vmstat:重点看available(低于10%需警惕)、Swap used(持续非零表明内存不足),再用vmstat观察free下降趋势、so>0及b值不为0等动态指标。

Linux常见系统监控命令_Linux free与vmstat使用解析

看内存是否够用,不能只盯“used”数字——freevmstat配合着看,才能看清真实压力。

free:快速摸清内存家底

执行 free -h 就能一目了然地看到当前内存整体情况。重点不是 total 或 used,而是:

  • available:系统估算出的、真正能立刻分配给新进程的内存。这是判断内存是否紧张的核心指标;低于总内存的10%,就得警惕
  • buff/cache:缓存和缓冲区占的内存,不是“被占用”,而是“可随时回收”。它高≠内存紧张,反而是系统在高效利用资源
  • Swap used:如果这一栏持续非零,尤其数值还在涨,说明物理内存已不够,系统被迫往磁盘搬数据,性能必然下降

vmstat:追踪内存动态变化

运行 vmstat 1(每秒刷新一次),重点关注三类字段:

Linux常见系统监控命令_Linux free与vmstat使用解析

Dream Machine

Dream Machine 是由 Luma ai 开发的一款 AI 视频生成工具,可以快速将文本和图像转换为高质量的视频内容。

Linux常见系统监控命令_Linux free与vmstat使用解析 157

查看详情 Linux常见系统监控命令_Linux free与vmstat使用解析

  • memory 区域的 free:持续观察它的趋势。如果 free 值不断下降、接近零,且 buff/cache 没同步上升,说明内存正在被真实占用
  • swap 区域的 si/so:si(swap in)和 so(swap out)只要长期大于 0,就是在频繁换页,是内存瓶颈的明确信号
  • procs 区域的 r/b:r 值长期大于 CPU 核数,b 值持续不为 0,往往伴随内存不足导致进程排队或等待 I/O

两者怎么搭配用?

先跑 free -h 快速定性:available 是否充足?Swap 是否启用?再开 vmstat 2 持续观察 30 秒以上,看 free 是否缓慢流失、so 是否间歇跳动、b 值是否反复出现。如果 free 在掉、so 在动、available 在逼近警戒线,基本可以确认是内存资源瓶颈,而不是临时缓存抖动。

几个实用小技巧

  • 想让 free 每 3 秒自动刷新:用 free -h -s 3
  • 排查内存泄漏时,vmstat 1 看 swpd 是否随时间缓慢上涨,比单次快照更可靠
  • 发现 available 很低但 buff/cache 占比极高?试试 echo 3 > /proc/sys/vm/drop_caches(仅测试环境,生产慎用)释放缓存验证是否真缺内存

基本上就这些。不复杂,但容易忽略 available 和 swpd 的联动关系。

text=ZqhQzanResources