磁盘可以承受的每秒平均输入/输出操作数是调整 MySQL / InnoDB 数据库的一个非常重要的因素,因为它推动了将脏 InnoDB 缓冲池页面刷新回磁盘的速度。
有没有一种方法或公式可以用来估计我的 RAID 10 磁盘阵列可以运行的每秒平均 I/O 操作?
磁盘可以承受的每秒平均输入/输出操作数是调整 MySQL / InnoDB 数据库的一个非常重要的因素,因为它推动了将脏 InnoDB 缓冲池页面刷新回磁盘的速度。
有没有一种方法或公式可以用来估计我的 RAID 10 磁盘阵列可以运行的每秒平均 I/O 操作?
tl; dr 是的,您可以进行粗略且现成的计算,但如果您需要准确性,建议进行基准测试。除了原始磁盘性能之外,还有许多因素会影响 IOP,尤其是 RAID 控制器。
如果您有磁盘的技术规格,确定 IOP 的快速计算是:1 /(平均延迟 + 平均寻道时间)= 随机 IOP。
促成因素:
虽然驱动模型之间存在差异,但您可以将粗略且现成的数字应用于每个常见的旋转速度。
对于大多数企业级 RAID 控制器,您对常见 RAID 级别 (1/10/5/6) 的读取性能将大致符合 IOP * 磁盘数。更便宜的控制器可能会处以罚款。然而,写入性能受所选级别的显着影响:
例如,由 10 个 15k 磁盘组成的 RAID 10 阵列等同于:
当然,大多数工作负载都是读取和写入的混合,因此有必要考虑 r/w 比率来确定所需的容量。
使用此计算器: 磁盘 IOPs 计算器
当然 YMMV 由于控制器、缓存、IO 大小等原因。16KiB 的数据和 128KiB 的日志是一个很好的估计。