跳到主要内容

vmstat 命令

介绍

vmstat(英文全拼:virtual memory statistics)命令用于统计 Linux 系统虚拟内存使用情况,可实时动态监视操作系统的虚拟内存、进程、CPU 活动。

语法

vmstat [options] [delay [count]]

选项

  • delay :两次输出之间的延迟时间,如果未指定,则只打印一次报告(包含自启动以来的平均值)
  • count :统计次数(定义 delay 参数时生效),如果未指定,默认为无限次。
  • -a, --active :显示处于 active 和 inactive 状态的内存量。
  • -f, --forks :显示自启动以来的 forks 数,包括 fork()vfork()clone() 系统调用,相当于创建的任务总数。每个进程由一个或多个任务表示,具体取决于线程使用情况。该选项不支持重复显示。
  • -m, --slabs :显示 slab 信息。
  • -n, --one-header :在周期性输出时,只显示一次头部信息。
  • -s, --stats :显示各种事件计数器和内存统计信息的表格。该选项不支持重复显示。
  • -d, --disk :报告磁盘统计信息。
  • -D, --disk-sum :报告有关磁盘活动的一些摘要统计信息。
  • -p, --partition device :显示磁盘分区详细统计。
  • -S, --unit character :在 1000 (k)、1024 (K)、1000000 (m) 或 1048576 (M) 字节之间切换。注意:这不会改变 block (bi/bo) 字段单位,这些字段始终以块为单位进行测量。
  • -t, --timestamp :在每一行后面附上时间戳。
  • -w, --wide :以宽模式输出(适用于具有更高内存量的系统),输出宽度超过每行 80 个字符。
  • -V, --version :显示版本信息并退出。
  • -h, --help :显示帮助信息并退出。

示例

显示系统虚拟内存统计信息(连续输出 5 次,每次间隔 5 秒)

$ vmstat 5 5
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 0 407004 111360 308324 0 0 5039 30 65 243 12 6 78 4 0
1 0 0 407508 111372 308328 0 0 0 42 980 762 26 1 73 0 0
2 0 0 407256 111392 308332 0 0 0 47 974 749 26 1 73 0 0
3 0 0 919572 111400 308340 0 0 0 28 818 680 13 2 85 0 0
0 0 0 919288 111676 308428 0 0 0 614 1200 1325 1 3 97 0 0

字段含义:

  • Procs(进程)
    • r :运行队列中进程数量
    • b :等待 IO 的进程数量
  • Memory(内存)
    • swpd :使用虚拟内存大小
    • free :可用内存大小
    • buff :用作缓冲区的内存大小
    • cache :用作缓存的内存大小
  • Swap
    • si :每秒从交换区写到内存的大小
    • so :每秒写入交换区的内存大小
  • IO(现在的 Linux 版本块的大小为 1024 bytes)
    • bi :每秒读取的块数
    • bo :每秒写入的块数
  • System
    • in :每秒中断数,包括时钟中断
    • cs :每秒上下文切换数
  • CPU(以百分比表示)
    • us :用户进程执行时间(user time)
    • sy :系统进程执行时间(system time)
    • id :空闲时间(包括 IO 等待时间)(idle time)
    • wa :等待 IO 时间(wait time)