Linux iostat 命令实战示例

LinuxBeginner
立即练习

介绍

在本实验中,我们将探索 Linux 的 iostat 命令,这是一个强大的工具,用于监控系统的输入/输出(I/O)性能,包括 CPU 利用率和磁盘 I/O 统计信息。我们将从了解 iostat 命令的用途和用法开始,包括如何安装所需的 sysstat 包以及运行基本的 iostat 命令来查看 CPU 和 I/O 统计信息。然后,我们将深入分析 iostat 提供的 CPU 和 I/O 统计信息,并使用该命令监控磁盘 I/O 性能。

Linux 命令速查表

了解 iostat 命令的用途和用法

在这一步骤中,我们将学习 Linux 中 iostat 命令的用途和用法。iostat 命令是一个强大的工具,用于监控系统的输入/输出(I/O)性能,包括 CPU 利用率和磁盘 I/O 统计信息。

首先,让我们安装包含 iostat 命令的 sysstat 包:

sudo apt-get update
sudo apt-get install -y sysstat

现在,运行 iostat 命令以查看基本的 CPU 和 I/O 统计信息:

iostat

示例输出:

Linux 5.15.0-52-generic (labex-ubuntu)   07/11/2023      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00     0.25     0.00     0.00    99.25

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              0.17         1.67         1.67       1024       1024

输出显示了平均 CPU 利用率以及各种磁盘 I/O 指标,例如每秒事务数(tps)、读取和写入吞吐量(kB_read/s 和 kB_wrtn/s)以及总读取和写入数据量(kB_read 和 kB_wrtn)。

你还可以使用 iostat 命令监控特定设备或显示更详细的统计信息。例如,每隔 2 秒监控 sda 设备,共 10 次:

iostat -d sda 2 10

这将提供 sda 设备随时间变化的 I/O 性能的详细视图。

使用 iostat 分析 CPU 和 I/O 统计信息

在这一步骤中,我们将学习如何分析 iostat 命令提供的 CPU 和 I/O 统计信息。

首先,运行 iostat 命令以查看系统的整体统计信息:

iostat

示例输出:

Linux 5.15.0-52-generic (labex-ubuntu)   07/11/2023      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00     0.25     0.00     0.00    99.25

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              0.17         1.67         1.67       1024       1024

输出显示了平均 CPU 利用率以及各种磁盘 I/O 指标。让我们分解这些信息:

  • avg-cpu:此部分显示了平均 CPU 利用率,包括用户模式(%user)、nice 模式(%nice)、系统模式(%system)、I/O 等待(%iowait)和空闲时间(%idle)所占的百分比。
  • Device:此部分显示了每个块设备的 I/O 统计信息,例如每秒事务数(tps)、读取和写入吞吐量(kB_read/skB_wrtn/s)以及总读取和写入数据量(kB_readkB_wrtn)。

现在,让我们更详细地查看 CPU 利用率。要查看每个 CPU 核心的统计信息,可以使用 -c 选项:

iostat -c

示例输出:

Linux 5.15.0-52-generic (labex-ubuntu)   07/11/2023      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00     0.25     0.00     0.00    99.25
           0.50    0.00     0.25     0.00     0.00    99.25

这显示了每个 CPU 核心的利用率。

要监控特定设备的 I/O 统计信息,可以使用 -d 选项后跟设备名称:

iostat -d sda

示例输出:

Linux 5.15.0-52-generic (labex-ubuntu)   07/11/2023      _x86_64_        (2 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              0.17         1.67         1.67       1024       1024

这提供了 sda 设备的更详细 I/O 统计信息。

使用 iostat 监控磁盘 I/O 性能

在这一步骤中,我们将学习如何使用 iostat 命令监控系统的磁盘 I/O 性能。

首先,运行 iostat 命令并加上 -x 选项以获取更详细的磁盘 I/O 统计信息:

iostat -x

示例输出:

Linux 5.15.0-52-generic (labex-ubuntu)   07/11/2023      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00     0.25     0.00     0.00    99.25

Device            r/s     w/s     rkB/s     wkB/s   await  r_await w_await  svctm  %util
sda              0.17    0.17       1.67      1.67    5.00     5.00     5.00   2.00   0.03

-x 选项提供的额外指标包括:

  • r/s:每秒读取次数
  • w/s:每秒写入次数
  • rkB/s:读取吞吐量(单位:kB/s)
  • wkB/s:写入吞吐量(单位:kB/s)
  • await:I/O 请求的平均等待时间(单位:毫秒)
  • r_await:读取请求的平均等待时间(单位:毫秒)
  • w_await:写入请求的平均等待时间(单位:毫秒)
  • svctm:平均服务时间(单位:毫秒)
  • %util:发出 I/O 请求时占用的 CPU 时间百分比(I/O 的 CPU 利用率)

这些指标可以帮助你识别磁盘 I/O 的性能瓶颈或问题。

要监控磁盘 I/O 性能随时间的变化,可以使用 iostat 命令并加上 -x 选项,同时指定延迟和次数:

iostat -x 2 5

这将每 2 秒显示一次磁盘 I/O 统计信息,共 5 次,使你能够观察性能随时间的变化。

总结

在本实验中,我们学习了 Linux 中 iostat 命令的用途和用法。iostat 命令是一个强大的工具,用于监控系统的输入/输出(I/O)性能,包括 CPU 利用率和磁盘 I/O 统计信息。我们安装了 sysstat 包并运行了 iostat 命令,以查看基本的 CPU 和 I/O 统计信息,以及特定设备的更详细统计信息。我们还学习了如何分析 iostat 命令提供的 CPU 和 I/O 统计信息,包括每秒事务数、读取和写入吞吐量以及总读取和写入数据量。

Linux 命令速查表