- vmstat 3
每间隔3s输出一次结果,持续输出 - vmstat 3 4
每间隔3s输出一次结果,一共输出4次结果 - vmstat输出结果表示的意义
[root@test03 ~]# vmstat 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1205212 2108 122444 0 0 2 1 27 44 0 0 100 0 0
进程相关:
r,表示运行队列的使用和等待cpu的进程数
b, io队列中的进程数量
内存相关:
swpd, 使用swap交换分区的空间,单位KB
free, 空闲的内存空间,单位KB
buff, 读写块设备的缓冲空间,单位KB
cache,文件读写缓存,单位KB,当应用使用内存时buff何cache会被快速回收为内存
swap相关:
si, 每秒从交换分区写入内存的数据量,单位每秒KB
so, 每秒从内存写入交换分区的数据量,单位每秒KB
IO相关:
bi,每秒从块设备读取的块数
bo,每秒写入块设备的块数
系统相关:
in,每秒中断数,包括时钟中断
cs,每秒上下文切换数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的
CPU相关:
cs,用户进程执行时间
sy,系统进程执行时间
id,cpu的空闲时间
wa,cpu等待io的时间
网友评论