在Linux中监控系统各项性能的工具简直不要太多,什么top,free,iostat,vmstatnetstat等等等等。比如top,可以实时监控到系统负载、内存等情况;iostat能监控系统I/O情况;vmstat可以监控进程、内存、内存分页、堵塞IO、traps和CPU活动。可是应该没人会嫌好用的监控工具太多,所以今天介绍另外一个全能型的监控工具:dstat。
what is dstat
官方解释:versatile tool for generating system resource statistics,意思就是用于生成系统资源统计数据的通用工具。
其实dstat有点类似top,free,iostat,vmstat等多个工具的集合,而且还有不少额外的功能。输出结果可以导入csv文件,再用脚本或第三方工具对性能进行分析利用,安装也简单,用yum install即可。
基本用法
执行dstat不加任何参数,它默认会收集cpu,disk,net,paging,system的数据,每秒收集一次,就是这样:
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
0 0 99 0 0 0|5989B 905B| 0 0 | 0 0 | 35 57
0 0 100 0 0 0| 0 0 | 60B 818B| 0 0 | 54 87
0 2 98 0 0 0| 0 1268k| 60B 338B| 0 0 | 101 90
0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 64 101
1 0 99 0 0 0| 0 0 | 60B 338B| 0 0 | 50 76
0 1 99 0 0 0| 0 0 | 60B 338B| 0 0 | 55 83
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 50 74
1 0 99 0 0 0| 0 0 | 60B 338B| 0 0 | 55 85
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 49 77
0 1 99 0 0 0| 0 0 | 60B 338B| 0 0 | 55 80
0 0 100 0 0 0| 0 0 | 120B 338B| 0 0 | 60 91
0 1 99 0 0 0| 0 128k| 60B 338B| 0 0 | 59 92
0 0 100 0 0 0| 0 0 | 180B 346B| 0 0 | 64 95
1 1 98 0 0 0| 0 0 | 120B 338B| 0 0 | 63 94
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 61 93
0 0 100 0 0 0| 0 0 | 244B 338B| 0 0 | 66 87
1 1 98 0 0 0| 0 16k| 152B 338B| 0 0 | 64 96
0 1 99 0 0 0| 0 0 | 60B 346B| 0 0 | 62 95
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 66 106
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 56 80
1 1 98 0 0 0| 0 0 | 60B 338B| 0 0 | 53 78
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 50 79
0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 48 80
0 0 100 0 0 0| 0 0 | 180B 398B| 0 0 | 72 98
total-cpu-usage | CPU使用率,显示用户,系统和空闲部分 |
dsk/total | 磁盘统计,显示磁盘的读、写总数 |
net/total | 网络统计,网络设备发送和接受的数据总数 |
paging | 分页统计。分页是一种内存管理技术,用于查找系统场景。较大的分页表明系统正在使用大量的交换空间 |
system | 系统统计,显示中断(int)和上下文切换(csw)。 |
-c | cpu | 统计cpu状态,包括system,user,idle,wait,hardware,interrupt,software, |
-d | disk | 统计磁盘读写状态 |
-D total/sda | 统计指定磁盘或汇总信息 | |
-l | load | 统计系统负载情况,列出1分钟,5分钟,15分钟的平均值 |
-m | mem | 统计系统的物理内存使用情况,列出used,buffers,cache,free |
-s | swap | 统计swap交换分区已使用和未使用空间 |
-n | net | 统计网络使用情况,列出接收和发送数据 |
-N total/eth1 | 统计eth1接口汇总流量 | |
-r | I/O | 统计I/O请求,列出读,写请求 |
-p | proc | 统计进程信息,列出runnable,uninterruptible,new |
-y | sys | 统计系统信息,列出中断,上下文切换 |
-t | time | 显示统计时间,分析历史数据时有奇效 |
–fs | filesystem | 统计文件打开数和inodes数 |
数字 | 表示几秒收集一次数据,默认1秒 |
高级用法
–top-io/bio/cpu/cputime/cputime-avg/mem | 查看具体是哪个用户哪个进程占用了系统资源 |
–postfix | 显示postfix队列大小 |
–sendmail | 显示sendmail队列大小 |
–ntp | 显示ntp时间服务器 |
dstat的用法还有很多留待大家发掘。