vmstat命令:用来获得有关进程、虚存、页面交换空间及 CPU活动的信息
vmstat用法及参数:
vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量
-m:显示slabinfo
-n:只在开始时显示一次各字段名称
-s:显示内存相关统计信息及多种系统活动数量
delay:刷新时间间隔。如果不指定,只显示一条结果
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷
-d:显示磁盘相关统计信息
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V:显示vmstat版本信息
输出参数解读
[root@localhost~]# vmstat 3 5 #每隔3秒刷新一次数据 刷5次
procs -----------memory---------- ---swap-- -----io-- ---system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 3499840 325189 3695860 0 0 0 1 2 0 0 0 100 0
0 0 0 3499584 325189 3695860 0 0 0 0 88 168 0 0 100 0
0 0 0 3499708 325189 3695860 0 0 0 2 86 162 0 0 100 0
0 0 0 3499708 325189 3695860 0 0 0 10 81 161 0 0 100 0
1 0 0 3499732 325189 3695860 0 0 0 2 83 164 0 0 100 0
r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了
b 表示阻塞的进程
swpd 虚拟内存已使用的大小
free 空闲的物理内存的大小
buff 缓冲区内存大小
cache 高速缓存的内存大小
si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了
so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上
bi 块设备每秒接收的块数量
bo 块设备每秒发送的块数量
in 每秒CPU的中断次数,包括时间中断
cs 每秒上下文切换次数
us 用户使用CPU时间
sy 系统使用CPU时间
id 空闲CPU时间,一般来说,id + us + sy = 100,可以理解为:id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率
wa 等待IO消耗的CPU时间