最近又接到一個關於磁碟的問題,所以,把磁碟性能的分析過程整理了一遍。上一篇主要體現分析思路。這一篇介紹一下要用到的工具。
性能指標
IOPS:Input/Output Per Second, 即每秒系統能能處理的I/O請求數量。
TPUT: 吞吐量。
不同的應用場境,對上述兩個指標的關注度是不同的。
隨機讀寫頻繁的應用,如小文件存儲(圖片)、資料庫,關注隨機讀寫性能,IOPS是關鍵衡量指標。
順序讀寫頻繁的應用,如電視臺的視頻編輯,備份系統,關注連續讀寫性能。數據吞吐量是關鍵衡量指標。
由於傳統的機械硬碟是旋轉圓盤,因此,讀寫需要操作磁頭到達目標磁軌和定位扇區。這意味著機械硬碟還有兩個物理指標:尋道時間 和 旋轉延遲 。
常見磁碟平均物理尋道時間為:
- 7200 轉/分的STAT硬碟平均物理尋道時間是9ms,平均旋轉延遲大約 4.17ms
- 10000轉/分的STAT硬碟平均物理尋道時間是6ms ,平均旋轉延遲大約 3ms
- 15000轉/分的SAS硬碟平均物理尋道時間是4ms,平均旋轉延遲大約 2ms
最大IOPS的理論計算方法 : IOPS = 1000 ms/ (尋道時間 + 旋轉延遲)。忽略數據傳輸時間。
- 7200 rpm的磁碟IOPS = 1000 / (9 + 4.17) = 76 IOPS
- 10000 rpm的磁碟IOPS = 1000 / (6+ 3) = 111 IOPS
- 15000 rpm的磁碟IOPS = 1000 / (4 + 2) = 166 IOPS
RAID0/RAID5/RAID6的多塊磁碟可以並行工作,所以,在這樣的硬體條件下, IOPS 相應倍增。假如, 兩塊15000 rpm 磁碟的話,166 * 2 = 332 IOPS。
上述通過基本原理計算出的 IOPS 是物理設備的下限。 實際運行環境中,隨著讀寫請求的發生位置,隊列深度,調度演算法的不同,測試出的 IOPS 會更高。
維基上列出了常見硬碟的IOPS (https://en.wikipedia.org/wiki/IOPS),我摘錄一些: