📜  Linux 中的 iostat 命令及示例

📅  最后修改于: 2022-05-13 01:57:33.382000             🧑  作者: Mango

Linux 中的 iostat 命令及示例

Linux 中的iostat命令用于监视设备和分区的系统输入/输出统计信息。它通过观察设备相对于其平均传输速率的活动时间来监控系统输入/输出。 iostat 生成报告可用于更改系统配置以提高物理磁盘之间的输入/输出平衡。 iostat 包含在sysstat包中。如果没有,则需要先安装。

在不同发行版上安装的命令:

  • 在 RedHat / CentOS / Fedora 上
    yum install sysstat
  • 在 Debian / Ubuntu / Linux Mint
    apt-get install sysstat

注意:下面列出了 10 个用于报告 CPU 和 I/O 统计信息的 Linux iostat 命令:

  • iostat:获取报告和统计信息。
  • iostat -x:显示更多详细统计信息。
  • iostat -c:仅显示 CPU 统计信息。
  • iostat -d:仅显示设备报告。
  • iostat -xd:仅显示设备的扩展 I/O 统计信息。
  • iostat -k:以千字节或兆字节为单位捕获统计信息。
  • iostat -k 2 3:延迟显示cpu和设备统计信息。
  • iostat -j ID mmcbkl0 sda6 -x -m 2 2:显示持久设备名称统计信息。
  • iostat -p:显示块设备的统计信息。
  • iostat -N:显示lvm2统计信息。

1) iostat 命令: linux 中的iostat 命令用于获取报表和统计信息。

句法:



iostat

示例:这是一个示例。

第一部分包含 CPU 报告:

  • %user :它显示在用户级别执行时 CPU 的利用率百分比。
  • %nice :它显示在具有良好优先级的用户级别执行时发生的 CPU 利用率百分比。
  • %system :它显示在系统(内核)级别执行时发生的 CPU 利用率百分比。
  • %iowait :它显示系统有未完成的磁盘 I/O 请求期间一个或多个 CPU 空闲时间的百分比。
  • %steal :它显示当管理程序由另一个虚拟处理器提供服务时,一个或多个虚拟 CPU 用于非自愿等待的时间百分比。
  • %idle :它显示 CPU 或 CPU 空闲且系统没有未完成的磁盘 I/O 请求的时间百分比。

输出的第二部分包含设备利用率报告:

  • 设备:设备/分区名称列在/dev目录中。
  • tps :每秒发送给设备的传输次数。更高的 tps 意味着处理器更忙。
  • Blk_read/s :它显示从设备读取的数据量,以每秒块数(千字节、兆字节)表示。
  • Blk_wrtn/s :写入设备的数据量,以每秒块数(千字节、兆字节)表示。
  • Blk_read :它显示读取的块总数。
  • Blk_wrtn :它显示写入的块总数。

iostat 使用下面提到的文件来创建报告:

  • /proc/stat包含系统统计信息。
  • /proc/uptime包含系统正常运行时间。
  • /proc/diskstats包含磁盘统计信息。
  • /sys包含块设备的统计信息。
  • /proc/self/mountstats包含网络文件系统的统计信息。
  • /dev/disk包含永久设备名称。

2) iostat -x 命令:该命令显示更多详细的统计信息。 iostat 命令为 I/O 设备报告利用率作为结果。 -x选项深入扩展诊断的统计结果。

句法:

iostat -x

例子:



  • avg-cpu:它告诉我们cpu块信息。
  • Devide:它告诉我们设备块信息。确保您使用的是良好的设备。
  • %util :它告诉我们存储设备有多少时间有未完成的工作(忙碌)。
  • svctm :它表示您的 I/O 子系统在繁忙时整体响应请求的速度。实际上,您加载系统的次数越少,svctm 就越高。
  • await :它表示请求通过的速度。这只是一个平均值。
  • avgqu-sz :它告诉我们请求队列中有多少请求。低 = 您的系统将不会被加载,或者已序列化 I/O 并且无法正确利用底层存储。高 = 您的软件堆栈具有足够的可扩展性,可以正确加载底层 I/O。
  • avgrq-sz :它只是一个平均请求大小,可以表明发生了什么样的工作负载。
  • wsec/s & rsec/s :它告诉我们每秒读取和写入的扇区数。除以 2048,您将获得每秒兆字节数。
  • r/s & w/s :它告诉我们每秒的读写请求。这些数字是 I/O 容量数字,当然,取决于底层 I/O 子系统获得的压力(队列大小!),它们可能会有所不同。
  • rrqm/s & wrqm/s :它告诉我们有多少请求被块层合并。

3) iostat -c 命令:此命令仅显示 CPU 统计信息。 -c选项显示我们的 CPU 的统计信息和报告。

句法:

iostat -c

例子:

4) iostat -d 命令:该命令只显示设备报告。 -d选项的帮助下仅显示设备利用率的状态。它将列出每个连接设备的信息。

句法:

iostat -d

例子:

5) iostat -xd 命令:此命令仅向我们显示设备的扩展 I/O 统计信息。我们可以在一侧显示扩展统计数据,从另一侧我们可以显示扩展统计数据。 -xd选项的帮助下仅显示设备的扩展统计信息,如下所示:



句法:

iostat -xd

例子:

6) iostat -k 命令:此命令以千字节或兆字节为单位捕获统计信息。默认情况下,iostat 以字节为单位测量 I/O 系统。为了更容易阅读,我们可以将 iostat 转换为以千字节或兆字节为单位向我们显示报告。

句法:

iostat -k

例子:

7) iostat -m 命令:用于创建以兆字节为单位的报告。

句法:

iostat -m

例子:

8) iostat -k 2 3 命令:此命令显示 CPU 和设备统计数据,并有延迟。与 vmstat 相同,作为统计工具是将其与延迟参数一起使用的最佳方式。随着延迟,我们可以看到趋势是什么。以下是一些延迟运行 iostat 的示例。

句法:

iostat -k 2 3

例子:

9) iostat -c 2 2 命令:显示 CPU only 报告,间隔 2 秒,报告 2 次。

句法:

iostat -c 2 2

例子:

10) iostat -d sda7 sda6 2 2 命令:显示sda6和sda7设备只报告2秒间隔和2次报告。

句法:



iostat -d sda7 sda6 2 2

例子:

11) iostat -j ID mmcbkl0 sda6 -x -m 2 2 命令:该命令显示持久化设备名称统计信息。可以按设备名称打印报告。 -j参数并添加ID关键字(指定持久名称的类型)打印持久设备名称,而不是标准的/dev/sda

句法:

iostat -j ID mmcbkl0 sda6 -x -m 2 2

例子:

12) iostat -p 命令:该命令显示块设备的统计信息。借助该命令,可以直接自动显示每个块设备的信息。无需指明每个设备名称。它将显示系统正在使用的块设备及其所有分区的统计信息。如果在命令行上输入设备名称,则会显示该设备及其所有分区的统计信息。只需使用此-p选项。

句法:

iostat -p

例子:

13) iostat -N 命令:显示lvm2统计信息。 -N选项查看 LVM 统计信息。此命令显示任何设备映射器设备的已注册设备映射器名称。

句法:

iostat -N

例子: