vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。  相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:

[root@rac01test ~]# vmstat 1 2
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      8 254476 248344 4980016    0    0    80    35    3    2  1  0 96  3  0   
0  1      8 254476 248344 4980028    0    0    51    18 3991 6756  1  0 97  2  0   
 

1表示每个1秒采集一次服务器状态,2表示只采集2次。
实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如:

 [root@rac01test ~]# vmstat 2
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      8 262568 248344 4981444    0    0    80    35    3    2  1  0 96  3  0   
0  1      8 262668 248344 4981476    0    0    59   155 3824 6632  1  0 96  3  0   
0  1      8 262660 248344 4981480    0    0    67    52 3852 6691  1  0 97  2  0   
1  1      8 262652 248344 4981480    0    0    35    21 4238 7159  2  1 96  2  0   
 

这表示vmstat每2秒采集数据,一直采集,直到我结束程序

参数介绍:
r    :表示运行队列,表示运行和等待cpu时间片的进程数,当这个值长期超过了CPU数目,就会出现CPU瓶颈了
b    :列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
swpd :虚拟内存已使用的大小(KB),如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free :当前的空闲页面列表中内存数量(KB)。

buff : Linux/Unix作为buffer cache的内存数量(KB),一般对块设备的读写才需要缓冲。

cache: cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用5G;
           这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

si  :每秒从交换区写到内存的大小(KB),由磁盘调入内存
so  :每秒写入交换区的内存大小(KB),由内存调入磁盘

bi  :从块设备读入数据的总量(读磁盘)(块/秒)。
bo  :块设备写入数据的总量(写磁盘)(块/秒)

in  :每秒CPU的中断次数,包括时间中断
us  :列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy  :列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
id  :id 列显示了cpu处在空闲状态的时间百分比,linux 通常50%正常,不能低于30%
wa  :列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。