当前位置:首页 > linux > 正文

Linux 终端下全能系统监控工具dstat命令详解与使用教程

dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,是一个全能系统信息统计工具。与 sysstat 相比,dstat 拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且 dstat 支持即时刷新,譬如输入 dstat 3 即每三秒收集一次,但最新的数据都会每秒刷新显示。和 sysstat 相同的是,dstat 也可以收集指定的性能资源,譬如 dstat -c 即显示 CPU 的使用情况。

下载安装 

方法一 yum install -y dstat

方法二 官网下载地址:http://dag.wieers.com/rpm/packages/dstat

wget http://dag.wieers.com/rpm/packages/dstat/dstat-0.6.7-1.rh7.rf.noarch.rpm rpm -ivh dstat-0.6.7-1.rh7.rf.noarch.rpm

使用说明 

默认他会 收集-cpu-、-disk-、-net-、-paging-、-system-的数据,一秒钟收集一次。默认输入 dstat 等于输入了dstat -cdngy 1或dstat -a 1;

        这是默认输出显示的信息:

            CPU状态:CPU的使用率。这项报告更有趣的部分是显示了用户,系统和空闲部分,这更好地分析了CPU当前的使用状况。如果你看到"wait"一栏中,CPU的状态是一个高使用率值,那说明系统存在一些其它问题。当CPU的状态处在"waits"时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。

            磁盘统计:磁盘的读写操作,这一栏显示磁盘的读、写总数。

            网络统计:网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。

            分页统计:系统的分页活动。分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下你都希望看到page in(换入)和page out(换出)的值是0 0。

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

            默认情况下,dstat每秒都会刷新数据。如果想退出dstat,你可以按"CTRL-C"键。

            需要注意的是报告的第一行,通常这里所有的统计都不显示数值的。

            这是由于dstat会通过上一次的报告来给出一个总结,所以第一次运行时是没有平均值和总值的相关数据。

    在dstat命令中有很多参数可选,你可以通过man dstat命令查看,大多数常用的参数有这些:

        -c, --cpu:显示cpu相关信息;

            -C #,#,...,total

        -d, --disk:显示磁盘的相关信息

            -D sda,sdb,...,tobal

        -g:显示page相关的速率数据;

        -l :显示负载统计量

        -n:Interface的相关统计数据;

        -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 :显示占用最多内存的进程

        -- top-lantency:延迟最大的进程;

    举一些例子:

        查看全部内存都有谁在占用:

dstat -g -l -m -s --top-mem

wKioL1aFAbCirJ06AAHz0sdbY_I274.jpg

        显示一些关于CPU资源损耗的数据:  

dstat -c -y -l --proc-count --top-cpu

wKiom1aFAaTAuvKBAAIDlseZDQQ240.jpg

        输出一个csv格式的文件用于以后,可以通过下面的命令:

dstat -output /PATH/TO/SOMEFILE -cdn

更新时间 2021-03-11