VMSTAT(8) System Manager's Manual VMSTAT(8)

# 名称

vmstat - 报告虚拟内存统计信息

# 概述

**vmstat** \[*选项* ...] \[*延迟* \[*计数*]]

# 描述

**vmstat** 报告有关进程、内存、分页、块 IO、陷阱、磁盘和 CPU 活动的信息。

生成的第一份报告给出了自上次重新启动以来的平均值。后续的报告提供在长度为 *延迟* 的采样周期内的信息。无论哪种情况，进程和内存报告都是即时的。

# 选项

*延迟*

更新之间的 *延迟*（以秒为单位）。如果未指定 *延迟*，则仅打印一份报告，其中包含自启动以来的平均值。

*计数*

更新次数。在没有 *计数*，且定义了 *延迟* 时，默认为无限次。

[**-a**, **--active**](#a)

显示活动和不活动内存（内核版本 2.5.41 或更高）。

[**-f**, **--forks**](#f)

**-f** 开关显示自启动以来的 fork 次数。这包括 fork、vfork 和 clone 系统调用，相当于创建的任务总数。每个进程包括一个或多个任务，具体取决于线程的使用情况。该输出不会重复显示。

[**-m**, **--slabs**](#m)

显示 slab 信息。

[**-n**, **--one-header**](#n)

表头仅显示一次，而不是周期性地显示。

[**-s**, **--stats**](#s)

显示包含各种事件计数器和内存统计信息的表格。该输出不会重复显示。

[**-d**, **--disk**](#d)

报告磁盘统计信息（需要 2.5.70 或更高）。

[**-D**, **--disk-sum**](#D)

报告关于磁盘活动的一些统计信息的总结。

[**-p**, **--partition** *设备*](#p)

关于分区的详细统计信息（需要 2.5.70 或更高）。

[**-S**, **--unit** *字符*](#S)

选择输出的单位：1000 (*k*)、1024 (*K*)、1000000 (*m*) 或 1048576 (*M*) 字节。请注意，此选项不会更改块（块入/块出）字段。

[**-t**, **--timestamp**](#t)

在每行末尾添加时间戳

[**-w**, **--wide**](#w)

宽输出模式（对于具有较大的内存的系统很有用，这种情况下默认输出模式的各列可能不对齐，让人感觉不太舒服）。输出的行的长度超过 80 个字符。

[**-y**, **--no-first**](#y)

省略第一份报告，即自系统启动以来的统计信息。

[**-V**, **--version**](#V)

显示版本信息并退出。

[**-h**, **--help**](#h)

显示帮助并退出。

# [VM 模式的字段描述](#VM_)

## 进程

```
运 (r)：可运行进程的数量（正在运行或等待运行）。
阻 (b)：被阻塞以等待 I/O 完成的进程数量。
```

## 内存

**--unit** 选项对这部分内容有效。

```
交换 (swpd)：已用的交换内存大小。
空闲 (free)：空闲内存大小。
缓冲区 (buff)：用作缓冲区的内存大小。
缓存 (cache)：用作缓存的内存大小。
不活动 (inact)：不活动内存的大小。（-a 选项）
活动 (active)：活动内存的大小。（-a 选项）
```

## 交换

**--unit** 选项对这部分内容有效。

```
换入 (si)：从磁盘换入到内存的内存大小（每秒）。
换出 (so)：从内存换出到磁盘的内存大小（每秒）。
```

## [IO](#IO)

```
块入 (bi)：从块设备接收到的 KiB 数 (KiB/s)。
块出 (bo)：发送到块设备的 KiB 数 (KiB/s)。
```

## 系统

```
中断 (in)：每秒的中断次数，包括时钟中断。
上下 (cs)：每秒的上下文切换次数。
```

## [CPU](#CPU)

这些是占总 CPU 时间的百分比。

```
用 (us)：运行非内核代码的时间。（用户时间，包括 nice 时间）
系 (sy)：运行内核代码的时间。（系统时间）
闲 (id)：空闲时消耗的时间。在 Linux 2.5.41 之前，此项包括 IO 等待时间。
等 (wa)：等待 IO 时消耗的时间。在 Linux 2.5.41 之前，包含于闲 (id) 中。
丢 (st)：虚拟机被偷取的时间。在 Linux 2.6.11 之前，未知。
客 (gu)：运行 KVM 客户代码的时间（客户时间，包括客户 nice 时间）。
```

# 磁盘模式的字段描述

## 读取

```
总计 (total)：成功完成的总读取次数
合并的 (merged)：已合并的读取次数（只产生一次 I/O）
扇区 (sectors)：成功读取的扇区数
毫秒 (ms)：读取耗费的总毫秒数
```

## 写入

```
总计 (total)：成功完成的总写入次数
合并的 (merged)：已合并的写入次数（只产生一次 I/O）
扇区 (sectors)：成功写入的扇区数
毫秒 (ms)：写入耗费的总毫秒数
```

## [IO](#IO~2)

```
当前 (cur)：正在进行的 I/O
秒 (s)：I/O 耗费的秒数
```

# 磁盘分区模式的字段描述

```
读取 (reads)：向该分区发出的总读取次数
读取扇区数 (read sectors)：该分区的已读取的扇区总数
写入 (writes)：向该分区发出的总写入次数
写入请求数 (requested writes)：对该分区的写请求总数
```

# [SLAB 模式的字段描述](#SLAB_)

slab 模式显示每个 slab 的统计信息，关于此信息的更多信息请参阅 [**slabinfo**(5)](/man/os/procps/slabinfo.5)

```
缓存 (cache)：缓存名称
数量 (num)：当前活动的对象数量
总计 (total)：可用对象的总数
大小 (size)：每个对象的大小
页面 (pages)：含有至少一个活动对象的页面数量
```

# 备注

**vmstat** 需要对 */proc* 下的文件的读取权限。**-m** 需要对 */proc/slabinfo* 的读取权限，而标准用户可能没有该权限。*/proc* 的挂载选项（例如 *subset=pid*）也可能会影响可读取的内容。

# 参见

[**free**(1)](/man/os/procps/free.1), [**iostat**(1)](/man/os/procps/iostat.1), [**mpstat**(1)](/man/os/procps/mpstat.1), [**ps**(1)](/man/os/procps/ps.1), [**sar**(1)](/man/os/procps/sar.1), [**top**(1)](/man/os/procps/top.1), [**slabinfo**(5)](/man/os/procps/slabinfo.5)

# 报告错误

请将错误报告发送到 [procps@freelists.org](mailto:procps@freelists.org)。

2024-07-19 procps-ng

---

Document: vmstat(8) from procps 4.0.7-r3 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-4.0.7.tar.xz
