dstat用法

Posted 沧海一粟,何以久远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dstat用法相关的知识,希望对你有一定的参考价值。

  1. 安装:yum install -y dstat
  2. dstat命令是一个用来替换vmstatiostatnetstatnfsstatifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入dstat 3即每三秒收集一次,但最新的数据都会每秒刷新显示。和sysstat相同的是,dstat也可以收集指定的性能资源,譬如dstat -c即显示CPU的使用情况。
  3. dstat使用python写的,原理是读取linux本身的资源文件,计算资源使用情况,源码:https://github.com/dagwieers/dstat
  4. dstat只能统计每秒的均值,你如果需要统计n秒的均值,那只能自己计算了,方法dstat -n 1 5会显示6行数据,去掉第一行数据,另外5行数据相加求均值,就是5秒的均值,但是最坑的是,数值后面的单位会变。所以对于有单位的,就不能使用这种方法计算n秒的均值。
  5. 使用awk求和:awk \'{for(n=1;n<=NF;n++)t[n]+=$n}END{for(n=1;n<=NF;n++)printf t[n]" ";print"\\n"}\'

效果:从图可以看出,net网络in/out、dsk硬盘rw输出的单位不是固定的。这对于脚本处理增添了很多麻烦

 

关于问题:

“如果有200毫秒的CPU瞬时高峰,会被抓住么?” 
“我再加上这个监控项,或者我让采样间隔再密一点,会影响性能么”

请查看参考3

 

dstat可以扩展,可以使用插件,可以自己开发插件

 

  其中最后两个参数表示,每隔 delay 秒显示一行,总计 count 行,默认值是 1s 和空 (无限)。如果 delay 大于 1 ,默认该行还是每隔 1s 更新一次,当超过 delay 秒后,换行。

需要注意的是,当 delay > 1 时,每秒的更新值是显示的之前统计的均值,如 delay=10 ,则会显示 1 秒的均值,2 秒的均值,…,也就是最终结果仍然是秒级的均值

如果同时设置了 --noupdate ,则确实是每隔 delay 秒更新一次,而不会每秒更新一次。

 

 

 

参考:

1、http://man.linuxde.net/dstat

2、https://jin-yang.github.io/post/details-about-dstat.html

3、http://jackyrong.iteye.com/blog/2314909

以上是关于dstat用法的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 6.5中安装使用dstat资源统计工具

基于dstat监控网卡流量,服务器状态简单脚本

c_cpp 加载源图像固定用法(代码片段,不全)

SQL Select 语句的用法

dstat下性能监控工具之----dstat

dstat下性能监控工具之----dstat