Linux系统性能监控之6个vmstat和6个iostat命令

这篇文章主要介绍一些Linux性能检测相关的命令。 vmstat和iostat的两个命令可以运行在主流的Linux/Unix操作系统上。

如果vmstat和iostat命令不能再你的电脑上运行,请安装sysstat包。因为vmstat和iostat命令是集成在SYSSTAT(系统监视工具)包里面。 iostat命令主要生成CPU和所有设备统计报告。你可以下载并安装SYSSTAT,如果使用源代码tar包安装,从这里下载SYSSTAT,但我们建议你使用yum命令安装。

Linux下安装Sysstat

# yum -y install sysstat 

vmstat:搜集内存、进程,paging等信息

iostat:中央处理单元(CPU)的统计数据和设备、分区输入/输出统计信息。

在Linux下6个vmstat命令例子:

1、列出活动和非活动的内存

在下面的示例中,有6列。每列的详细介绍在vmstat的man手册都会有详细解释。最显著的字段是memory下的free,swap下的si以及so。

[root@tecmint ~]# vmstat -a 


procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- 


 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st 


 1  0      0 810420  97380  70628    0    0   115     4   89   79  1  6 90  3  0 

A、free : 空闲的空间。

B、si : 从磁盘到Swap的速度是千字节每秒。

C、so :从Swape到磁盘的速度是千字节每秒。

注意:如果您运行vmstat不带参数,它缺省会显示汇总报告。

2、每隔'X'秒执行vmstat一次(N为执行的次数)

使用此命令,执行的vmstat每隔2秒钟执行一次,执行6次后自动停止。

[root@tecmint ~]# vmstat 2 6 


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      0 810420  22064 101368    0    0    56     3   50   57  0  3 95  2  0 


 0  0      0 810412  22064 101368    0    0     0     0   16   35  0  0 100  0  0 


 0  0      0 810412  22064 101368    0    0     0     0   14   35  0  0 100  0  0 


 0  0      0 810412  22064 101368    0    0     0     0   17   38  0  0 100  0  0 


 0  0      0 810412  22064 101368    0    0     0     0   17   35  0  0 100  0  0 


 0  0      0 810412  22064 101368    0    0     0     0   18   36  0  1 100  0  0 

3、vmstat命令带时间戳

vmstat命令使用-t参数显示时间戳,如下图所示的每一行都会记录。

[tecmint@tecmint ~]$ vmstat -t 1 5 


procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp--- 


 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 


 0  0      0 632028  24992 192244    0    0    70     5   55   78  1  3 95  1  0        2012-09-02 14:57:18 IST 


 1  0      0 632028  24992 192244    0    0     0     0  171  514  1  5 94  0  0        2012-09-02 14:57:19 IST 


 1  0      0 631904  24992 192244    0    0     0     0  195  600  0  5 95  0  0        2012-09-02 14:57:20 IST 


 0  0      0 631780  24992 192244    0    0     0     0  156  524  0  5 95  0  0        2012-09-02 14:57:21 IST 


 1  0      0 631656  24992 192244    0    0     0     0  189  592  0  5 95  0  0        2012-09-02 14:57:22 IST 

4、各种计数器的统计信息

用vmstat -s参数来显示各种事件计数器和内存统计信息。

[tecmint@tecmint ~]$ vmstat -s 


      1030800  total memory 


       524656  used memory 


       277784  active memory 


       185920  inactive memory 


       506144  free memory 


        26864  buffer memory 


       310104  swap cache 


      2064376  total swap 


            0  used swap 


      2064376  free swap 


         4539 non-nice user cpu ticks 


            0 nice user cpu ticks 


        11569 system cpu ticks 


       329608 idle cpu ticks 


         5012 IO-wait cpu ticks 


           79 IRQ cpu ticks 


           74 softirq cpu ticks 


            0 stolen cpu ticks 


       336038 pages paged in 


        67945 pages paged out 


            0 pages swapped in 


            0 pages swapped out 


       258526 interrupts 


       392439 CPU context switches 


   1346574857 boot time 


         2309 forks 

5、磁盘统计

用vmstat的-d选项显示所有磁盘的统计数据。

[tecmint@tecmint ~]$ vmstat -d 


disk- ------------reads------------ ------------writes----------- -----IO------ 


total merged sectors      ms  total merged sectors      ms    cur    sec 


ram0       0      0       0       0      0      0       0       0      0      0 


ram1       0      0       0       0      0      0       0       0      0      0 


ram2       0      0       0       0      0      0       0       0      0      0 


ram3       0      0       0       0      0      0       0       0      0      0 


ram4       0      0       0       0      0      0       0       0      0      0 


