Hard-Drive
計算單個 HDD 的 IOPS - 我做錯了什麼?
所以我知道沒有標準化的方法來計算 HDD 的 IOPS,但從我讀過的所有內容來看,最準確的公式之一如下:
IOP/ms = + {旋轉延遲} + ({block size} / {數據傳輸率})
這是每毫秒的 IO 數,或者我一直在閱讀的書稱為“磁碟服務時間”。旋轉延遲也被計算為以毫秒為單位旋轉的一半。
這取自 EMC 的書“資訊儲存和管理”——可以說是一個非常可靠的來源,對嗎?
將此公式付諸實踐,請參考 Seagate 數據表。
我將為 ST3000DM001 模型計算 4kb 塊大小的 IOPS:
- 尋求平均(寫入)= 9.5 - 我將測量寫入的 IOPS
- 主軸轉速 = 7200rpm
- 平均數據速率 = 156MB/s
所以我的變數是:
- 尋軌時間 = 9.5ms
- 旋轉延遲= (.5 / (7200rpm / 60)) = 0.004s = 4ms
- 數據速率= 156MB/s = (0.156MB/ms / 0.004MB) = 39
9.5ms + 4ms + 39 = IO/ms 52.5
1 / (52.5 * 0.001) = 19 IOPS
這個驅動器的 19 IOPS 顯然是不對的,那我做錯了什麼?
您的基本公式是合理的,但是:
數據速率 = 156MB/s = (0.156MB/ms / 0.004MB) = 39
不可能是對的。您需要確定讀取塊所需的時間,即
4 KB / 156 MB/s = 2.5 * 10^-5s ( ~ 0.025 ms)
由於該值可以忽略不計,因此您可以將其忽略為您的經驗法則近似值,並且計算看起來像
1 / 0.0135
,導致大約 74 IOPS。
為什麼要包括數據速率?
1 / ( 0.004 + 0.0095 ) ~ 74 IOPS。