vmstat

显示内存、CPU与I/O等统计数据


语法格式

vmstat [-antw] [-S unit] [delay [count]]
vmstat [-sn] [-S unit]
vmstat [-mn] [delay [count]]
vmstat [-dn] [delay [count]]
vmstat [-p partition] [-n] [delay [count]]
vmstat [-f]
vmstat [-V]

命令简介

vmstat命令用于报告进程、内存、页面调度、数据块I/O、中断处理、CPU上下文切换以及CPU利用率等统计数据。其中,delay是数据采样的时间间隔(单位为秒)。如果未指定delay,仅显示从系统启动迄今的平均统计数据。count是连续显示统计数据的次数。如果未指定count,但指定了delay,意味着count的值为无穷大,能够连续不停地显示统计数据。

vmstat命令显示的第一个报告是从系统启动迄今的平均统计数据。随后的每个报告是从前一个报告开始在采样间隔期间收集的统计数据。

注意,vmstat命令显示的进程和内存数据只是瞬间的采样数据,连续地显示各种统计数据有助于观察系统的瓶颈。此外,Linux系统的vmstat命令并未把自己作为一个进程计算在内。通常,数据块均按1KB计算。利用“-S”选项,可以指定显示的数据单位,如k(1000字节)、K(1024字节)、m(10002字节)和M(10242字节),默认的单位是K。

vmstat命令提供的统计数据主要来自系统内核维护的/proc/meminfo、/proc/stat和/proc/*/stat等文件。

命令选项

-a  显示活动/不活动内存的统计数据。

-d  显示磁盘活动的统计数据。

-f  显示自系统启动迄今的fork()调用总和,其中包括fork()、vfork()和clone()等系统调用,相当于系统创建的任务总和。根据线程的用法,每个进程可能包括一个或多个任务。注意,使用这个选项时不能循环显示。

-m  显示系统的缓存分配信息。

-n  仅显示一次字段标题信息,而非周期性地重复显示。

-p partition  显示指定设备分区的详细统计数据。

-s  以列表的方式显示各种事件计数器和内存的统计数据。注意,使用这个选项时不能连续地重复显示。

-S unit  按照指定的字节单位k(1000)、K(1024)、m(10002)或M(10242)显示统计数据。

-t  在显示的统计数据中增加时间信息。

-V  显示命令的版本信息,然后退出。

-w  增加显示字段的宽度,以便能够显示较大的内存数据。

VM模式输出字段说明

Procs(进程状态信息)

r:  运行队列中等待运行的进程数量。

b:  因等待I/O资源或面页调度而处于不可中断睡眠状态的进程数量。

Memory(内存使用情况)

swpd:  正在使用的虚拟内存数量。

free:  空闲内存的数量

buff:  用作buffer的内存数量。

cache:  用作cache的内存数量。

inact:  不活动内存的数量(“-a”选项)。

active:  活动内存的数量(“-a”选项)。

Swap(内存磁盘交换)

si:  每秒从磁盘交换到内存的内存数量。

so:  每秒交换到磁盘的内存数量。

IO

bi:  每秒读取块设备的数据块数量。

bo:  每秒写入块设备的数据块数量。

System

in:  每秒产生的中断数量(包括时钟中断)。

cs:  每秒上下文切换的数量。

CPU(整个CPU时间分配的百分比)

us:  用户模式运行时间(用户时间)占用整个CPU时间的百分比。

sy:  内核模式运行时间(系统时间)占用整个CPU时间的百分比。

id:  系统空闲时间占用整个CPU时间的百分比。

wa:  等待I/O时间占用整个CPU时间的百分比。

st:  从虚拟机偷取的时间占用整个CPU时间的百分比。

磁盘模式输出字段说明

Reads

total:  成功读取磁盘次数的总和。

merged:  把多个逻辑读操作合并成一次读操作的数量。

sectors:  成功读取的扇区数量。

ms:  读磁盘花费的时间(毫秒)。

Writes

total:  成功写入磁盘次数的总和。

merged:  把多个逻辑写操作合并成一次写操作的数量。

sectors:  成功写入磁盘的扇区数量。

ms:  写磁盘花费的时间(毫秒)。

IO

cur:  当前正在执行的I/O数量。

s:  读写磁盘花费的时间(秒)。

磁盘分区模式输出字段说明

reads:  读取磁盘分区次数的总和。

read sectors:  读取磁盘分区的扇区总和。

writes:  写入磁盘分区次数的总和。

requested writes:  请求写磁盘分区次数的总和。

SLAB模式输出字段说明

cache:  缓存的名字。

num:  当前活动对象的数量。

total:  可用对象的总和。

size:  每个对象的大小。

pages:  具有至少一个活动对象的页面数量。

totpages:  已分配的页面总和。

pslab:  每个slab结构的页面数量。

应用实例

1. 直接运行vmstat命令,显示从系统启动迄今的平均统计数据。

2. 每2秒采样一次,连续5次显示系统负载情况的统计数据。

$ vmstat 2 5

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z