機械硬碟的連續讀寫性很好, 但隨機讀寫效能很差。這是因為磁頭移動至正確的磁軌上需要時間,隨機讀寫時,磁頭不停的移動,時間都花在了磁頭尋道上,所以效能不高。 如下圖:
在儲存小檔案()、oltp資料庫應用時,隨機讀寫效能(iops)是最重要指標。
學習它,有助於我們分析儲存系統的效能互瓶頸。
下面我們來認識隨機讀寫效能指標–iops(每秒的輸入輸出次數)。
iops (input/output per second)即每秒的輸入輸出量(或讀寫次數),是衡量磁碟效能的主要指標之一。iops是指單位時間內系統能處理的i/o請求數量,一般以每秒處理的i/o請求數量為單位,i/o請求通常為讀或寫資料操作請求。
隨機讀寫頻繁的應用,如小檔案儲存()、oltp資料庫、郵件伺服器,關注隨機讀寫效能,iops是關鍵衡量指標。
iops和資料吞吐量適用於不同的場合:
讀取10000個1kb檔案,用時10秒 throught(吞吐量)=1mb/s ,iops=1000 追求iops
讀取1個10mb檔案,用時0.2秒 throught(吞吐量)=50mb/s, iops=5 追求吞吐量
傳統磁碟本質上一種機械裝置,如fc, sas, sata磁碟,轉速通常為5400/7200/10k/15k rpm不等。影響磁碟的關鍵因素是磁碟服務時間,即磁碟完成乙個i/o請求所花費的時間,它由尋道時間、旋轉延遲和資料傳輸時間三部分構成。
尋道時間 tseek是指將讀寫磁頭移動至正確的磁軌上所需要的時間。尋道時間越短,i/o操作越快,目前磁碟的平均尋道時間一般在3-15ms。
旋轉延遲 trotation是指碟片旋轉將請求資料所在扇區移至讀寫磁頭下方所需要的時間。旋轉延遲取決於磁碟轉速,通常使用磁碟旋轉一周所需時間的1/2表示。比如,7200 rpm的磁碟平均旋轉延遲大約為60*1000/7200/2 = 4.17ms,而轉速為15000 rpm的磁碟其平均旋轉延遲為2ms。
資料傳輸時間 ttransfer是指完成傳輸所請求的資料所需要的時間,它取決於資料傳輸率,其值等於資料大小除以資料傳輸率。目前ide/ata能達到133mb/s,sata ii可達到300mb/s的介面資料傳輸率,資料傳輸時間通常遠小於前兩部分消耗時間。簡單計算時可忽略。
常見磁碟平均物理尋道時間為:
7200轉/分的stat硬碟平均物理尋道時間是9ms
10000轉/分的stat硬碟平均物理尋道時間是6ms
15000轉/分的sas硬碟平均物理尋道時間是4ms
常見硬碟的旋轉延遲時間為:
7200 rpm的磁碟平均旋轉延遲大約為60*1000/7200/2 = 4.17ms
10000 rpm的磁碟平均旋轉延遲大約為60*1000/10000/2 = 3ms,
15000 rpm的磁碟其平均旋轉延遲約為60*1000/15000/2 = 2ms。
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
實際測量中,iops數值會受到很多因素的影響,包括i/o負載特徵(讀寫比例,順序和隨機,工作執行緒數,佇列深度,資料記錄大小)、系統配置、作業系統、磁碟驅動等等。因此對比測量磁碟iops時,必須在同樣的測試基準下進行,即便如此也會產生一定的隨機不確定性。
佇列深度說明
是一種命令排序技術,一把餵給裝置更多的io請求,讓電梯演算法和裝置有機會來安排合併以及內部並行處理,提高總體效率。
scsi tcq的佇列深度支援256級
ata tcq的佇列深度支援32級 (需要8m以上的快取)
ncq最高可以支援命令深度級數為32級,ncq可以最多對32個命令指令進行排序。
大多數的軟體都是屬於同步i/o軟體,也就是說程式的一次i/o要等到上次i/o操作的完成後才進行,這樣在硬碟中同時可能僅只有乙個命令,也是無法發揮這個技術的優勢,這時佇列深度為1。
隨著intel的超執行緒技術的普及和應用環境的多工化,以及非同步i/o軟體的大量湧現。這項技術可以被應用到了,實際佇列深度的增加代表著效能的提高。
在測試時,佇列深度為1是主要指標,大多數時候都參考1就可以。實際執行時佇列深度也一般不會超過4.
資料量為n位元組,佇列深度為k時,隨機讀取的iops
資料量為n位元組,佇列深度為k時,隨機寫入的iops
iops的測試benchmark工具主要有iometer, iozone, fio等,可以綜合用於測試磁碟在不同情形下的iops。對於應用系統,需要首先確定資料的負載特徵,然後選擇合理的iops指標進行測量和對比分析,據此選擇合適的儲存介質和軟體系統。
儲存的吞吐量與IOPS
儲存系統的瓶頸,主要體現在2個方面 吞吐量與iops。名詞解釋 吞吐量英文 throughput,即單位時間內讀取或者寫入資料量的大小。iops 英文全拼 input output operations per second,即每秒進行讀寫 i o 操作的次數,多用於資料庫等場合,衡量隨機訪問的效能...
儲存IOPS與吞吐量的計算
儲存系統的瓶頸,主要體現在2個方面 吞吐量與iops。名詞解釋 吞吐量英文 throughput,即單位時間內讀取或者寫入資料量的大小。iops 英文全拼 input output operations per second,即每秒進行讀寫 i o 操作的次數,多用於資料庫等場合,衡量隨機訪問的效能...
儲存IOPS與吞吐量的計算
儲存系統的瓶頸,主要體現在2個方面 吞吐量與iops。名詞解釋 吞吐量英文 throughput,即單位時間內讀取或者寫入資料量的大小。iops 英文全拼 input output operations per second,即每秒進行讀寫 i o 操作的次數,多用於資料庫等場合,衡量隨機訪問的效能...