vmstat性能监控工具,设计初衷是为了监控虚拟内存状态的
下面请看
[root@localhost ~]# 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
3 0 0 293144 1004 410908 0 0 118 9 44 85 0 0 99 0 0
0 0 0 293144 1004 410940 0 0 0 0 27 40 0 0 100 0 0
0 0 0 293144 1004 410940 0 0 0 0 29 40 0 0 100 0 0
0 0 0 293144 1004 410940 0 0 0 0 32 45 0 0 100 0 0
[root@localhost ~]# 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
3 0 0 293144 1004 410940 0 0 117 9 44 84 0 0 99 0 0
0 0 0 293144 1004 410940 0 0 0 0 31 49 0 0 100 0 0
0 0 0 293144 1004 410940 0 0 0 0 27 33 0 0 100 0 0
0 0 0 293144 1004 410940 0 0 0 0 33 50 0 1 99 0 0
**vmstat命令使用后,第一条出现的一样,我这个是什么都没有运行,这条一般是服务器启动至今的平均值,不做参考
r,b 队列中的进程个数,b不可中断的阻塞状态的进程个数
swpd 虚拟内存使用的大小,free空闲内存的使用量,不包括cache和buffer
si 每秒从交换分区写入内存的量,so没秒从内存写入交换分区的量
bi 每秒从块设备读取的块的数量,bo每秒向块设备写入的块的数量
in 每秒cpu的中断数量,包括时间中断,cs每秒上下文切换次数
us 用户进程消耗cpu时间的百分比,sy 内核进程消耗的cpu时间百分比,id CPU空虚状态百分比,wa io等待消耗时间百分比
st虚机管理程序消耗的时间百分比
vmstat的-a选项,显示inactive和active 的memory
其他:
si和so是读写swap的量,如果长期大于0,表示需要经常读写交换分区,考虑物理内存的瓶颈。
free很低不要紧,要参照buffer和cache这个是随时可以释放的
bi和bo是磁盘的读写操作,如果很大,要考虑分区或者磁盘的瓶颈或者问题了
us经常大于50%时,要考虑让开发优化程序了
wa过高,说明cpu等待I/O操作,则磁盘是主要瓶颈,考虑提升磁盘性能或者是不是有大量随机读操作
r 运行中的队列数量,如果超过了cpu的核数,考虑超线程,增加cpu数量,调整nice值等
cs一般越小越好,上下文切换会导致cpu繁忙,考虑调低进程数和线程数,或者避免频繁调用系统函数。