细说linux服务器各种监控工具


细说linux服务器各种监控工具
 
linux下面有很多强大的监控工具,各有各的优点,作为一个linux系统管理员,有必要知道这些命令的用法,结合自己的经验,写了点介绍,如对不足的地方,还请批评指正!
 
yum install sysstat dstat   sysstat是一系列的监控命令包。
 
[root@localhost mnt]# rpm -ql sysstat | grep bin
/usr/bin/iostat
/usr/bin/mpstat
/usr/bin/sadf
/usr/bin/sar
 
一、用tcp查看CPU、内存等
 
[root@localhost ipv4]# top
 
top - 01:58:43 up 1 day, 19:43,  1 user,  load average: 0.00, 0.00,
Tasks: 115 total,   1 running, 114 sleeping,   0 stopped,   0 zombi
Cpu(s):  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%
Mem:   1021520k total,   866804k used,   154716k free,    41884k bu
Swap:  2047992k total,    23832k used,  2024160k free,   180288k ca
 
 
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+ 
    1 root      20   0 19336 1260 1048 S  0.0  0.1   0:00.85
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00
    6 root      20   0     0    0    0 S  0.0  0.0   0:00.02
    7 root      20   0     0    0    0 S  0.0  0.0   0:00.00
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.00
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.00
   14 root      20   0     0    0    0 S  0.0  0.0   0:00.00
   15 root      20   0     0    0    0 S  0.0  0.0   0:00.12
            
