/proc/diskstats 磁盘读取时间每秒增加超过一秒

/proc/diskstats 磁盘读取时间每秒增加超过一秒

我通过 prometheus-node-exporter 监控磁盘利用率,它读取/proc/diskstats

我的期望是,如果块设备 100% 繁忙,那么该字段7 - 阅读所花费的时间(毫秒)每秒将增加 1000(以毫秒为单位)。

但目前当磁盘繁忙时,增加量在每秒 1200 - 1800 毫秒。

这可能是什么原因造成的?谢谢。

13 - 执行 I/O 所花费的时间(毫秒)正如预期的那样,每秒增加不到 1000 毫秒。

the HDD is Seagate ST8000AS0022-1WL17Z Host-Aware SMR

Debian Bullseye, kernel version 5.4.0-4-amd64
32GB RAM i5 3570,

device structure:
sde -> loop1 -> dm-crypt -> Virtual machine Virtio -> ZFS
the loop device is used because otherwise dm-crypt doesn't work

scheduler mq-deadline

答案1

磁盘统计信息按 CPU 进行跟踪,并/proc/diskstats显示所有 CPU 的统计信息总和(除了基于滴答的统计信息,例如“执行 I/O 所花费的时间”)。读取和写入所花费的时间是所有 CPU 上所有读取和写入的持续时间之和,因此在具有多个 CPU 的系统上,统计数据的增长速度可能比实时更快。

相关内容