Linux如何使用vmstat监控系统性能_Linux vmstat监控系统性能总结

轻墨同学_6639

轻墨同学_6639

2026-05-09

748人浏览

原创

vmstat关键指标需交叉验证:r持续≥cpu核数×1.5、b≥2且wa>20%表io瓶颈;si/so>0才表明swap压力;sy远高于us需查系统调用;wa高时us+sy高是假象;st>5%说明宿主机资源被抢占。

linux如何使用vmstat监控系统性能_linux vmstat监控系统性能总结

vmstat 不是“看一眼就懂”的工具,关键指标容易误读,尤其在多核、高IO或内存压力场景下,直接看 us 和 id 可能完全错过瓶颈。

怎么看 r 和 b 才知道 CPU 或 IO 真的忙了

很多人只盯着 r(运行队列长度)是否大于 CPU 核数,但忽略了时间维度和上下文:

  • r 值瞬时跳到 8 不代表问题,要连续观察 5~10 行,若长期 ≥ CPU 总核数 × 1.5(比如 4 核机器持续 r≥6),才说明 CPU 调度排队严重
  • b(不可中断睡眠进程数)> 0 是常态,但若 b 持续 ≥ 2 且 wa > 20%,基本可锁定是磁盘 IO 卡住进程(如慢存储、锁表、sync 压力)
  • 注意:r 高 + b 高 + wa 低 → 更可能是大量短时系统调用(如频繁 open()/close()),不是磁盘慢,而是内核路径开销大

swpd 不为 0 就一定内存不足?别急着加 RAM

swpd 显示交换区已用大小(KB),但它本身不反映压力。真正要看的是交换活动:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 只要 si(swap in)和 so(swap out)长期稳定为 0,哪怕 swpd 是几 GB,也只是内核预分配的“备用空间”,不影响性能
  • 危险信号是:si 或 so 持续 > 0(尤其 > 10 KB/s),同时 free 极低(如 cache 被大量回收(对比前后行 cache 值明显下降)
  • 某些 Java 应用启动时会主动触发 swap 预分配,swpd 上升但无 si/so,属正常行为,不用干预

为什么 us + sy > 80% 还不一定 CPU 不够

us(用户态)和 sy(内核态)加起来高,只说明 CPU 时间被占满,但不等于“需要更多 CPU”:

  • 如果 sy 占比远高于 us(比如 sy=65%, us=15%),重点查系统调用:用 pidstat -w 1 看哪些进程 cswch/s(上下文切换)异常高,再结合 strace -p PID 定位高频调用(如 epoll_wait 卡死、锁争用)
  • 如果 wa 同时很高(>30%),us+sy 高其实是假象——CPU 大量时间在等 IO,实际计算能力未饱和,此时升级 CPU 无效,应查磁盘延迟或应用层批量读写逻辑
  • 虚拟机环境还要看 st(steal time):若 st > 5%,说明宿主机 CPU 被其他 VM 抢占,本机再优化也白搭

vmstat 的最小可靠采样间隔是多少

用 vmstat 1 看实时波动很诱人,但 1 秒间隔在多数生产环境反而失真:

  • Linux 内核统计基于 tick(通常 10ms),vmstat 的采样是离散快照,间隔太短会导致噪声放大(比如单次磁盘延迟抖动拉高 wa)
  • 推荐起始值:vmstat 5(5 秒)观察趋势;确认有异常后再用 vmstat 1 10 抓 10 秒细节
  • 避免 vmstat 0.5 这类亚秒级——它不会提高精度,反而因频繁系统调用抬高自身 sy,污染数据
  • 长期监控建议用 vmstat 10 144(每 10 秒一次,共 144 次 = 24 分钟),导出后用脚本聚合分析峰值/均值,比肉眼盯屏可靠得多

真正难的不是跑出 vmstat,而是把 r、b、wa、cs 这几个数字放在同一时间轴上交叉验证——单独看任一列,都可能指向错误的方向。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3910

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3353

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2493

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6050

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5682

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3333

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2845

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3059

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习