如何使用vmstat监控Linux性能

Linux发行版提供了许多工具来监视系统性能。 vmstat 是系统性能监视最常用的工具之一。 vmstat 能够详细收集和报告内存、cpu、交换、io等信息。在本教程中,我们将检查 vmstat 以及它的不同特点和选择。

null

列出系统资源使用情况

我们先用 vmstat 不带任何选项的命令。这将列出有关系统资源使用情况的常规统计信息和信息。

$ vmstat
List System Resource Usage
列出系统资源使用情况

我们可以看到有5个主栏。

  • procs 显示有关进程的信息。
  • memory 显示有关内存度量的信息
    • swpd 提供可用的交换大小
    • free 提供未使用的内存大小
    • buff 提供缓冲内存大小
    • cache 提供缓存内存大小
  • swap 提供与交换相关的信息,但在现在它没有被广泛使用。
  • io 提供与磁盘相关的信息
    • bi 块输入显示从块设备读取的数据块计数
    • bo 块输出显示发送到块设备的块计数
  • system 提供与CPU相关的中断和上下文切换信息
    • in 每秒中断数
    • cs 每秒上下文切换数
  • cpu 提供CPU使用信息
    • us 用户空间操作或用户时间所花费的时间
    • id 空闲时间
    • sy 系统操作所花费的时间
    • wa 等待IO的时间。
    • st 从虚拟机花费的时间

以交互方式按指定间隔打印输出

默认情况下 vmstat 命令是非交互的。它只会在调用后打印一次信息,然后退出。如果我们需要连续打印命令并以给定的间隔打印命令输出,我们需要在命令后以秒为单位提供间隔。在本例中,我们将以5秒的间隔打印。

$ vmstat 5
Print Output At Specified Interval Interactively
以交互方式按指定间隔打印输出

打印时间戳

由于输出打印一次或多次,我们可能需要知道相关时间。我们可以通过打印时间戳来打印给定的信息时间。我们需要提供 -t 此选项。时间列将作为cpu列之后的最后一列添加。

$ vmstat -t
Print Timestamp
打印时间戳

列出内存活动和非活动

活动内存是当前正在运行的进程中活动使用的内存的一部分或大小。非活动内存是死掉或不存在进程的内存的一部分或大小。我们将使用 -a 活动和非活动内存选项。我们看得出来 memory 列提供 inact active 柱。

$ vmstat -a
List Memory Active and Inactive
列出内存活动和非活动

详细查看磁盘I/O静态

由于写入磁盘和磁盘拓扑是一个复杂的区域,相关信息可以打印出来 -d 选项。此选项将提供以下信息。

$ vmstat -d
View Disk I/O Statics In Detail
详细查看磁盘I/O静态
  • Reads 显示阅读相关信息
    • total 显示已成功完成的总读取
    • merged 显示分组读取
    • sectors 显示扇区读取
    • ms 显示读取所用的毫秒数
  • Writes 显示写入相关信息
    • total 显示已成功完成的总读取
    • merged 显示分组读取
    • sectors 显示扇区读取
    • ms 显示读取所用的毫秒数
  • IO 显示当前活动IO操作信息
    • cur 正在进行I/O
    • s 用于I/O的秒数

相关文章: Linux操作系统和发行版

查看磁盘I/O静态摘要

我们还可以使用 -D 选项。

$ vmstat -D
View Disk I/O Statics Summary
查看磁盘I/O静态摘要

使用兆字节作为度量

在使用所有选项期间,内存的默认度量为字节。这会降低可读性。我们可以使用 -S M 将兆字节设置为公制的选项。

$ vmstat -S M
Usage Megabyte As Metric
使用兆字节作为度量

列出事件计数器和内存静态

我们可以用 -s 选项以打印事件计数器和内存统计信息。

$ vmstat -s
List Event Counters and Memory Statics
列出事件计数器和内存静态
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享