第一行:当前时间  系统运行时间 当前登录用户  系统负载(1分钟,5分钟,15分钟平均值)
第二行:115进程总数   1个正在运行的进程  114个睡眠进程  0个停止进程  0个僵尸进程
第三行:用户空间占用CPU百分比0.3% ,系统内核占用0%,用户进程空间内改变过优先级的进程占用CPU0%(目前未涉及到过),空闲CPU占99.7%,等待输入输出的CPU占0%,服务于硬中断所耗费的CPU占用0%,服务于软中断所耗费的CPU占用0%,Steal Time(目前未涉及到过)
第四行:物理内存总量为1021520KB,使用物理内存总量为866804KB,空闲内存总量154716KB,用作内核缓存的内存量为41884KB
第五行:swap交换分区总量为 2047992KB,使用的交换分区总量23832KB,空闲交换分区总量 2024160KB,缓冲的交换区总量180288KB
(注:内存可以用free看一下,大概内容如下:
 [root@localhost lib]# free
             total       used       free     shared    buffers     cached
Mem:       1021520     261884     759636          0       6128      33948
-/+ buffers/cache:     221808     799712
Swap:      2064376      28336    2036040
 
第六行:PID为进程ID,USER为进程所有者用户,PR优先级(未研究过),NI 负值表示高优先级正值表示低优先级,VIRT进程需要的虚拟内存总量,RES常驻内存,SHR共享内存大小,S进程状态(  D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止, Z=僵尸进程),%CPU更新到现在CPU占用百分比(也就是单位时间内进程使用的CPU时间/单位时间,如每隔1s,该进程有800ms占用CPU,则该进程占用CPU80%,如果是8核的,8个CPU全部跑满,则CPU占用率为800%),%MEM进程使用的物理内存百分比,TIME+进程使用的CPU时间总和,COMMAND为命令名称
 
(注:通常我们会关注一个程序占用的CPU和内存的大小,即%CPU和VIRT。以下是VIRT、RES、SHR的解释:
   VIRT:virtual memory usage
    1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
    2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 
          VIRT=SWAP+RES
    RES:resident memory usage 常驻内存
    1、进程当前使用的内存大小,但不包括swap out
    2、包含其他进程的共享
    3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
    SHR:shared memory
    1、除了自身进程的共享内存,也包括其他进程的共享内存
    2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
    3、计算某个进程所占的物理内存大小公式:RES – SHR
    4、swap out后,它将会降下来
    DATA
    1、数据占用的内存。如果top没有显示,按f键可以显示出来。
    2、真正的该程序要求的数据空间,是真正在运行中要使用的
################################################################################
uptime查看平均负载
[root@localhost lib]# uptime   
 10:56:56 up 8 days, 54 min,  2 users,  load average: 0.00, 0.03, 0.00
10:56:56  为现在时间; up表示服务器正在运行;服务器已经运行了多久;当前有2个用户登录,在过去1分钟、5分钟、15分钟的系统平均负载值
#################################################################################
二、iostat查看io情况
查看TPS和吞吐量信息
[root@controller ~]#iostat -d -k 1 10
Device:         tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              19.00         0.00       112.00          0        112
sda1              0.00         0.00         0.00          0          0
sda2              0.00         0.00         0.00          0          0
sda3              0.00         0.00         0.00          0          0
sda4              0.00         0.00         0.00          0          0
sda5              3.00         0.00        16.00          0         16
sda6              0.00         0.00         0.00          0          0
sda7            16.00         0.00        96.00          0       96
tps:该设备每秒的传输次数,一次传输的意思是“一次I/O请求”
kB_read/s:每秒从设备读取的数据量
kB_wrtn/s :每秒向设备写入的数据量
kB_read :读取的总数据量
kB_wrtn :写入的总数量数据量
使用-x获得更多信息
查看设备使用率(%util)、响应时间(await)
[root@controller ~]#iostat -d -x  -k 1 10
Device:         rrqm/s   wrqm/s   r/s   w/s      rkB/s    wkB/s   avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00       22.00  0.00 18.00     0.00   160.00    17.78     0.07         3.78   3.78   6.80
sda1              0.00       0.00   0.00  0.00      0.00     0.00     0.00        0.00         0.00   0.00   0.00
sda2              0.00       0.00   0.00  0.00      0.00     0.00     0.00        0.00         0.00   0.00   0.00
sda3              0.00      15.00  0.00  2.00      0.00    68.00    68.00      0.01         6.50   6.50   1.30
sda4              0.00       0.00   0.00  0.00      0.00     0.00     0.00        0.00         0.00   0.00   0.00
sda5              0.00       0.00   0.00   0.00     0.00     0.00     0.00        0.00         0.00   0.00   0.00
sda6              0.00       0.00   0.00  0.00      0.00     0.00     0.00        0.00         0.00   0.00   0.00
sda7              0.00      7.00  0.00 16.00     0.00    92.00    11.50     0.06        3.44   3.44   5.50
rrqm/s:   每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s:  每秒进行 merge 的写操作数目.即 delta(wmerge)/s
r/s:           每秒完成的读 I/O 设备次数.即 delta(rio)/s
w/s:         每秒完成的写 I/O 设备次数.即 delta(wio)/s
rsec/s:    每秒读扇区数.即 delta(rsect)/s
wsec/s: 每秒写扇区数.即 delta(wsect)/s
rkB/s:      每秒读K字节数.是 rsect/s 的一半,因为每扇区大小为512字节.(需要计算)
wkB/s:    每秒写K字节数.是 wsect/s 的一半.(需要计算)
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区).delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度.即 delta(aveq)/s/1000(因为aveq的单位为毫秒).
await:    平均每次设备I/O操作的等待时间(毫秒).即 delta(ruse+wuse)/delta(rio+wio)
svctm:  平均每次设备I/O操作的服务时间 (毫秒).即 delta(use)/delta(rio+wio)
%util:     一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的.即 delta(use)/s/1000 (因为use的单位为毫秒)
(如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈.
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
)
部署一个程序时(我测试的是一个实时上传日志的程序),对系统的cpu、内存、io等都要有所考虑,保证系统高效的运行。
如果程序本身处理的包特别小,事件很多,压力大且没有间隔的话,占用CPU的资源会很多
如果用磁盘缓存,不用内存缓存的话,能够支持断点重传,保证数据的可靠性上传,如突然断电等情况,存入磁盘缓存的数据等到恢复后会依然上传,而不会丢失,但是相对的也会增加读写磁盘的次数,如果数据量比较小,速度还是可以忍受的。
####################################################################################
三、sar的使用
 
[root@localhost lib]# sar 1 3    每秒钟显示一次,总共显示三次
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain)      10/16/13        _x86_64_(1 CPU)
 
