为了评估 I/O 设备的性能,需要计算它们相对于时间的效率。在 Linux 中,我们使用 iostat 命令来了解 CPU 和其他连接的输入/输出设备相对于时间的使用情况。根据这些报告,可以更改 I/O 设备的配置以优化 CPU 上的负载。
iostat 命令有助于监控 CPU 和与其连接的其他 I/O 设备,在本文中,我们将了解有关 iostat 命令的更多信息。
Linux 发行版中并未预装 iostat 命令,而是附带了默认包,因此可以使用特定发行版的包管理器在 Linux 中安装它。要在 RedHat/CentOS/Fedora 上安装 iostat 命令,请使用以下命令:
在基于 Ubuntu/Debian/Linuxmint 的 Linux 发行版上,可以使用以下命令安装:
iostat命令比较简单,可以在Linux的终端中执行来显示监控报告:
在上面的输出中,我们可以看到报告分为两部分; CPU 利用率报告和设备利用率报告。
CPU利用率报告:CPU利用率报告通过不同的参数来显示CPU的性能,对这些参数的解释是:
- %nice
-
与“nicepriority”命令一起使用时,以百分比形式显示用户级别的 CPU 使用率
- %system
-
它显示系统级别(也称为内核级别)CPU 使用率的百分比
- %iowait
-
这是CPU处于惰性状态并且系统(内核)获取I/O设备请求的时间(以%为单位的时间)
- %steal
-
它显示虚拟 CPU 由于虚拟机管理程序由任何其他处理器提供服务而非自愿等待的时间(以百分比表示)
- %idle
-
这是 CPU 处于惰性状态并且系统(内核)收到无 I/O 设备请求的时间(以 % 为单位的时间)
设备利用率报告:设备利用率报告根据以下参数显示 I/O 设备的性能:
- tps
-
它显示每秒传输数 (tps),其中传输是 I/O 设备向 CPU 发出的请求,tps 越高意味着 CPU 越忙
- kB_read/s
-
它显示 CPU 每秒读取的数据量,根据大小可以采用不同的单位:千字节 (kB) 或兆字节 (MB)
- kB_wrtn/s
-
它显示CPU每秒写入的数据量,类似于kB_read/s,根据大小可以采用不同的单位,即千字节(kB)或兆字节(MB)
- kB_dscd/s
-
它显示CPU每秒丢弃的数据的速率,类似于kB_read/s,根据大小可以采用不同的单位,即千字节(kB)或兆字节(MB)
- kB_read
-
显示CPU读取的块总数或数据量
- kB_wrtn
-
显示CPU写入的块总数或数据量
iostat 从以下目录收集 CPU 和 I/O 设备的所有数据:
/proc/stat:包含系统统计的详细信息
/proc/uptime:系统正常运行时间从这里提取
/proc/diskstats:从这里提取磁盘统计信息
/sys:包含块设备(硬盘等具有固定大小的设备)的统计信息
/proc/self/mountstats:它包含网络文件系统的数据
/dev/disk:附加到系统的持久设备名称从这里提取
在Linux中使用iostat命令的一般语法是:
如果只执行“iostat”命令,则会显示两者的汇总报告; CPU和I/O设备,但它也可以与不同的选项一起使用,这将显示特定设备的详细摘要。例如,如果我们想显示 CPU 利用率报告,我们将在 iostat 命令中使用“-c”标志:

同样,我们可以使用“-d”标志仅显示 I/O 设备报告:
从输出中可以看出,已经显示了设备的详细信息。
我们可以使用“-x”标志来显示详细报告:
在上面的输出中,显示了一些新的参数,重要参数的解释如下表所示:
- rrqm/s
-
每秒合并到系统排队的读请求总数
- wrqm/s
-
每秒合并并排队到系统的写请求总数
- r_await
-
设备的读请求从在队列中等待到系统接受时间请求所花费的平均时间
- w_await
-
是设备的写请求从在队列中等待到系统接受时间请求所花费的平均时间
- w/s
-
每秒完成的写请求总数
- Օ/strong>
-
提交 I/O 设备请求的 CPU 持续时间
选项“-k”和“-m”用于以千字节和兆字节显示结果,为了理解它,我们将使用“-m”标志将我们的结果(以 kB 为单位)转换为兆字节:

要获取块设备的监控报告,请使用“-p”标志:
在上面的命令中,我们总共使用了三个标志“-p”、“-d”和“-m”来获取块设备的详细信息(以兆字节为单位)。
我们还可以使用“-h”以人类可读的格式显示此报告:
或者使用“-o JSON”选项以 JSON 格式:
Linux 中使用 iostat 命令来监控 CPU 和 I/O 设备的性能,这有助于将负载分配到不同的存储设备上,从而获得 CPU 的最大效率。在本文中,我们解释了 iostat 命令的安装以及 iostat 命令生成的报告的参数。 iostat 命令还可以与不同的标志一起使用;重要且使用最广泛的标志也正在讨论中。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/14182.html