vmstat监控资源命令

2025-04发布6次浏览

vmstat监控资源命令

1. 简介

vmstat 是一个常用的系统性能监控工具,它可以报告关于内存、交换、I/O、系统活动等方面的信息。通过 vmstat,我们可以实时查看系统的运行状态,包括 CPU 使用率、内存使用情况、磁盘 I/O 等等。

vmstat 的全称是 virtual memory statistics(虚拟内存统计),它最初设计用于分析虚拟内存的使用情况,但随着时间推移,它已经扩展为一个多用途的系统监控工具。

2. 基本语法

vmstat [options] [delay [count]]
  • options: 可选参数,用于指定显示的内容。
  • delay: 指定刷新间隔时间(秒)。
  • count: 指定刷新次数。

如果不指定 delaycountvmstat 将只打印一次当前的状态。

3. 常见选项

  • -a: 显示活跃和非活跃的内存页。
  • -d: 显示磁盘统计信息。
  • -n: 在多次输出时,仅在第一次输出时显示标题行。
  • -s: 显示各种系统的统计摘要。
  • -m: 显示 slabinfo 统计信息。
  • -p: 显示分区统计信息。
  • -t: 显示时间戳。

4. 输出字段解释

执行 vmstat 后,会得到以下主要字段:

字段描述
procs进程相关的信息:r (运行队列中的进程数)、b (处于不可中断睡眠状态的进程数)
memory内存相关信息:swpd (使用的交换空间大小)、free (空闲内存大小)、buff (用作缓冲的内存大小)
swap交换相关信息:si (从磁盘换入内存的数据量)、so (从内存换出到磁盘的数据量)
io输入输出相关信息:bi (块设备接收的数据量)、bo (块设备发送的数据量)
system系统相关信息:in (每秒中断数)、cs (每秒上下文切换数)
cpuCPU 使用情况:us (用户态CPU时间)、sy (内核态CPU时间)、id (空闲CPU时间)

5. 实践步骤

步骤 1: 安装 vmstat

大多数 Linux 发行版默认已安装 vmstat,如果没有可以使用包管理器安装:

# Ubuntu/Debian
sudo apt-get install procps

# CentOS/RHEL
sudo yum install procps
步骤 2: 查看当前系统状态
vmstat

这将显示系统当前的状态。

步骤 3: 实时监控系统状态

每 2 秒刷新一次,共刷新 5 次:

vmstat 2 5
步骤 4: 查看详细内存信息
vmstat -a
步骤 5: 查看磁盘统计信息
vmstat -d
步骤 6: 查看系统统计摘要
vmstat -s

6. 示例输出

假设我们执行了 vmstat 2 3,输出可能如下:

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 123456  7890  45678    0    0     0     0  123  456  7  8 85  0  0
 0  0      0 123456  7890  45678    0    0     0     0  123  456  7  8 85  0  0
 0  0      0 123456  7890  45678    0    0     0     0  123  456  7  8 85  0  0

7. 扩展知识

  • top: 类似于 vmstat,但提供更详细的进程信息。
  • sar: 系统活动报告工具,可以记录历史数据。
  • iostat: 专注于 I/O 性能的监控工具。