11:02:08        CPU     %user     %nice   %system   %iowait    %steal     %idle
11:02:09        all      1.00      0.00      0.00      0.00      0.00     99.00
11:02:10        all      0.00      0.00      0.99      0.00      0.00     99.01
11:02:11        all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.33      0.00      0.33      0.00      0.00     99.33
 
 
 
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain)   内核版本(主机域名) ; 10/16/13  当前日期;_x86_64_(1 CPU)架构(cpu数目)
 
 
CPU:表示机器内所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在用户层优先级的百分比,0表示正常;
%system 表示当系统运行时,在用户应用层上所占用的CPU百分比;
%iowait 表示请求硬盘I/0数据流出时,所占用CPU的百分比;
 
您可以CPU利用率的动态信息输出到一个文本文件中,然后通过more 来查看。
 
[root@localhost ~]# sar -u 1 5 > sar000.txt
[root@localhost ~]# more sar000.txt
也可以输出到一个二进制的文件中,然后通过sar来查看;
 
[root@localhost ~]# sar -u 1 5 -o sar002
[root@localhost ~]# sar -f sar002
 
注:如果您把数据通过-o filename 输出到一个二进制的文件中,是不能用文件内容查看工具more 、less或cat来查看的,应该用sar工具来查看,要加-f参数;
 
查看网络设备的吞吐情况;
 
比如我们让数据每秒更新一次,总共更新十次; 
 
[root@localhost ~]# sar -n DEV 2 5
时间 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
第一字段:时间;
IFACE:设备名;
rxpck/s:每秒收到的包;
rxbyt/s:每秒收到的所有包的体积;
txbyt/s:每秒传输的所有包的体积;
rxcmp/s:每秒收到数据切割压缩的包总数;
txcmp/s :每秒传输的数据切割压缩的包的总数;
rxmcst/s: 每秒收到的多点传送的包;
如果我们从事提取eth0设备(也就是网卡eth0)的信息;我们应该用grep 来过滤。然后再显示出来;
[root@localhost ~]# sar -n DEV 2 5 |grep eth0
11时52分37秒 eth0 1.00 1.00 97.51 97.51 0.00 0.00 0.00
11时52分39秒 eth0 1.01 1.01 98.49 98.49 0.00 0.00 0.00
11时52分41秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11时52分43秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
11时52分45秒 eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
Average: eth0 1.00 1.00 98.00 98.00 0.00 0.00 0.00
 
如果想知道网络设备错误报告,也就就是用来查看设备故障的。应该用EDEV;比如下面的例子;
 
[root@localhost ~]# sar -n EDEV 2 5
 
#####################################################################################
 
四、vmstat监控内存
 
[root@localhost lib]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 907500  71640   1268  15936   57   52    63    66   36   26  1  0 99  1  0
 0  0 907500  71640   1268  15936    0    0     0     0   35   13  0  0 100  0  0
 0  0 907500  71640   1268  15936    0    0     0     0   24   13  0  0 100  0  0
 0  0 907500  71640   1268  15936    0    0     0     0   32   17  0  0 100  0  0
 0  0 907500  71640   1268  15936    0    0     0     0   28   13  0  0 100  0  0
 
Procs 
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间 
Memory 
swpd: 虚拟内存使用情况,单位:KB
free: 空闲的内存,单位KB
buff: 被用来做为缓存的内存数,单位:KB
Swap 
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO 
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
System 
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数
CPU 
按 CPU 的总使用百分比来显示 
us: CPU 使用时间
sy: CPU 系统使用时间
id: 闲置时间
 
wa :CPU 空闲时间,在此期间系统有未完成的磁盘/NFS I/O 请求
 
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。 
如果pi,po 长期不等于0,表示内存不足。 
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好
 
#######################################################################################
 
五、mpstat监控CPU
 
 
[root@localhost ~]# mpstat -P 0 2 5 查看第一个CPU,2秒钟返回一次,总共返回5次
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain)      10/16/13        _x86_64_(1 CPU)
 
11:28:32     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
11:28:34       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
11:28:36       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
11:28:38       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
11:28:40       0    0.50    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.50
11:28:42       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:       0    0.10    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.90
 
