通用的系统资源统计工具。
说明
dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,是一个全能系统信息统计工具。与 sysstat 相比,dstat 拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且 dstat 支持即时刷新,譬如输入 dstat 3 即每三秒收集一次,但最新的数据都会每秒刷新显示。和 sysstat 相同的是,dstat 也可以收集指定的性能资源,譬如 dstat -c 即显示 CPU 的使用情况。
下载安装
方法一
1 | yum install -y dstat |
方法二
官网下载地址:http://dag.wieers.com/rpm/packages/dstat
1 | wget http://dag.wieers.com/rpm/packages/dstat/dstat-0.6.7-1.rh7.rf.noarch.rpm |
使用说明
安装完后就可以使用了,dstat 非常强大,可以实时的监控 CPU、磁盘、网络、IO、内存等使用情况。
直接使用 dstat,默认使用的是 -cdngy 参数,分别显示 cpu、disk、net、page、system 信息,默认是 1s 显示一条信息。可以在最后指定显示一条信息的时间间隔,如 dstat 5 是每 5s 显示一条,dstat 5 10 表示每 5s 显示一条,一共显示 10 条。
1 | [root@iZ23uulau1tZ ~]# dstat |
下面对显示出来的部分信息作一些说明:
- cpu:
hiq、siq分别为硬中断和软中断次数 - system:
int、csw分别为系统的中断次数(interrupt)和上下文切换(context switch)
其他的都很好理解。
语法
1 | dstat [-afv] [options..] [delay [count]] |
常用选项
-c:显示 CPU 系统占用,用户占用,空闲,等待,中断,软件中断等信息-C:当有多个 CPU 时候,此参数可按需分别显示 cpu 状态,例:-C 0,1是显示 cpu0 和 cpu1 的信息-d:显示磁盘读写数据大小-D hda,total:include hda and total-n:显示网络状态-N eth1,total:有多块网卡时,指定要显示的网卡-l:显示系统负载情况-m:显示内存使用情况-g:显示页面使用情况-p:显示进程状态-s:显示交换分区使用情况-S:类似 D/N-r:I/O 请求情况-y:系统状态--ipc:显示 ipc 消息队列,信号等信息--socket:用来显示 tcp udp 端口状态-a:此为默认选项,等同于-cdngy-v:等同于-pmgdsc -D total--output 文件:此选项也比较有用,可以把状态信息以 csv 的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv &此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中
当然 dstat 还有很多更高级的用法,常用的基本这些选项,更高级的用法可以结合 man 文档。
实例
如想监控 swap、process、sockets、filesystem 并显示监控的时间:
1 | [root@iZ23uulau1tZ ~]# dstat -tsp --socket --fs |
若要将结果输出到文件可以加 --output filename:
1 | [root@iZ23uulau1tZ ~]# dstat -tsp --socket --fs --output /tmp/ds.csv |
这样生成的 csv 文件可以用 excel 打开,然后生成图表。
通过 dstat --list 可以查看 dstat 能使用的所有参数,其中上面 internal 是 dstat 本身自带的一些监控参数,下面 /usr/share/dstat 中是 dstat 的插件,这些插件可以扩展 dstat 的功能,如可以监控电源(battery)、mysql 等。
下面这些插件并不是都可以直接使用的,有的还依赖其他包,如想监控 mysql,必须要装 python 连接 mysql 的一些包。
1 | [root@iZ23uulau1tZ ~]# dstat --list |