ram5       0      0       0       0      0      0       0       0      0      0 


ram6       0      0       0       0      0      0       0       0      0      0 


ram7       0      0       0       0      0      0       0       0      0      0 


ram8       0      0       0       0      0      0       0       0      0      0 


ram9       0      0       0       0      0      0       0       0      0      0 


ram10      0      0       0       0      0      0       0       0      0      0 


ram11      0      0       0       0      0      0       0       0      0      0 


ram12      0      0       0       0      0      0       0       0      0      0 


ram13      0      0       0       0      0      0       0       0      0      0 


ram14      0      0       0       0      0      0       0       0      0      0 


ram15      0      0       0       0      0      0       0       0      0      0 


loop0      0      0       0       0      0      0       0       0      0      0 


loop1      0      0       0       0      0      0       0       0      0      0 


loop2      0      0       0       0      0      0       0       0      0      0 


loop3      0      0       0       0      0      0       0       0      0      0 


loop4      0      0       0       0      0      0       0       0      0      0 


loop5      0      0       0       0      0      0       0       0      0      0 


loop6      0      0       0       0      0      0       0       0      0      0 


loop7      0      0       0       0      0      0       0       0      0      0 


sr0        0      0       0       0      0      0       0       0      0      0 


sda     7712   5145  668732  409619   3282  28884  257402  644566      0    126 


dm-0   11578      0  659242 1113017  32163      0  257384 8460026      0    126 


dm-1     324      0    2592    3845      0      0       0       0      0      2 

6、统计显示以MB为单位

vmstat以兆为单位显示,用参数-S和M(大写)。参数-S对应的值可以是k, K, m or M (默认为 kb)

[root@tecmint ~]# vmstat -S M 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      0    346     53    476    0    0    95     8   42   55  0  2 96  2  0 


 0  0      0    346     53    476    0    0     0     0   12   15  0  0 100  0  0 


 0  0      0    346     53    476    0    0     0     0   32   62  0  0 100  0  0 


 0  0      0    346     53    476    0    0     0     0   15   13  0  0 100  0  0 


 0  0      0    346     53    476    0    0     0     0   34   61  0  1 99  0  0 

在Linux下6个iostat命令例子

7、显示CPU和I/O统计信息

iostat的不带参数的显示CPU和I/ O的所有分区的统计信息,如下图所示。

[root@tecmint ~]# iostat 


Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU) 


avg-cpu:  %user   %nice %system %iowait  %steal   %idle 


           0.12    0.01    1.54    2.08    0.00   96.24 


Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn 


sda               3.59       161.02        13.48    1086002      90882 


dm-0              5.76       159.71        13.47    1077154      90864 


dm-1              0.05         0.38         0.00       2576          0 

8、只显示CPU的统计信息

用iostat的-c参数,如下图所示只显示CPU统计信息。

[root@tecmint ~]# iostat -c 


Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU) 


avg-cpu:  %user   %nice %system %iowait  %steal   %idle 


           0.12    0.01    1.47    1.98    0.00   96.42 

9、只显示磁盘的I/O统计

用iostat的-D参数显示只有I/O的所有分区的统计数据。

[root@tecmint ~]# iostat -d 


Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU) 


Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn 


sda               3.35       149.81        12.66    1086002      91746 


dm-0              5.37       148.59        12.65    1077154      91728 


dm-1              0.04         0.36         0.00       2576          0 

10、只显示单一设备的I/O统计信息。

默认情况下,它会显示所有分区的统计信息,使用-p和设备名称参数只显示只显示磁盘用于特定设备的I/O统计信息。

[root@tecmint ~]# iostat -p sda 


Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU) 


avg-cpu:  %user   %nice %system %iowait  %steal   %idle 


           0.11    0.01    1.44    1.92    0.00   96.52 


Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn 


sda               3.32       148.52        12.55    1086002      91770 


sda1              0.07         0.56         0.00       4120         18 


sda2              3.22       147.79        12.55    1080650      91752 

11、显示LVM统计

使用-n(大写)参数只显示LVM的统计数据,如图所示。

[root@tecmint ~]# iostat -N 


Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU) 


avg-cpu:  %user   %nice %system %iowait  %steal   %idle 


           0.11    0.01    1.39    1.85    0.00   96.64 


Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn 


sda               3.20       142.84        12.16    1086002      92466 


vg_tecmint-lv_root     5.13       141.68        12.16    1077154      92448 


vg_tecmint-lv_swap     0.04         0.34         0.00       2576          0 

12、iostat的版本。

与-V(大写)参数显示iostat的版本,如下所示。

[root@tecmint ~]# iostat -V 


sysstat version 9.0.4 

(C) Sebastien Godard (sysstat  orange.fr)

相关推荐