首页 > 技术文章 > vmstat命令

uestc2007 2021-03-30 15:19 原文

1、概要

  • Virtual Meomory Statistics,报告虚拟内存统计信息
  • 会统计进程信息、内存、交换区、IO、磁盘、CPU 等数据

2、vmstat主要能看什么性能指标

  • 均是 Linux 系统级别
  • 运行状态、不可中断睡眠状态的进程数量
  • 内存、交换区、I/O、CPU 信息
  • 上下文切换次数、中断次数
  • 磁盘 I/O 的详细信息和概要信息

 3、语法格式

vmstat [options] [delay [count]]

options:命令行参数,可选 delay:间隔多久统计一次数据,可选 count:统计一次,可选 注意:若只传了 delay,则统计次数是无限次,结束统计后会打印本次所有数据的平均值

命令行参数

-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量 。
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-D:获取磁盘的一些摘要信息
-p:显示指定磁盘分区统计信息 -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、10241000000、1048576字节(byte)。默认单位为K(1024 bytes)
-t:加一列显示当前时间
-V:显示vmstat版本信息。
-h:帮助文档

4、使用 vmstat 查看系统纬度的 CPU 负载:

  • 使用vmstat查看系统维度的CPU负载
  • 使用top查看进程维度的CPU负载

 

回显说明:

  • r: 表示系统中 CPU 等待处理的线程。由于 CPU 每次只能处理一个线程,所以,该数值越大,通常表示系统运行越慢,当这个值超过了CPU数目,就会出现CPU瓶颈了
  • us:用户模式消耗的 CPU 时间百分比。该值较高时,说明用户进程消耗的 CPU 时间比较多,比如,如果该值长期超过 50%,则需要对程序算法或代码等进行优化。
  • sy:内核模式消耗的 CPU 时间百分比。
  • wa:IO 等待消耗的 CPU 时间百分比。该值较高时,说明 IO 等待比较严重,这可能磁盘大量作随机访问造成的,也可能是磁盘性能出现了瓶颈。
  • id:处于空闲状态的 CPU 时间百分比。如果该值持续为 0,同时 sy 是 us 的两倍,则通常说明系统则面临着 CPU 资源的短缺。

 

5、统计数据的字段说明

 

类别

项目

含义

说明

Procs

r

等待执行的线程数量

展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了

 

b

 处于不可中断睡眠状态的进程数量

 

Memory

swpd

正在使用的swap大小单位K

 

 

free

空闲的内存空间

 

 

buff

已使用的buff大小,对块设备的读写进行缓冲

 

 

cache

已使用的cache大小,文件系统的cache

 

 

inact

 非活跃内存大小(当使用-a选项时显示)

 

 

active

 活跃的内存大小(当使用-a选项时显示)

 

Swap

si

交换内存使用,由磁盘调入内存

 

 

so

交换内存使用,由内存调入磁盘

 

IO

bi

从块设备读入的数据总量(读磁盘) (KB/s),

 

 

bo

写入到块设备的数据总理(写磁盘) (KB/s)

 如果这个值长期不为0,说明内存可能有问题,因为没有使用到缓存(当然,不排除直接I/O的情况,但是一般很少有直接I/O的)

System

in

每秒产生的中断次数

 包括时钟中断,需要关注,这两个值越大,内核消耗CPU会越大

 

cs

每秒产生的上下文切换次数

上面这2个值越大,会看到由内核消耗的CPU时间会越多

CPU

us

用户进程消耗的CPU时间百分比

us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了

 

sy

内核进程消耗的CPU时间百分比

sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。

 

id

空闲

 处于空闲状态的 CPU 时间百分比。如果该值持续为 0,同时 sy 是 us 的两倍,则通常说明系统则面临着 CPU 资源的短缺。

 

wa

IO等待消耗的CPU时间百分比

wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。

6、数据来源说明

主要来自如下文件:
/proc/meminfo
/proc/stat
/proc/*/stat

1)这些信息主要来自 /proc/stat

2)这些信息的分别来自于 /proc/meminfo 、 /proc/stat 和 /proc/vmstat

 3)这些信息主要来自于 /proc/diskstats 

这些信息的分别来自于 /proc/meminfo 、 /proc/stat 和 /proc/vmstat

推荐阅读