vmstat(Virtual Meomory Statistics:虚拟内存统计)可对操作系统的虚拟内存、进程、页面交换空间、CPU活动进行监控。
这些信息反映了系统的负载情况。
vmstat不足之处是无法对某个进程进行深入分析。
通常使用vmstat 5 5(表示在5秒时间内进行5次采样)命令测试。将得到一个数据汇总他能够反映真正的系统情况。
某压测服务器5秒进行5次采用的显示结果:
[root@flume6 ~]# vmstat 5 5
procs --------------memory------------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 100244 40372 3920 815184 0 0 3 8 4 2 5 0 95 0 0
10 0 100244 37148 3928 818868 0 0 0 687 2925 10001 52 3 44 1 0
3 0 100244 32932 3936 822844 0 0 0 742 1997 8340 44 3 52 0 0
1 0 100244 29584 3952 826412 0 0 0 721 1753 11317 52 3 45 1 0
3 0 100244 26236 3960 829576 0 0 0 861 1970 11012 56 2 41 0 0
说明
procs
r:在运行队列中等待的进程数,展示了正在执行和等待CPU资源的任务个数。
当这个值大多数超过了CPU数目,就会出现CPU瓶颈了
b:在等待io的进程数
memoy
swpd:正在使用的swap大小(单位KB)
free:空闲的内存空间(单位KB)
buff: 已使用的buff大小,对块设备的读写进行缓冲(单位:KB)
cache:已使用的cache大小,文件系统的cache(单位:KB)
swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
io
bi: 从块设备读入的数据总量(读磁盘) (KB/s)
bo: 写入到块设备的数据总理(写磁盘) (KB/s)
system
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)转换次数
上面这2个值越大,会看到由内核消耗的CPU时间会越多
cpu
us:用户进程消耗的CPU时间百分比
us 的值比较高时,说明用户进程消耗CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速
sy:内核进程消耗的CPU时间百分比
sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因
id:cpu空闲以百分比
wa:io等待消耗的CPU时间百分比
wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)