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」,並區分實測、標稱最大與假設輸入。簡短前提可防止單位轉換被誤當硬體保證。

參考資料

使用工具

指南 →