目录
磁盘 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 操作。这些字段让您知道这种情况发生的频率。