dstat产生意义:


    在进行性能测试的时候,我们一般需要检测很多方面的数据,这些数据包括CPU占用,内存占用情况,网络状况,load average,进程信息,磁盘信息等等。利用系统提供的命令一般来说可以完成这些数据的监测,但是一般来说,这些命令都是分散的,比如vmstat,iostat,ss,netstat。但是这样一来,命令太分散了,此时就迫切需要一款,可以集中监控的工具, dstat 即可以实现集中监控上述各项指标:


特性:


    • 结合了vmstat,iostat,ifstat,netstat以及更多的信息

    • 实时显示统计情况

    • 在分析和排障时可以通过启用监控项并排序

    • 模块化设计

    • 使用python编写的,更方便扩展现有的工作任务

    • 容易扩展和添加你的计数器(请为此做出贡献)

    • 包含的许多扩展插件充分说明了增加新的监控项目是很方便的

    • 可以分组统计块设备/网络设备,并给出总数

    • 可以显示每台设备的当前状态

    • 极准确的时间精度,即便是系统负荷较高也不会延迟显示

    • 显示准确地单位和和限制转换误差范围

    • 用不同的颜色显示不同的单位

    • 显示中间结果延时小于1秒

    • 支持输出CSV格式报表,并能导入到Gnumeric和Excel以生成图形



dstat 默认情况下系统也并没有安装,下载链接:

   Centos/Redhat下载链接:  http://pkgs.repoforge.org/dstat/

性能监测工具 dstat_统一性能监控工具


# rpm -ivh dstat-0.7.2-1.el6.rfx.noarch.rpm 
warning: dstat-0.7.2-1.el6.rfx.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Preparing...                ########################################### [100%]


性能监测工具 dstat_dstat_02

   

  安装完后就可以使用了,dstat非常强大,可以实时的监控cpu、磁盘、网络、IO、内存等使用情况。

    直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息,默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔:默认情况下隔1秒显示一次,一直显示;

    如 dstat 5 就是每5秒显示1条信息, dstat 1 10 即每1秒显示一条信息,一共显示10次;



默认情况下分五个区域:


1、    --total-cpu-usage----   CPU使用率

usr:用户空间的程序所占百分比;

sys:系统空间程序所占百分比;

idel:空闲百分比;

wai:等待磁盘I/O所消耗的百分比;

hiq:硬中断次数;

siq:软中断次数;


2、    -dsk/total-    磁盘统计

read:读总数

writ:写总数


3、    -net/total-    网络统计

recv:网络收包总数

send:网络发包总数


4、    ---paging--    内存分页统计 

in: pagein(换入)

out:page out(换出)

                注:系统的分页活动。分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,通常情况下当系统已经开始用交换空间的时候,就说明你的内存已经不够用了,或者说内存非常分散,理想情况下page in(换入)和page out(换出)的值是0 0。


5、    --system--     系统信息

int:中断次数 

csw:上下文切换

                注:中断(int)和上下文切换(csw)。这项统计仅在有比较基线时才有意义。这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。



默认情况下,dstat 会每隔一秒刷新一次数据,一直刷新并一直输出,按 Ctrl+C 退出 "dstat";


dstat 还有许多具体的参数,可通过man dstat命令查看,常用参数如下:


-l :显示负载统计量

-m :显示内存使用率(包括used,buffer,cache,free值)

-r :显示I/O统计

-s :显示交换分区使用情况

-t :将当前时间显示在第一行

–fs :显示文件系统统计数据(包括文件总数量和inodes值)

–nocolor :不显示颜色(有时候有用)

–socket :显示网络统计数据

–tcp :显示常用的TCP统计

–udp :显示监听的UDP接口及其当前用量的一些动态数据



这里只是一部分,dstat还附带一些插件扩展它的功能,可以查看/usr/share/dstat目录来查看它们的一些使用方法,常用的有这些:


--disk-util :显示某一时间磁盘的忙碌状况

--freespace :显示当前磁盘空间使用率

--proc-count :显示正在运行的程序数量

--top-bio :指出块I/O最大的进程

--top-cpu :图形化显示CPU占用最大的进程

--top-io :显示正常I/O最大的进程

--top-mem :显示占用最多内存的进程


例:

    1、监控swap,process,sockets,filesystem并显示监控的时间

性能监测工具 dstat_统一性能监控工具_03

    2、将dstat的执行结果,输出到文件:

性能监测工具 dstat_统一性能监控工具_04

    备注:输出的的 scv 文件,可以在 windows 下用 excel 打开,并生成图表;


性能监测工具 dstat_dstat_05

    通过dstat --list可以查看dstat能使用的所有参数,其中上面internal是dstat本身自带的一些监控参数,下面/usr/share/dstat中是dstat的插件,这些插件可以扩展dstat的功能,如可以监控电源(battery)、mysql等。

    但这些插件并不能直接使用,它只是列出了可以提供这些功能,如果想用具体的监控插件还需要安装对应的包;


    对 dstat 工具的使用就介到这里,笔者能力有限,如有疏漏不妥之处,还请不吝赐教!