[root@localhost ~]# mpstat -p 1 2 5 查看第二个CPU,2秒钟返回一次,总共返回5次
……
[root@localhost ~]# mpstat 2 5 注:查看所有CPU,2秒钟返回一次,总共返回5次
###########################################################################################
六、sadf与sar的结合使用  
 
sdaf 能从二进制文件中提取sar所收集的数据,前提必须是sar收集到了数据
 
[root@localhost lib]# sar -u 2 5 -o sar003      将sar收集到的cpu信息存放到二进制文件sar003
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13        _x86_64_        (1 CPU)
11:31:12        CPU     %user     %nice   %system   %iowait    %steal     %idle
11:31:14        all      0.00      0.00      0.00      0.50      0.00     99.50
11:31:16        all      0.00      0.00      0.50      0.50      0.00     99.01
11:31:18        all      0.00      0.00      0.00      0.00      0.00    100.00
11:31:20        all      0.50      0.00      0.00      0.50      0.00     99.00
11:31:22        all      0.00      0.00      0.50      1.00      0.00     98.51
Average:        all      0.10      0.00      0.20      0.50      0.00     99.20
[root@localhost lib]# sadf sar003         使用sadf去读取,但是显示有些凌乱
localhost.localdomain   2       1381894274      all%user 0.00
localhost.localdomain   2       1381894274      all%nice 0.00
localhost.localdomain   2       1381894274      all%system 0.00
localhost.localdomain   2       1381894274      all%iowait 0.50
localhost.localdomain   2       1381894274      all%steal  0.00
localhost.localdomain   2       1381894274      all%idle 99.50
localhost.localdomain   2       1381894276      all%user 0.00
localhost.localdomain   2       1381894276      all%nice 0.00
localhost.localdomain   2       1381894276      all%system 0.50
localhost.localdomain   2       1381894276      all%iowait 0.50
localhost.localdomain   2       1381894276      all%steal  0.00
localhost.localdomain   2       1381894276      all%idle 99.01
localhost.localdomain   2       1381894278      all%user 0.00
localhost.localdomain   2       1381894278      all%nice 0.00
localhost.localdomain   2       1381894278      all%system 0.00
localhost.localdomain   2       1381894278      all%iowait 0.00
localhost.localdomain   2       1381894278      all%steal  0.00
localhost.localdomain   2       1381894278      all%idle 100.00
localhost.localdomain   2       1381894280      all%user 0.50
localhost.localdomain   2       1381894280      all%nice 0.00
localhost.localdomain   2       1381894280      all%system 0.00
localhost.localdomain   2       1381894280      all%iowait 0.50
localhost.localdomain   2       1381894280      all%steal  0.00
localhost.localdomain   2       1381894280      all%idle 99.00
localhost.localdomain   2       1381894282      all%user 0.00
localhost.localdomain   2       1381894282      all%nice 0.00
localhost.localdomain   2       1381894282      all%system 0.50
localhost.localdomain   2       1381894282      all%iowait 1.00
localhost.localdomain   2       1381894282      all%steal  0.00
localhost.localdomain   2       1381894282      all%idle 98.51
 
 
[root@localhost lib]# sar -f  sar003  用sar  -f读取比较人性化
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain) 10/16/13        _x86_64_        (1 CPU)
 
11:31:12        CPU     %user     %nice   %system   %iowait    %steal     %idle
11:31:14        all      0.00      0.00      0.00      0.50      0.00     99.50
11:31:16        all      0.00      0.00      0.50      0.50      0.00     99.01
11:31:18        all      0.00      0.00      0.00      0.00      0.00    100.00
11:31:20        all      0.50      0.00      0.00      0.50      0.00     99.00
11:31:22        all      0.00      0.00      0.50      1.00      0.00     98.51
Average:        all      0.10      0.00      0.20      0.50      0.00     99.20
[root@localhost lib]# 
 
######################################################################################
 
七、pidstat对pid进程的监控
 
[root@localhost lib]# pidstat 2  5  2秒钟输出一次pid信息,总共输出十次
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain)      10/16/13        _x86_64_        (1 CPU)
 
