當前位置:
首頁 > 最新 > 硬碟IO性能估算入門

硬碟IO性能估算入門

一、硬碟IO的類型

IO是輸入輸出指令,操作系統向存儲控制器下發一個讀或者寫數據的操作指令,控制器下發地址和數據給存儲設備,並返回結果給存儲控制器,最後到達操作系統。操作系統的一個IO可能會產生多個實際的存儲設備IO。一般可以分為:

1、連續Sequential IO、隨機Random IO如果本次IO給出的初始地址和上次IO的結束地址是連續或者接近的,磁頭可以很快訪問到數據,這樣的多個IO就是連續IO。如果前後兩次IO操作的地址相差比較大,磁頭需要較長距離的移動,就是隨機IO。在做連續 IO的時候,磁頭幾乎不換道連接工作,可以快速讀取和寫入大量數據。

2、順序Queue IO、並發Burst IO如果存儲設備每次只執行一個IO指令,就是順序IO;當存儲設備能同時執行多個IO命令時,控制器發送IO指令後不等回應就繼續下發IO指令,稱為並發IO。普通磁碟一次只能響應一個IO指令,但RAID等存儲設備的IO操作是並發的。對順序IO的設備,調整IO隊列深度,性能不能產生變化。

衡量硬碟性能,最直觀的就是IOPS和吞吐量。

1、IOPS,每秒處理的IO次數指存儲設備(HDD、SSD、SAN)單位時間內能處理的IO請求數量,對隨機讀寫頻繁的應用,如OLTP資料庫、圖片、信息,是最關鍵的衡量指標。IOPS數值受讀寫比例、隨機IO、IO大小、隊列深度等因數影響。資料庫通常訪問一系列不連續的數據,根據文件物理位置,需要很多次IO才能完成。所以需要隨機IO高的設備。

2、Throughput,吞吐量指單位時間內可以成功傳輸的數據數量,傳輸包括讀和寫的總和。對於大文件或者流媒體的應用,擁有大量順序讀寫,則更關注數據吞吐量。數據吞吐量還受到存儲設備介面速度限制,比如IDE、SATA、SAS、FC,SSD使用PCIE Nvme介面最佳,但同時期推出的介面都大於存儲設備吞吐量上限。


通過iostat等工具觀察存儲設備狀況,我們一般關注下面指標。

1、r/s、w/s,每秒讀寫IO次數。IOPS = r/s + w/s。讀和寫的能力,在不同設備中實際是有差異的,但是我們經常簡化差異,混合稱為IOPS。

2、avgrq-sz,每次IO請求的平均大小如果平均小於32K認為隨機存取為主,大於32K則是順序存儲為主。

3、avgqu-sz,等待執行的IO隊列長度 IO請求數超出存儲設備處理能力,待執行隊列就會加長,該值應該小於2.

4、await,等待執行的IO耗時 等待耗時取決svctm以及IO隊列長度,該值應該接近svctm。

5、 svctm,IO服務時間處理IO請求的耗時,比如機械硬碟耗時,由尋道時間、旋轉延遲和傳輸時間組成。

6、uitl,存儲設備IO利用率存儲設備的資源利用情況,隊列爭用程度成越高值越大。


1、機械硬碟的性能計算對機械硬碟來說,IOPS = 1000 / (尋道時間 + 旋轉延時 + 傳輸時間)。 a、尋道時間,磁頭移動到對應磁軌上的耗時。 Sata 7200RPM,平均尋道時間是9ms。 Sas 10000RPM,平均尋道時間是6ms。 Sas 15000RPM,平均尋道時間是4ms。 b、旋轉延時,碟片旋轉至需要的扇區移至磁頭下方耗時。 平均為磁碟旋轉一周所需時間的一半,60 * 1000/7200/2。 Sata 7200RPM,旋轉延時 60 * 1000 / 7200 / 2 = 4.17ms。 Sas 10000RPM,旋轉延時3ms。 Sas 15000RPM,旋轉延時約2ms。 c、傳輸時間,傳輸讀寫數據耗時。 平均數據大小除以介面傳輸率,耗時很小粗略計算可以忽略。 Sata,300~600MB/s。 Sas,3Gbit/s。 FC,2~4Gbit/s。 NVME,32Gbit/s。 根據上述信息,我們常用的Sas 15000RPM,MySQL應用16k塊,機械硬碟IOPS = 1000 / (4 + 2 + 16K / 375K) = 165。

2. SSD硬碟IO計算固態硬碟沒有尋道時間和旋轉時間。IO耗時是通過地址查找數據耗時,根據晶元顆粒SLC、MLC,中控晶元、隊列深度32~64、介面Sata、PCIE的不同,一般負載非太高時是相對固定值(控制在60%利用率)。 IOPS = 1000 / IO耗時。因為SSD比較固定,比如Intel 320 SSD對8K avgrq-sz耗時0.1ms,1000/0.1ms=10000 IOPS。具體參考後續文章。

3、iops估算raid盤數a、如果單盤不能滿足性能需求,需要通過Raid實現,計算所需硬碟數公式如下。 Raid1、10,Drive IOPS = Read IOPS + 2*Write IOPS Raid3、5,Drive IOPS = Read IOPS + 4*Write IOPS Raid6,Drive IOPS = Read IOPS + 6*Write IOPS b、設需要IOPS 5000,讀寫比例2:1,則RAID10後IOPS需求為。 RAID10,(2/3) * 5000 + 2 * (1/3) * 5000 = 6666 IOPS c、已知Sas 15000RPM機械硬碟IOPS165。 5000IOPS所需硬碟個數, 6666 / 165 = 40。

4、常見存儲設備參考性能,avgrq-sz 8~16K5400 rpm SATA,60 IOPS 7200 rpm SATA,70 IOPS 10000 rpm SAS,110 IOPS 15000 rpm SAS,150 IOPS,Sequential RW 180MB/s、Radom RW 15MB/s。 10000 rpm FC,125 IOPS 15000 rpm FC,150 IOPS SSD Sata,3000~40000 IOPS,R 400MB/s、W 250MB/s。 SSD PCIE,20000~40000 IOPS,R 500MB/s、W 300MB/s。 內存,1000000+ IOPS,30~60 GB/s。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 dbmax 的精彩文章:

TAG:dbmax |