目录
磁盘 I/O 是硬盘驱动器和 RAM 之间数据传输的速度。您可以通过监控磁盘的读/写操作来实现这一点,这用于衡量存储设备的性能。
为什么使用 DiskIO Telegraf 插件?
DiskIO Telegraf 插件将收集磁盘的读/写操作,您可以将其与 CPU 使用率、可用磁盘空间以及大量其他指标结合使用,从而全面了解您的基础设施。
如何使用 DiskIO Telegraf 插件
默认情况下,DiskIO Telegraf 插件将收集所有设备(包括磁盘分区)的指标。设置设备会将统计信息限制为指定的设备,并且在支持的系统上,可以以标签的形式添加设备元数据。目前仅 Linux 通过 udev 属性支持,您可以通过运行以下命令查看设备的全部可用属性:udevadm info -q property -n /dev/sda
用于监控的关键 DiskIO 指标
您应主动监控的一些重要 DiskIO 指标包括
name
(设备名称)serial
(设备序列号)reads
(整数,计数器)writes
(整数,计数器)read_bytes
(整数,计数器,字节)write_bytes
(整数,计数器,字节)read_time
(整数,计数器,毫秒)write_time
(整数,计数器,毫秒)io_time
(整数,计数器,毫秒)weighted_io_time
(整数,计数器,毫秒)iops_in_progress
(整数,计量器)merged_reads
(整数,计数器)merged_writes
(整数,计数器)
关于收集的指标的说明
reads
和 writes
:这些值在 I/O 请求完成时递增。
read_bytes
和 write_bytes
:这些值计算从此块设备读取或写入的字节数。
read_time
和 write_time
:这些值计算 I/O 请求在此块设备上等待的毫秒数。如果有多个 I/O 请求正在等待,这些值的增长速度将超过 1000/秒;例如,如果 60 个读取请求平均等待 30 毫秒,则 read_time 字段将增加 60*30 = 1800。
io_time
:此值计算设备具有排队的 I/O 请求的毫秒数。
weighted_io_time
:此值计算 I/O 请求在此块设备上等待的毫秒数。如果有多个 I/O 请求正在等待,则此值将随着毫秒数乘以等待请求数的乘积而增加(例如,请参阅上面的 read_time)。
iops_in_progress
:此值计算已向设备驱动程序发出但尚未完成的 I/O 请求数。它不包括队列中但尚未发出到设备驱动程序的 I/O 请求。
merged_reads
和 merged_writes
:彼此相邻的读取和写入操作可以合并以提高效率。因此,在最终交给磁盘之前,两个 4K 读取操作可能会合并为一个 8K 读取操作,因此它将被计数(和排队)为一个 I/O 操作。这些字段让您知道这种情况发生的频率。