11:36:00          PID    %usr %system  %guest    %CPU   CPU  Command
11:36:02        21906    0.00    0.50    0.00    0.50     0  pidstat
 
11:36:02          PID    %usr %system  %guest    %CPU   CPU  Command
11:36:04        21906    0.00    0.50    0.00    0.50     0  pidstat
 
11:36:04          PID    %usr %system  %guest    %CPU   CPU  Command
11:36:06           15    0.00    0.50    0.00    0.50     0  kblockd/0
11:36:06        21609    5.53    1.51    0.00    7.04     0  httpd
 
11:36:06          PID    %usr %system  %guest    %CPU   CPU  Command
11:36:08           26    0.00    2.01    0.00    2.01     0  kswapd0
11:36:08        21609   23.12    4.52    0.00   27.64     0  httpd
11:36:08        21906    0.50    0.50    0.00    1.01     0  pidstat
 
11:36:08          PID    %usr %system  %guest    %CPU   CPU  Command
11:36:10           26    0.00    1.01    0.00    1.01     0  kswapd0
11:36:10        20586    0.50    0.50    0.00    1.01     0  mysqld
11:36:10        21609   20.60    0.50    0.00   21.11     0  httpd
11:36:10        21906    0.00    0.50    0.00    0.50     0  pidstat
 
Average:          PID    %usr %system  %guest    %CPU   CPU  Command
Average:           15    0.00    0.10    0.00    0.10     -  kblockd/0
Average:           26    0.00    0.60    0.00    0.60     -  kswapd0
Average:        20586    0.10    0.10    0.00    0.20     -  mysqld
Average:        21609    9.83    1.30    0.00   11.13     -  httpd
Average:        21906    0.10    0.40    0.00    0.50     -  pidstat
 
这里可以看到正在跑的进程及其所消耗的资源
 
[root@localhost lib]# pidstat -r -p 20586     使用r参数,pidstat将显示各活动进程的内存使用统计
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain)      10/16/13  _x86_64_ (1 CPU)
 
11:38:23          PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
11:38:23        20586      0.04      0.00  475076  15040   1.47  mysqld
 
[root@localhost lib]# pidstat -r -p 20586 1  最后面的1表示一秒钟刷新一次,如果不加则默认显示一次。
Linux 2.6.32-71.el6.x86_64 (localhost.localdomain)      10/16/13  _x86_64_ (1 CPU)
 
11:38:31          PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
11:38:32        20586      0.00      0.00  475076  15040   1.47  mysqld
11:38:33        20586      0.00      0.00  475076  15040   1.47  mysqld
11:38:34        20586      0.00      0.00  475076  15040   1.47  mysqld
11:38:35        20586      0.00      0.00  475076  15040   1.47  mysqld
11:38:36        20586      0.00      0.00  475076  15040   1.47  mysqld
 
minflt/s: 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数
majflt/s: 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生
VSZ:      该进程使用的虚拟内存(以kB为单位)
RSS:      该进程使用的物理内存(以kB为单位)
%MEM:     该进程使用内存的百分比
Command:  拉起进程对应的命令
 
 
pidstat -u 1
pidstat -r 1
pidstat -d 1
 
以上命令以1秒为信息采集周期,分别获取cpu、内存和磁盘IO的统计信息
 
###################################################################################
 
八、dstat的全能
 
直接输入dstat,会使用默认值,每秒显示一次cpu、disk、net、paging、system的数据。等于dstat -cdngy 1
 
[root@localhost lib]# dstat
Terminal width too small, trimming output.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-->
usr sys idl wai hiq siq| read  writ| recv  send|  in   out >
  1   0  99   1   0   0| 127k  133k|   0     0 |  57k   52k>
  0   0 100   0   0   0|   0     0 | 816B  134B|   0     0 >
  0   0 100   0   0   0|   0     0 |1320B  278B|   0     0 >
  0   0 100   0   0   0|   0     0 |1185B  150B|   0     0 >
  1   0  99   0   0   0|   0     0 | 544B  150B|   0     0 >
  0   0 100   0   0   0|   0     0 | 977B  150B|   0     0 >
  0   0 100   0   0   0|   0     0 | 946B  150B|   0     0 >
  0   0 100   0   0   0|   0  8192B|1879B  150B|   0     0 >
  0   0 100   0   0   0|   0     0 |1047B  150B|   0     0 >
  1   0  99   0   0   0|   0     0 | 692B  150B|   0     0 >
  0   0 100   0   0   0|   0     0 |1669B  150B|   0     0 >
 
