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
例子: