首页 > 代码库 > Linux下使用top/vmstat查看系统资源

Linux下使用top/vmstat查看系统资源

vmstat 命令是常见的Linux性能监控工具,报告关于内核线程、虚拟内存磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

vmstat使用

一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。

top使用

 

区别top命令

top命令用于显示系统当前的进程和其他状况;top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果再前台执行该命令,它将独占前台,直到用户终止该程序为止。

 

其他相关命令

df 查看磁盘的使用情况

[root@tank ~]# df
Filesystem    1K-blocks   Used    Available Use% Mounted on
/dev/sda2     39674192   7252020  30374288  20% /
/dev/sda3     49594196   8586164  38448076  19% /usr
/dev/sda4     59515556   6405700  50037828  12% /var

1K-blocks                 总的磁盘大小
used                          表示已使用了多少
available                 表示还有多少空间可用
use%                         磁盘的使用率

mpstat和sar查看cpu的运行情况,功能类似

[root@tank ~]# mpstat
11:38:39 AM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
11:38:39 AM  all    0.11    0.01    0.05    0.13    0.00    0.01    0.00   99.68     84.51

%user                           用户所占的CPU时间百分比
%nice                           nice值为负进程的CPU时间百分比
%sys                             系统内核所占cpu时间的百分比
%iowait                       i/o等待所占cpu时间的百分比
%idle                            cpu闲置时间的百分比
intr/s                           每秒cpu的中断次数

free -m来查看内存,交换分区使用情况,如果不加-m的话,最小单位是KB

[root@tank ~]# free -m
              total       used       free     shared    buffers     cached
Mem:          3823       3647        175          0        703       1945
-/+ buffers/cache:        998       2825
Swap:        24003        177      23825

total                                      表时总量是多少
used                                      已经使用了多少
free                                       还有多少空闲
shared                                共享是多少
buffers                               缓冲是多少
cached                              缓存了多少

iostat查看磁盘i/o情况

[root@krlcgcms01 ~]# iostat -x 2
Linux 2.6.18-92.1.10.el5 (krlcgcms01)   12/10/2010
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
 0.11    0.01    0.06    0.13    0.00   99.68
Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0        0.21     7.78  0.44  3.00    12.13    86.31    28.63     0.03    7.68   3.39   1.17

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的单位为毫秒)