Hard-Drive

計算單個 HDD 的 IOPS - 我做錯了什麼?

  • November 6, 2013

所以我知道沒有標準化的方法來計算 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。

引用自:https://serverfault.com/questions/551145