Linux系统状态监控命令——vmstat命令用法详解
vmstat命令是Viryual Memor Statics的缩写,翻译过来是显示虚拟内存状态,但实际vmstat命令还可以显示关于进程、内存、I/O等系统整体运行状态。
vmstat命令语法
vmstat [options]
vmstat命令常用选项:
-a:显示活动内页
-f:显示启动后创建的进程总数
-n:头信息仅显示一次
-s:以表格方式显示事件计数器和内存状态
-d:报告磁盘状态
-p:显示指定的硬盘分区状态
-S:输出信息的单位
除了上述选项可以使用外,还有两个参数,即指定刷新状态信息的间隔以及显示次数
vmstat -a 3 5 #3秒刷新一次,总共获取5次信息
vmstat命令报告分析:
——————Procs(进程)——————
r:运行队列中的进程数量。当这个值长期大于CPU个数时基本可以判断CPU遇到了瓶颈,也就是说r不能超过CPU个数。结合cpu列中的id值(CPU空闲时间),如ID也小于40那就确实可以考虑CPU升级问题。
b:被阻塞的进程数量,数值越大说明系统阻塞越严重。
——————Memory(内存)——————
swpd:使用虚拟内存的大小,通常为0,越小越好。如果swpd的值不为0,但是si、so的值长期为0,不影响系统性能。
free:空闲物理内存大小。默认以K为单位。
buff:用作缓冲的内存大小。
cache:用作缓存的内存大小。如果cache值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。
——————Swap——————
si: 每秒从交换区写到内存的大小,由磁盘调入内存。
so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:内存够用的时候这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
——————IO(现在的Linux版本块的大小为1kb)——————
bi:每秒读取的块数
bo:每秒写入的块数
注意:随机磁盘读写的时候这2个值越大(如超出1024k),CPU在IO等待的值也会越大。有一个说法是bi+bo>1000则说明磁盘有瓶颈。
——————system(系统)——————
in:每秒中断数,包括时钟中断。
cs:每秒上下文切换数。
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
——————CPU(以百分比表示)——————
us:用户进程执行时间百分比(user time),us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
sy: 内核系统进程执行时间百分比(system time) sy的值如果大于30%,说明系统内核消耗的CPU资源多,应该检查原因。
id: 空闲时间百分比
wa: IO等待时间百分比。wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈。
st:虚拟机占用时间百分比。
评论