示例
- 输入vmstat命令后,第一个参数表示每1秒获取一次服务器资源,第二个参数表示总共获取10次,若第二个参数不设置,则表示持续获取服务器资源。
字段说明
数据项 | 含义 |
---|---|
r | 表示有多少任务需要CPU执行,通常与后5个指标结合使用;任务数超过CPU核数很多表示CPU使用率很高,超过3个比较高、超过5个很高、超过10个很危险 |
b | 表示因等待资源而阻塞的任务数,如果过高需要检查服务器I/O、内存、CPU等资源是否出现瓶颈 |
swpd | 表示虚拟内存swap已使用的大小,若swpd>0,且si和so为0,则说明物理内存还够用,无swap交换 |
free | 表示空闲的物理内存大小,不包括buff和cache |
buff | Linux系统缓冲区的内存大小;块设备(光盘、硬盘等)读写需要缓冲区;操作系统会根据物理内存调整缓冲区的内存大小,以提高读写速率 |
cache | 作为已打开文件的缓存,提高程序执行性能;当free不足时,缓存占用的内存会被释放 |
si | 每秒从磁盘(swap)读取到内存的数据大小,若si长时间>0,说明物理内存不够用 |
so | 每秒从内存写入磁盘(swap)的数据大小,与si正相反 |
bi | 块设备每秒读取的数据量(块设备指系统上所有的磁盘和其它块设备),数据块(block)默认大小为1024Byte,bi的值可以理解为每秒从磁盘读取多少个block |
bo | 块设备每秒写入的数据量,即每秒有多少个block被写入磁盘。随即读写磁盘时,bi和bo的值越大(如超出1024k),cpu在IO等待的值也会越大 |
in | 每秒cpu中断次数,包括时钟中断 |
cs | cpu每秒上下文切换次数(如调用系统函数触发上下文切换),值越小越好,上下文切换过多会占用cpu计算时间,使资源得不到充分利用,可通过调低服务配置中的进程数和线程数,减小cs的值 |
us | cpu用户使用率,值越高说明cpu被正常利用的越好 |
sy | cpu系统使用率,值过高说明系统消耗cpu资源多,通常in、cs过高、或者频繁的IO操作会引起sy升高。也可以查看下st是否过高,检查是否因为其他虚拟机运行的应用在做密集型计算,占用里物理机cpu资源,造成系统内核频繁的调度 |
id | cpu空闲率,us+sy+id=100 |
wa | IO等待时间百分比,值越高说明IO等待严重,可能是磁盘出现瓶颈(块操作频繁),也可能是磁盘大量随机访问 |
st | 等待虚拟机调度的时间占用cpu的比例(该指标只在虚拟机中有,物理机中该值为0)。虚拟机中cpu是物理机cpu的虚拟核,物理机存在多个虚拟机同时运行,则虚拟机之间也存在物理cpu争抢,如一台虚拟机进行cpu占用率高的密集型计算,则会导致其他虚拟机等待cpu被释放,st就是这个等待调度的时间占比 |