vmstat 监控系统的状态



上面讲的w查看的是系统整体上的负载,通过看那个数值可以知道当前系统有没有压力,但是具体是哪里(CPU, 内存,磁盘等)有压力就无法判断了通过vmstat就可以知道具体是哪里有压力。vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system, cpu.请重点关注一下红色标出的项
1procs 显示进程相关信息
r
:表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
b
:表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要你关注一下了;
2memory 内存相关信息
swpd :表示切换到交换分区中的内存数量

free :当前空闲的内存数量;
buff :缓冲大小,(即将写入磁盘的);
cache :缓存大小,(从磁盘中读取的);
3swap 内存交换情况
si :由内存进入交换区的数量;
so
:由交换区进入内存的数量;
4io 磁盘使用情况
bi :从块设备读取数据的量(读磁盘);
bo
从块设备写入数据的量(写磁盘);
5system 显示采集间隔内发生的中断次数
in :表示在某一时间间隔中观测到的每秒设备中断数;
cs :表示每秒产生的上下文切换次数;
6CPU 显示cpu的使用状态
us :显示了用户下所花费 cpu 时间的百分比;
sy :显示系统花费cpu时间百分比;
id :表示cpu处于空闲状态的时间百分比;
wa
:表示I/O等待所占用cpu时间百分比;
st :表示被偷走的cpu所占百分比(一般都为0,不用关注);
以上所介绍的各个参数中,笔者经常会关注r列,b列,和wa列,三列代表的含义在上边说得已经很清楚。IO部分的bi以及bo也是我要经常参考的对象如果磁盘io压力很大时,这两列的数值会比较高另外当si, so两列的数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大



笔者用vmstat时,经常用这样的形式,’vmstat 1 5’ 表示每隔1秒钟打印一次系统状态,连续打印5当然你也可以 ‘vmstat 1 ‘ 表示每隔1秒钟打印一次系统状态,一直打印,除非你按ctrl + c强制结束

添加新评论 »