vmstat介绍

vmstat可以对操作系统的内存信息、进程状态、 CPU活动、磁盘等信息进行监控,不足之处是无法 对某个进程进行深入分析。

vmstat

vmstat [-a] [-n] [-S unit] [delay [ count]]

  • -a:显示活跃和非活跃内存
  • -m:显示slabinfo
  • -n:只在开始时显示一次各字段名称。
  • -s:显示内存相关统计信息及多种系统活动数量。
  • delay:刷新时间间隔。如果不指定,只显示一条结果。
  • count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这 时刷新次数为无穷。
  • -d:显示各个磁盘相关统计信息。
  • -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、

1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

  • -V:显示vmstat版本信息。
  • -p:显示指定磁盘分区统计信息
  • -D:显示磁盘总体信息

一般用法

  • delay:刷新时间间隔。如果不指定,只显示一条结果。
  • count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这 时刷新次数为无穷。

vmstat 10

10秒刷新一次结果,只要不停止,会持续显示刷新后的数据。

vmstat介绍_时间间隔

 

vmstat 10 5

10秒刷新一次结果,一共显示5次数据

vmstat介绍_时间间隔_02

 

字段说明

procs


R列

R列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,

说明CPU不足,需要增加CPU

B列

B列表示在等待资源的进程数,比如正在等待I/O或者内存交换等

memory


swpd列

swpd列表示切换到内存交换区的内存大小(单位KB),通俗讲就是虚拟内存的 大小。如果swap值不为0或者比较大,只要si、so的值长期为0.这种情况一般属 于正常情况。

free列

free列表示当前空闲的物理内存(单位KB)

Buff列

Buff列表示baffers cached内存大小,也就是缓冲大小,一般对块设备的读写

才需要缓冲。

Cache列

Cache列表示page cached的内存大小,也就是缓存大小,一般作为文件系统进 行缓冲,频繁访问的文件都会被缓存,如果cache值非常大说明缓存文件比较多, 如果此时io中的bi比较小,说明文件系统效率比较好。

swap


Si列

Si列表示由磁盘调入内存,也就是内存进入内存交换区的内存大小。

so列

so列表示由内存进入磁盘,也就是有内存交换区进入内存的内存大小。

一般情况下,si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不 足,需要增加系统内存。

io


bi列

bi列表示由块设备读入数据的总量,即读磁盘,单位kb/s。

bo列

bo列表示写到块设备数据的总量,即写磁盘,单位kb/s

备注

如果bi+bo值过大,且wa值较大,则表示系统磁盘IO瓶颈。

system


in列

in列表示某一时间间隔内观测到的每秒设备中断数

cs列

cs列表示每秒产生的上下文切换次数。

备注

这2个值越大,则由内核消耗的CPU就越多

cpu 


us列

us列表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗cpu时

间越多,如果长期大于50%,则需要考虑优化程序或者算法。

sy列

sy列表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%, 如果大于80%,说明可能出现CPU瓶颈。

id列

id列表示CPU处在空闲状态的时间百分比

wa列

wa列表示等待所占的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经 验wa的参考值为20%,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能 是磁盘大量随机读写造成的,也可能是磁盘或者此监控器的带宽瓶颈(主要是块 操作)造成的。

备注

如果评估CPU,需要重点关注procs项的r列值和CPU项的us、sy、wa列 的值。