一、 dstat 简介
dstat是一个Linux系统监控工具,可以提供实时的系统性能数据,包括CPU、内存、磁盘I/O、网络流量等等。
在进行性能测试的时候,我们一般需要检测很多方面的数据,这些数据包括CPU占用,内存占用情况,网络状况,load average,进程信息,磁盘信息等等。
利用系统提供的命令一般来说可以完成这些数据的监测,但是一般来说,这些命令都是分散的,比如vmstat,iostat,ss,netstat。
这样一来,命令太分散了,此时就迫切需要一款,可以集中监控的工具, dstat 即可以实现集中监控上述各项指标。
在发现系统性能问题时,dstat可以帮助我们快速准确的找到问题所在,并采取相应的措施。
![](https://img.haomeiwen.com/i12979420/aa9385ceb63127b1.png)
![](https://img.haomeiwen.com/i12979420/d13476a37a865370.png)
二、 安装 dstat
# yum -y install dstat
Installed:
dstat.noarch 0:0.7.2-12.el7
# rpm -ql dstat
/usr/bin/dstat
# file /usr/bin/dstat
/usr/bin/dstat: Python script, ASCII text executable
三、 dstat的简单使用
安装完后就可以使用了,dstat非常强大,可以实时的监控cpu、磁盘、网络、IO、内存等使用情况。
直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息,默认是1s显示一条信息。
可以在最后指定显示一条信息的时间间隔:默认情况下隔1秒显示一次,一直显示;
如 dstat 5 就是每5秒显示1条信息, dstat 1 10 即每1秒显示一条信息,一共显示10次;
![](https://img.haomeiwen.com/i12979420/cc86332ec57919e6.png)
![](https://img.haomeiwen.com/i12979420/7cf813abbfdca0f8.png)
默认情况下分五个区域:
CPU使用率
usr:用户空间的程序所占百分比;
sys:系统空间程序所占百分比;
idel:空闲百分比;
wai:等待磁盘I/O所消耗的百分比;
hiq:硬中断次数;
siq:软中断次数
磁盘统计
read:读总数
writ:写总数
网络统计
recv:网络收包总数
send:网络发包总数
内存分页统计
in: pagein(换入)
out:page out(换出)
注:系统的分页活动。
分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,通常情况下当系统已经开始用交换空间的时候,就说明你的内存已经不够用了,或者说内存非常分散,理想情况下page in(换入)和page out(换出)的值是0 0。
系统信息
int:中断次数
csw:上下文切换
注:中断(int)和上下文切换(csw)。
这项统计仅在有比较基线时才有意义。
这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。
你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。
![](https://img.haomeiwen.com/i12979420/ec84052e869f4cd4.png)
默认情况下,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接口及其当前用量的一些动态数据
四 、一些案例
1.CPU性能分析
如果我们需要了解系统中CPU占用情况的性能数据,我们可以通过以下命令来监测:
# dstat --cpu --top-cpu
该命令将实时输出各个进程的CPU占用情况,并以一个实时的“top”列表形式展示。
通过该命令,我们可以快速发现CPU占用率最高的进程,以便进行后续的优化和改进。
- 磁盘IO性能分析
在处理高并发的访问请求时,磁盘I/O往往是系统性能的瓶颈之一。
如果我们需要了解系统中磁盘I/O的性能数据,可以通过以下命令进行监测:
dstat --disk --top-bio
该命令将实时输出各个分区的磁盘IO数据,并以一个实时的“top”列表形式展示。
通过该命令,我们可以快速发现磁盘I/O占用率最高的分区,以便进行后续的优化和改进。
- 网络性能分析
如果我们需要了解系统中网络流量的性能数据,可以通过以下命令进行监测:
dstat --net --tcp --udp
该命令将实时输出TCP和UDP连接情况、网络流量数据等,以帮助我们分析系统中的网络性能问题,并采取相应的措施。
- 查看时间、CPU、磁盘读写、IO、负载、内存、网络、最高的CPU占用和最高的内存占用
dsta -tcdrlmn --top-cpu –top-mem
- 查看8颗核心,每颗核心的使用情况和CPU使用情况
dstat -cl -C 0,1,2,3,4,5,6,7 --top-cpu
通过以上介绍,我们可以看到dstat是一个非常实用的Linux系统监控工具,可以帮助我们快速定位系统性能问题,并采取相应的措施。
在实际的系统管理中,我们可以根据不同的场景使用不同的参数,以得到更加精准、详细的监控数据。
五、参考
性能监测工具 dstat
https://www.pianshen.com/article/6777602614/
Linux常用命令dstat命令具体使用方法
https://www.lxlinux.net/3372.html
网友评论