vmstat用法

摘要:vmstat用法
Abstract: usage of vmstat

注记

vmstat - virtual memory statistics

概要

1
2
3
4
5
6
7
vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]

描述

vmstat命令打印关于进程,内存,分页,块IO,陷阱和CPU活动的信息。

选项说明

  • -a: 显示活跃/非活跃内存
  • -f: 不与其他选项同时使用,显示系统从启动到现在fork(包含fork、vfork、clone系统调用)次数,等同于创建的任务数。不重复显示。
  • -m: 显示板子(网卡等)信息
  • -n: 让表头在刷新显示过程中只显示一次
  • -s: 显示一系列事件总数和内存统计,不重复显示
  • delay: 更新时间,如果没有设置这个参数,则显示的是从系统启动到现在的均值
  • count: 刷新次数
  • -d: 磁盘统计信息
  • -w: 扩大打印列宽
  • -p: 指定磁盘分区,获得更详细的统计信息。
  • -S: 指定单位k/K/m/M 分别表示:1000/1024/1000000/1048576
  • -V: 显示版本信息

VM模式显示字段说明

Procs

  • r: 等待运行的进程数
  • b: 不可中断的休眠进程数

Memory

  • swpd: 虚拟内存使用量
  • free: 空闲内存
  • buff: 作为缓冲区的内存数
  • cache: 作为加速缓存的内存数
  • inactive: 不活跃的内存
  • active: 活跃内存

Swap

  • si: 从磁盘换入占用内存数
  • so: 换出到磁盘的内存数

IO

  • bi: 从块设备输入的块数
  • bo: 从块设备输出的块数

System

  • in: 每秒中断次数(包含时钟中断)
  • cs: 每秒上下文切换次数

CPU

下面的指标是CPU时间的百分比

  • us: 用户区代码CPU时间
  • sy: 内核代码CPU时间
  • id: 空闲CPU时间
  • wa: IO等待时间
  • st: 从虚拟机偷的CPU时间

磁盘模式显示选项说明

Reads

  • total: 成功读出的总量
  • merged: 单次I/O读操作的量(合并到一次)
  • sectors: 成功读取的扇区数
  • ms: 读操作的时间

Writes

  • total: 成功写入的总量
  • merged: 单次I/O写操作的量(合并到一次)
  • sectors: 成功写入的扇区数
  • ms: 写操作的时间

IO

  • cur: 当前正在进行的I/O
  • s: I/O消耗的时间(秒)

重要

vmstat不需要特殊的权限。当前所有linux的块大小都是1024 bytes。旧版内核可能是512 bytes 2048 bytes 或 4096bytes。

示例:

在CPU密集型机器上:

vmstat1

在GPU机器上:

vmstat2

参考

  • vmstat man page