date && dstat -tclmdny 60  一分钟监控一次
 
[root@localhost lib]# date && dstat -tclmdny 10  十秒钟监控一次
Wed Oct 16 11:47:09 CST 2013
----system---- ----total-cpu-usage---- ---load-avg--- ------memory-usage----- -dsk/total- -net/total- ---system--
  date/time   |usr sys idl wai hiq siq| 1m   5m  15m | used  buff  cach  free| read  writ| recv  send| int   csw 
16-10 11:47:09|  1   0  99   1   0   0|   0 0.02    0| 808M 12.3M 64.8M  112M| 127k  133k|   0     0 |  36    26 
16-10 11:47:19|  0   0 100   0   0   0|   0 0.02    0| 808M 12.3M 64.8M  112M|   0     0 | 911B   12B|  26    10 
16-10 11:47:29|  0   0 100   0   0   0|   0 0.02    0| 808M 12.3M 64.8M  112M|   0     0 | 928B   44B|  26    10 
16-10 11:47:39|  0   0 100   0   0   0|   0 0.02    0| 808M 12.3M 64.8M  112M|   0     0 | 875B   43B|  26    10 
16-10 11:47:49|  0   0 100   0   0   0|   0 0.02    0| 808M 12.3M 64.9M  112M|  25k    0 | 739B   26B|  25    11 
[root@localhost lib]# 
 
 
基本用法
dstat [-afv] [options..] [delay [count]]
常用选项如下:
 
dstat 3 #3秒输出一条信息
 
dstat -N eth0 #显示eth0网卡进出流量
 
dstat -l #显示cpu在1、5、15分钟的负载
 
dstat -r #显示io读写流量
 
有关Dstat涉及的些参数含义说明:
 
 
Dstat options:
-c, --cpu 显示CPU情况
-C 0,3,total include cpu0, cpu3 and total
-d, --disk 显示磁盘情况
-D total,hda include hda and total
-g, --page enable page stats
-i, --int enable interrupt stats
-I 5,eth2 include int5 and interrupt used by eth2
-l, --load enable load stats
-m, --mem 显示内存情况
-n, --net 显示网络情况
-N eth1,total 可以指定网络接口
-p, --proc enable process stats
-s, --swap 显示swap情况
-S swap1,total 可以指定多个swap
-t, --time enable time counter
-y, --sys enable system stats
--ipc 报告IPC消息队列和信号量的使用情况
--lock enable lock stats
--raw enable raw stats
--tcp enable tcp stats
--udp enable udp stats
--unix enable unix stats
-M stat1,stat2 enable external stats
--mods stat1,stat2
-a, --all 使用-cdngy 缺省的就是这样显示
-f, --full 使用 -C, -D, -I, -N and -S 显示
-v, --vmstat 使用-pmgdsc -D 显示
--integer show integer values
--nocolor disable colors (implies --noupdate)
--noheaders 只显示一次表头以后就不显示了,使用重定向写入文件时很有用
--noupdate disable intermediate updates
--output file 写入到CVS文件中
[root@localhost lib]# dstat --top-mem --top-io --top-cpu          
--most-expensive- ----most-expensive---- -most-expensive-
  memory process |     i/o process      |  cpu process   
httpd        196M|init         38k   11k|kswapd0      0.0
httpd        196M|sshd: root@ 181B  224B|                
httpd        196M|sshd: root@  59B   96B|                
httpd        196M|sshd: root@  59B   96B|mysqld       1.0
httpd        196M|sshd: root@  59B   96B|                
httpd        196M|sshd: root@  59B   96B|                
httpd        196M|sshd: root@  59B   96B|                
httpd        196M|sshd: root@  59B   96B|
 

相关内容

    暂无相关文章