vmstat :是virtual memory statistics(虚拟内存统计)的缩写,很多linux版本默认安装此命令工具。该命令可以对操作系统的内存信息,进程状态,cpu活动进行查看,不足之处是无法对某个进程进行深入分析。

vmstat

-V :查看版本信息

 

[root@zhu3 ~]# vmstat -V
procps version 3.2.7

delay :表示两次输出之间的时间间隔

count :按照delay时间间隔统计的次数

 

vmstat 2 :表示两秒钟更新一次输出信息,ctrl+c 停止输出

 

[root@zhu3 ~]# 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      0 154704  89492 131536    0    0     3     8  113   62  0  0 99  0  0
0  0      0 154704  89492 131536    0    0     0     0 1005   84  0  0 100  0  0
1  0      0 154704  89492 131536    0    0     0     0 1005   84  0  0 100  0  0

vmstat 1 4 :1秒更新一次输出信息,4次后停止输出

 

[root@zhu3 ~]# vmstat 1 4
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 154704  89504 131536    0    0     3     8  113   62  0  0 99  0  0
0  0      0 154704  89504 131536    0    0     0     0 1003   95  0  0 100  0  0
0  0      0 154704  89512 131528    0    0     0   300 1027  176  0  2 96  1  0
0  0      0 154704  89512 131536    0    0     0    64 1019  122  0  0 100  0  0
[root@zhu3 ~]#

对输出的内容分析

proces :

       r列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统cpu的个数说明cpu不足,

       需增加cpu

       b列表示在等待支援的进程数,比如正在等待I/o或者内存交换等

memory:

        swpd:虚拟内存的使用情况,单位为kb

        free:空闲内存,单位为kb

        buff:表示buffers cache的内存数,一般对块设备的读写才需要缓冲

        cache:表示page changed的内存数量,一般作为文件系统进行缓冲

swap:

         si:表示由磁盘调入内存,也就是由内存进入内存交换分区的内存大小

          so:由内存调入磁盘,也就是由内存交换区进入内存的内存大小

一般情况下si,so的值都为0,如果二者长期不为0,表示系统内存不足,需要添加系统内存

io: 

       bi:表示从块设备读入数据的总量

        bo:表示写到块设备的数据总量

system :

       in:表示在一段时间间隔内观测到的每秒设备中断数

        cs:每秒产生的上下文切换次数‘

cpu :

       us:用户进程消耗的cpu时间百分比,us的值比较高时说明用户进程消耗的cpu时间多,如

          果长期大于50%,需要优化

        sy:内核进程消耗的cpu时间百分比

        若us+sy大于80%说明cpu资源不足

         id:cpu处于空闲状态段时间百分比

          wa:i/o等待所占用的cpu时间百分比

标准情况下:

r<5 b=0