一、dstat工具
多功能系统资源统计生成工具。获取信息类似top、free、iostat、vmstat等多个工具的合集,所以也称为vmstat、iostat、ifstat等工具替代品,其结果可以存储成csv文件,进而通过脚本或第三方工具对性能进行分析。使用前需要安装,但部分OS做了默认安装。
二、dstat安装
rpm -Uvh dstat-0.6.7-1.el*.rf.noarch.rpm 或yum -y install dstat安装下即妥
三、dstat使用
dstat命令有默认选项,执行dstat命令不加任何参数,默认会收集-cpu-、-disk-、-net-、-paging-、-system-的数据,一秒钟收集一次。默认输入 dstat 等于输入了dstat -cdngy 1或dstat -a 1
dstat [-afv] [options] [delay [count]]
1.直接跟数字,表示#秒收集一次数据,默认为一秒;dstat 5表示5秒更新一次
2.-c,–cpu 统计CPU状态,包括 user, system, idle(空闲等待时间百分比), wait(等待磁盘IO), hardware interrupt(硬件中断), software interrupt(软件中断)
3.-d, –disk 统计磁盘读写状态,-D total,sda 统计指定磁盘或汇总信息
4.-l, –load 统计系统负载情况,包括1分钟、5分钟、15分钟平均值
5.-m, –mem 统计系统物理内存使用情况,包括used, buffers, cache, free
6.-s, –swap 统计swap已使用和剩余量
7.-n, –net 统计网络使用情况,包括接收和发送数据,-N eth1,total 统计eth1接口汇总流量
8.-r, –io 统计I/O请求,包括读写请求
9.-p, –proc 统计进程信息,包括runnable、uninterruptible、new
10.-y, –sys 统计系统信息,包括中断、上下文切换
11.-t 显示统计时时间,对分析历史数据非常有用
12.–fs 统计文件打开数和inodes数
四、显示结果说明
–cpu–
usr:用户进程消耗的CPU时间百分比
usr的值比较高时,说明用户进程消耗的CPU时间多,若长期超过50%的使用,需要考虑优化程序算法或 者进行加速。
sys:内核进程消耗的CPU时间百分比。sys的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,需要检查原因。
idl:CPU处在空闲状态时间百分比
wai:IO等待消耗的CPU时间百分比。wa的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。
hiq:硬中断次数。
siq:软中断次数。
–memory–
used:使用的物理内存值。
free:空闲的物理内存。
buff:buffer cache的内存,对块设备的读写进行缓冲。
cache:page cache的内存, 文件系统的cache。若cache的值大说明cache住的文件数多,若频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。
–swap–
si:交换内存使用,由磁盘调入内存
so:交换内存使用,由内存调入磁盘
内存够用的时候,这2个值都是0,若si,so长期>0,系统性能会受到影响,磁盘IO和CPU消耗大。
–procs–
r:运行的和等待cpu时间片运行的进程数,若长期>1需要引起注意考虑增加cpu。
b:处于不可中断状态的进程数,常见的情况是由IO引起的。
–IO–
read/bi:从块设备读入的数据总量(读磁盘) (KB/s)
write/bo:写入到块设备的数据总理(写磁盘) (KB/s)
随机磁盘读写的时候,这2个值越大(如超出1M),能看到CPU在IO等待的值也会越大。
–system–
int:interrupt 每秒产生系统的中断次数
csw:context switch 每秒产生的上下文切换次数
int,csw越大,内核消耗的CPU时间会越多。