Linux-vmstat命令详解

作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!
2012-华师-蓝天、白云、绿树

近期在排查生产环境故障时要用到vmstat, iostat, sar, top, tcpdump等命令,以前时不时用到它们,但都没有形成一个完整的文档 ,以致在用到时还需要查一些资料。这篇文章主要说明vmstat命令。
vmstat命令用于输出虚拟内存的统计信息。

环境 | Enviroment

  • RedHat-5.7 64bit

命令语法及参数说明 | Syntax And Paramenter Description

语法:

1
vmstat [-V] [-n] [delay [count]]

参数说明:

参数 描述
-V prints version. 显示vmstat版本信息。
-n causes the headers not to be reprinted regularly. 只在第一次显示数据时在顶部显示各字段名称,后面不再显示各字段名称。
-a print inactive/active page stats. 显示活跃和非活跃内存。
-d prints disk statistics. 显示磁盘统计信息。
-D prints disk table
-p prints disk partition statistics. 显示指定磁盘分区统计信息。
-s prints vm table. 显示内存相关统计信息及多种系统活动数量。
-m prints slabinfo.
-S unit size 使用指定单位显示。unit size k:1000 K:1024 m:1000000 M:1048576 (default is K). 参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
delay is the delay between updates in seconds. 刷新时间间隔。如果不指定,只显示一条结果。
count is the number of updates. 刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

显示字段说明 | Field Description

执行vmstat 1 2后,显示类似如下 :

1
2
3
4
procs -----------memory---------- ---swap-- -----io-- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 264 8382308 733500 35758256 0 0 3 12 0 0 1 0 99 0 0
0 0 264 8381264 733500 35759672 0 0 0 0 2823 22045 1 0 98 0 0

1、procs(进程)

r: The number of processes waiting for run time. 运行队列中进程数量。
b: The number of processes in uninterruptible sleep. 等待IO的进程数量。

2、memory(内存)

swpd: the amount of virtual memory used. 虚拟内存大小。
free: the amount of idle memory. 空闲内存大小。
buff: the amount of memory used as buffers. 用作缓冲的内存大小。
cache: the amount of memory used as cache. 用作缓存的内存大小。

3、swap(交换区)

si: Amount of memory swapped in from disk (/s). 每秒从磁盘交换到内存的大小。
so: Amount of memory swapped to disk (/s). 每秒从内存交换到磁盘的大小。

4、io(磁盘IO)

bi: Blocks received from a block device (blocks/s). 每秒读取的块数。
bo: Blocks sent to a block device (blocks/s). 每秒写入的块数。

5、system(系统)

in: The number of interrupts per second, including the clock. 每秒中断数,包括时钟中断。
cs: The number of context switches per second. 每秒上下文切换数。

6、cpu(值为百分比)

us: Time spent running non-kernel code. (user time, including nice time) 用户进程执行时间(user time)。
sy: Time spent running kernel code. (system time) 系统进程执行时间(system time)。
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time. 空闲时间(包括IO等待时间)。
wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle. 等待IO时间(包括空闲时间)。
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown. Linux2.6.11之前未知。