跨设备的 Linux 磁盘 IO 统计信息

跨设备的 Linux 磁盘 IO 统计信息

我读过很多关于在 Linux 上捕获磁盘 IO 的方法的帖子,但是没有一个能解答我困惑的根源。

就我而言,我使用 SNMP (diskIOTable) 监视 Linux 上的磁盘 IO,它从系统返回多个设备的数据。例如,在我的参考系统上,我有磁盘sda、引导分区sda1、根分区sda2、LVM 逻辑卷dm-0和交换区的 LVM 逻辑卷的记录dm-1

在计算系统的磁盘 IO 时,这些不同的元素如何相互作用?我最初假设磁盘的统计信息sda将包括分区报告的统计信息sda1,但是我发现报告的统计信息之间存在很大差异sda,甚至sda1sda1磁盘上唯一的分区。当我开始研究具有多个分区的系统时,这一点更加明显,例如,人们会假设sda1 + sda2 == sda,但情况似乎并不总是如此(尽管在某些系统上情况很接近)。磁盘报告的统计信息几乎总是超过分区报告的统计信息,或者磁盘所有分区报告的统计信息的总和。

设备如何dm-*影响?

假设忽略分区和逻辑设备(如dm-*md*loop*ram*)并仅对真实磁盘的 IO 统计数据进行求和,我可以准确地描述给定系统的聚合 IO(针对每个字节和操作),这样的假设是否合理?

reads(sda) + reads(sdb) + reads(sdc) == reads(host)

或者我错过了什么?

相关内容