SheepDev

基础设施估算

IOPS 高却传输慢?先统一 I/O 大小

使用工具

SSD 的 IOPS 越大看似越快,但大量小读与顺序大文件读取不同。IOPS 是每秒操作次数,乘每次字节数才得吞吐量。工具用于统一比较条件,不预测设备实测性能。

按 4 KiB 计算 10,000 IOPS

小 I/O 计算例
10,000 × 4 × 1024 = 40,960,000 byte/s
40,960,000 ÷ 1024² = 39.0625 MiB/s

选 IOPS 转吞吐量,填 10000、平均 4 KiB,得到 40960000 byte/s 或 39.0625 MiB/s。次数不是 MB/s,连接两者的是每次 4 KiB。输入次数不加千分位,并确认大小栏单位。

同一速度为十进制 40.96 MB/s,与 39.0625 的差来自单位而非性能改变。比较前先统一 MB/s 与 MiB/s,只写约 40 会隐藏依据。

次数相同,64 KiB 对应十六倍数据量

只改变 I/O 大小
10,000 IOPS × 64 KiB = 625 MiB/s
64 ÷ 4 = 16
625 ÷ 39.0625 = 16

保持 10000 IOPS,大小改 64 KiB,得 625 MiB/s,是十六倍。但这不证明同一 SSD 在两种大小都维持该次数。计算假定输入速率成立,能否达到需测量。

不要直接用 A 的小 I/O 最大次数对比 B 的大 I/O 最大吞吐。读写、顺序或随机、并发请求条件也要一致。计算器没有输入的条件,不会由结果代为评估。

由目标吞吐量反算所需 IOPS

达到 100 MiB/s 所需次数
100 MiB/s ÷ 4 KiB = 25,600 IOPS
100 MiB/s ÷ 64 KiB = 1,600 IOPS

逆算填 100 MiB/s、4 KiB,得 25600 IOPS;64 KiB 则 1600。同样数据速率因粒度不同所需次数不同,可作为考虑批量读取时的初步依据。

大块读取也可能带入无用数据,次数降而总字节升。增大平均尺寸本身不是目标,应观察有效数据、延迟和缓存。逆算不保证批量化一定更快。

平均大小应取同一期间的数据量与次数

平均大小为同期间总字节除总操作数。只读字节配读写总次数会低估,混用不同时段最大值也不合适。分子分母须同对象、时段和统计层。

应用一次读取未必等于存储计数的一次 I/O,中间可能拆分或合并。估算云 IOPS 配额应查服务计数规则。通用工具不会自动应用厂商拆分或计费约定。

用结果整理可能的瓶颈

系统可能同时限制操作次数与字节速率。计算 625 MiB/s 无法突破更低吞吐上限;小 I/O 则可能先达次数限制。统一单位列出两者,可整理下一步检查方向。

应写“假设平均 4 KiB 且持续 10000 IOPS,得 39.0625 MiB/s”,并区分实测、标称最大和假设输入。简短前提可防止单位转换被误当硬件保证。

参考资料

使用工具

指南 →