vmstat 是Linux/Unix系统用来进行系统监控的工具
监控的目标主要有目标服务器的cpu使用率、内存的使用情况、虚拟内存交换情况,IO读写情况。
可以通过vmstat --help来获得该命令的帮组信息。
vmstat命令主要两个参数,如
vmstat m n
m 表示采样数据的时间间隔,单位为秒,该参数可单独使用,单独使用时会按照指定间隔持续采样。
n 表示采样的次数
例如 vmstat 5 2 表示每5秒采样一次数据,共采样2次,2次采样后命令自动结束。
[oracle@std ~]$ vmstat 5 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 832624 126056 959240 0 0 4 12 204 62 0 0 99 1 0 0 0 0 832624 126056 959240 0 0 0 58 1015 84 0 0 99 1 0
对主要参数介绍如下:
----proces-----
r 运行的队列,等待执行的任务数,当这个值超过cpu的个数时,就会出现cpu瓶颈。
b 等待资源的进程数,比如正等待IO或内存交换等。
----memory------
swpd 使用内存交换区的数量(单位为K),如果该值大于0,则表示机器物理内存可能不足,
在一些情况下如果swpd不为0或者比较大,只要si、so的值长期为0,系统性能还是正常。
free 空闲物理内存大小。
buff 已使用的buff大小,buff的作用一般用来缓冲对块设备的读写。
cache 已使用的cache大小,cache一般用作文件系统,如果cache比较大,说明用到cache的文件比较多,
如果此时IO中的bi比较小,则说明文件系统的效率比较好。
----swap-----
si 每秒从交换区写入到内存的大小(单位kb/s)
so 每秒从内存写入到交换区的大小(单位kb/s)
----io--------
bi 每秒从块设备读到的块数(读磁盘)
bo 每秒写块设备的块数(写磁盘)
-----system------
in 在间隔时间内观察到的每秒设备中断数
cs 每秒的上下文切换数
备注:这两个值越大,表示内存消耗cpu时间越多
------cpu--------
us 用户进程消耗cpu的时间,如果该值长期处在高位(50%以上),就需要考虑优化程序或其他措施。
sy 系统进程消耗cpu的时间,如果该值过高,说明系统内核消耗cup的时间过高,说明系统效率不高。
us+sy>80%说明可能存在cpu不足
id 空间时间,包括IO等待时间。
wa 等待IO时间,如果该值过高,说明IO等待比较严重,有IO瓶颈。