一、vmstat介绍
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值。
常用命令:vmstat 1 5
(每1s展示一下服务器状态,共展示5次)
相比top,通过vmstat可以看到整个机器的 CPU,内存,IO的使用情况, 而不是单单看到各个进程的CPU使用率和内存使用率。
二、参数详解
1.进程procs
- r:在运行队列中等待的进程数 。
- b:在等待io的进程数 。
2.内存memoy
- swpd:现时可用的交换内存(单位KB)。
- free:空闲的内存(单位KB)。
- buff: 缓冲区中的内存数(单位:KB)。
- cache:被用来做为高速缓存的内存数(单位:KB)。
3.swap交换页面
- si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
- so: 从内存交换到磁盘的交换页数量,单位:KB/秒。
4.io块设备
- bi: 发送到块设备的块数,单位:块/秒。
- bo: 从块设备接收到的块数,单位:块/秒。
5.system系统
- in: 每秒的中断数,包括时钟中断。
- cs: 每秒的环境(上下文)转换次数。
6.cpu中央处理器
- us : 用户态代码执行占用的cpu时间。
- sy :系统态代码执行占用的cpu时间。
- id : cpu空闲时间,也就是执行系统idle的时间,cpu是不可能停机的。
- wa : 耗费在等待IO上的时间
- st : 其他的等待时间。
三、异常诊断
1.常见场景分析
情景1:swpd 大小不断变化,si/so持续变化。 此时说明内存频繁与硬盘进行交换操作,此时系统系能会急剧下降
情景2:id较高但是free 非常低,如果加上-a参数free+inactiv非常低。 此时内存可能被耗尽。
情景3:wa较高 系统等待IO时间过长,考虑IO的阻塞
情景4:假如 bi,bo 长期不等于0,表示物理内存容量太小。
情景5:假如 r 经常大于4 ,且 id 经常小于40,表示中央处理器的负荷很重。
2.其它参数值分析
r:当这个值超过了CPU数目,就会出现CPU瓶颈 了。 这个也和top的负载有关系, 一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。 top的负载类似每秒的运行队 列。 如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
buff:Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M
cache:cache直接用来记忆我们打开的文件,给文件做缓冲, 我本机大概占用300多M (这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存, 是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END