MAN vmstat
vmstat - Virtual Memory Statistics 虚拟内存统计
vmstat报告了系统的进程,内存,页面,阻塞IO,中断和CPU的活动情况。
第一行的数据是自系统启动以来的平均值,之后提供的数据则是基于特定采样时间内的平均值,进程和内存统计值是即时的
选项
-a 显示active/inactive内存,在2.5.41之后的内核中支持此选项
-f 显示自系统启动以来fork的数量,包括fork,vfork,clone,也即系统启动以来创建过的任务数,每个进程由一个或多个任务组成,具体依赖于如何使用线程,这个值会一直保持增长。
-t 在输出后补充显示一列时间戳
-m 显示slabinfo
-n 使头信息只显示一次,而不是间断显示头信息
-s 显示各种事件(event)和内存统计值,这个值会一直保持增长
-d 磁盘统计
-w 为大内存加大内存显示宽度
-p 后面加分区名,显示分区的详细统计信息
-S 后面加k=1000 K=1024 m=1000000 M=1048576,内存单位
-V 版本信息
虚拟内存状态字段描述(vmstat ;vmstat -a)
Proc
r: 等待运行的进程数
b: 处于不可中断的进程数
Memory
swpd: 使用的虚拟内存量
free: 空闲内存量
buff: 作为buffer使用的内存量
cache: 作为cache使用的内存量
inact: 非活动的内存量
active: 活动的内存量
Swap
si: 从磁盘交换到内存的内存量
so: 从内存交换到磁盘的内存量
IO
bi: 从块设备收到的块数量,即读的block数
bo: 发给块设备的块数量,即写的block数
System
in: 每秒的中断数,包括时钟频率
cs: 每秒的上下文切换数
CPU
总CPU时间的百分比,注意CPU的数量
us: CPU运行非内核代码的时间
sy: CPU运行内核代码的时间
id: CPU空闲时间,2.5.41之前的内核,此值还包含了IO等待的时间
wa: CPU等待IO花费的时间
st: 虚拟机中CPU被用作其他非此VM操作的时间
磁盘状态字段描述(vmstat -d)
Reads
total: 成功的read操作数
merged: 合并后的read操作数(合在同一次IO中读取)
sectors: 成功读取的sector数
ms: read操作花费的时间,单位毫秒(milliseconds)
Writes
total: 成功的write操作数
merged: 合并后的write操作数
sectors: 成功写入的sector数
ms: write操作话费的时间,单位毫秒(milliseconds)
IO
cur: 正在进行的IO数
s: IO花费的时间,单位秒(second)
磁盘分区状态字段描述(vmstat -p /dev/sda1)
reads: 这个分区总的read操作数
read sectors:分区上read的sector数
writes: 这个分区上的write操作数
requested wrties:分区上总的write请求数
SLAB状态字段描述(vmstat -m)
cache: cache名
num: 当前活动的对象数, number of currently active objects
total: 可用对象总数,total number of available objects
size: 每个对象的大小,size of each objects
pages: 至少有一个活动对象的页面数,number of pages with at least on active object
totalpages:分配的页面总数,total number of allocated pages
pslab: 每个slab的页面数,number of pages per slab
注:
vmstat运行不需要特殊的权限,报告中的数据只是为了定位瓶颈,linux中vmstat并不将自身算作正在运行的进程。目前所有的linux block都是1024byte=1K,
浙公网安备 33010602011771号