前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能分析之pidstat新版本的%wait和mpstat的%iowait、top的wa

性能分析之pidstat新版本的%wait和mpstat的%iowait、top的wa

作者头像
高楼Zee
发布2020-09-24 15:37:38
4.6K3
发布2020-09-24 15:37:38
举报
文章被收录于专栏:7DGroup7DGroup

前几天在微信群中跟一个人讨论问题,其中提到了pidstat中的%wait到底是不是等待io的。

当时我有一些含糊的是pidstat中似乎没看过有wait这个计数器。但是基于top中的wa和mpstat中的%iowait的多年判断经验。我当时说是在等io的。

当时我还说,如果我判断错了,下次见面,我请他喝花酒(不是你想的花酒,

)。 为了验证自己的说法,自己上服务器看了一下。一看不要紧,结果没wait这个计数器!!

这下蒙了,为什么我没这个计数器呢?

但是这个问问题的同学界面是这样的。

多出来一个wait。而这个wait确实是在pidstat的-u的CPU参数中输出的。

虽然看到的是pidstat输出的CPU的wait,但是却和mpstat的iowait以及top中的wa对应不上。

从上图可以看出,mpstat输出的%iowait并没有值,但是pidstat中的%wait却有比较高的值。在同一时间输出的数据相差如此之大,确实有蹊跷。

于是,我问他的环境中的版本是什么。他说是sysstat11.5.5的版本可以看到。我输出自己环境里的pidstat是10.1.5,在Centos8和7中如果用yum安装,都没这么高的版本。

分析过程

没有办法,本着对技术的偏执,我觉得要搞清楚有没有解释错!

来看一下分析过程。

计数器解释

要想了解计数器值为什么对不上,首先得先知道他们是不是同样的含义。

因为几个命令的参数值不一样,而top和mpstat也用了多年。那就先检查一下这几个计数器的帮助是怎么定义的。 top中的wa是这样解释的。

代码语言:javascript
复制
wa, IO-wait : time waiting for I/O completion

mpstat中的iowait是这样的。

代码语言:javascript
复制
%iowait
    Show the percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.

这也是我为什么判断CPU中的wait是等IO的原因,因为上面两个计数器都明确说了等IO。 但是!!!我的错误判断的转折点来了。 我装了最新版本的sysstat之后,看到pidstat中的wait是这样解释的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 7DGroup 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析过程
    • 计数器解释
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档