vmstat 是一个相当全面的性能分析工具,通过它可以观察:
1)统的进程状态
2)内存使用情况
3)虚拟内存的使用情况
4)磁盘的I/O、中断、上下文切换
5)CPU的使用情况
使用方式
1)直接执行 vmstat 命令,返回系统当前状态
2)使用参数来指定执行命令的间隔时间
# vmstat 2 1
表示每个两秒采集一次服务器状态
执行结果示例
结果说明
(1)procs
r:等待运行的进程数,当这个值超过了CPU数目,就会出现CPU瓶颈了,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险
b:表示阻塞的进程,值越高,系统压力越大
(2)memory
swpd:虚拟内存使用的大小(单位:KB),如果大于0,表示物理内存不足了
free:空闲的物理内存的大小
buff:存储例如目录里面的内容、权限等
cache:直接用来记忆我们打开的文件,给文件做缓冲,Linux把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用
(3)swap
si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了
so:每秒虚拟内存写入磁盘的大小
(4)io
bi:发送到块设备的块数(单位:块/秒),块设备是指系统上磁盘等块存储设备,默认块大小是1024byte,通过bi就可以知道磁盘每秒写入了多少M数据
bo:从块设备接收到的块数(单位:块/秒),相应bi,通过bo可以知道磁盘每秒读取了多少M
(5)system
in:每秒的中断数,包括时钟中断
cs:每秒上下文环境切换次数,例如每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,很耗资源,要尽量避免频繁调用系统函数,上下文切换次数过多表示CPU大部分浪费在上下文切换
(6)cpu
按CPU的总使用百分比来显示
us:用户CPU使用率
sy:系统CPU使用率,如果太高,表示系统调用时间长,例如是IO操作频繁
id:空闲CPU使用率
一般 id + us + sy = 100