天天看點

《資訊存儲與管理(第二版):數字資訊的存儲、管理和保護》—— 2.7 磁盤驅動器的性能

本節書摘來異步社群《資訊存儲與管理(第二版):數字資訊的存儲、管理和保護》一書中的第2章,第2.7節,作者:【新加坡】g.somasundaram ,【美】alok shrivastava,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

資訊存儲與管理(第二版):數字資訊的存儲、管理和保護

磁盤驅動器屬機電裝置,它決定了存儲系統環境的整體性能。本節将讨論影響它性能的各種因素。

磁盤服務時間(disk service time)是指磁盤完成一個i/o請求所花費的時間。影響它的因素有三個:尋道時間、旋轉延遲和資料傳輸速率。

尋道時間

尋道時間(seek time,也叫通路時間,access time)指的是讀寫頭在盤面上移動(沿着盤面半徑方向)進行定位的時間,也就是移動驅動臂将讀寫頭移動到正确的磁道上所需要的時間。尋道時間越短,i/o操作越快。磁盤生産商釋出了以下尋道時間的規格。

全程時間(full stroke):讀寫頭從最裡面的磁道移動到最外面的磁道,跨越整個磁盤寬度的時間。

平均時間(average):讀寫頭随機地從一個磁道移動到另一個磁道的平均時間,通常指的是全程時間的三分之一。

相鄰磁道時間(track-to-track):讀寫頭在兩個相鄰磁道間移動的時間。

上述規格都是以毫秒來度量的。磁盤生産商通常會标明磁盤的尋道時間。現在磁盤的平均尋道時間一般在3~15ms。對于讀操作來說,在随機的磁道上讀資料與在相鄰磁道上讀資料相比,尋道時間對前者的影響更為關鍵。為了減少尋道時間,可以把資料隻寫到某些柱面上去。這将導緻比實際容量更低的有效磁盤容量。例如,如果隻用到一個500gb磁盤靠外的前40%柱面,那麼它的有效容量隻有200gb。這就是所謂的磁盤短擊(short-stroking)。

旋轉延遲

為了存取資料,驅動裝置和驅動臂需要将盤面上方的讀寫頭移到特定的磁道,同時盤片旋轉,将請求的資料(扇區)移到讀寫頭下面。盤片旋轉以定位讀寫頭下方的資料(扇區)所用的時間,稱為旋轉延遲(rotational latency)。延遲時間取決于主軸的轉速并以ms來度量。平均旋轉延遲是主軸旋轉一圈所需時間的二分之一。與尋道時間類似,讀寫随機選擇的扇區與讀寫相鄰扇區相比,旋轉延遲對前者的影響更大。

一個轉速為5 400rpm的磁盤的平均旋轉延遲大約為5.5ms,而轉速為15 000rpm(或每秒250轉)的磁盤,其平均旋轉延遲約為2.0ms。

資料傳輸速率

資料傳輸速率(data transfer rate,也叫傳輸速率,transfer rate)指的是每個機關時間内磁盤能夠傳輸到hba的平均資料量。要計算資料傳輸速率,首先要明白讀寫操作的過程。對于讀操作,資料首先從盤面移動到讀寫頭,再到磁盤内部的緩沖區,最後才通過接口傳輸到主機hba。對于寫操作,資料通過磁盤接口從hba傳輸到磁盤内部緩沖區,再到讀寫頭,最終從讀寫頭寫到盤面上。

讀寫操作的資料傳輸速率是以内部和外部傳輸速率來衡量的,如圖2-11所示。

《資訊存儲與管理(第二版):數字資訊的存儲、管理和保護》—— 2.7 磁盤驅動器的性能

内部傳輸速率(internal transfer rate)指的是資料從一個盤面上的單個磁道傳輸到内部緩沖區的速率。内部傳輸速率需要将尋道時間和旋轉延遲考慮在内。外部傳輸速率(external transfer rate)指的是資料從接口移動到hba的速率。通常外部傳輸速率是接口所宣稱的速率,比如ata的速率是133mb/s。持續的外部傳輸速率(實際工作時)一般要低于所宣稱的接口速率。

磁盤的i/o控制器的使用率對于i/o響應時間的影響很大。要了解如何影響,我們可以将磁盤看作一個黑盒子,包括2個部分。

隊列(queue):用于存放等待i/o控制器處理的i/o請求。

磁盤i/o控制器(disk i/o controller):依次處理隊列中的i/o請求。

i/o請求以應用程式生成請求的速率到達控制器。這個速率也稱作到達速率(arrival rate)。這些請求暫存在i/o隊列中,将由i/o控制器依次進行處理,如圖2-12所示。i/o到達速率、隊列長度,還有i/o控制器處理每個請求的時間決定着i/o響應時間。如果控制器一直忙碌或處于高使用率狀态,隊列規模會較大,反應時間也會較長。

《資訊存儲與管理(第二版):數字資訊的存儲、管理和保護》—— 2.7 磁盤驅動器的性能

根據磁盤驅動器性能的基本規則,控制器使用率和平均響應時間的關系如下:

平均響應時間(tr)=服務時間(ts)/(1使用率)

其中ts是控制器處理一次i/o所用的時間。

當使用率為達到100%時——也就是i/o控制器飽和時,響應時間接近于無限大。實際上,飽和的部件,或者說瓶頸,迫使i/o請求序列化,這意味着每個i/o請求都必須等待它前面的請求被處理完畢。使用率和響應時間的關系如圖2-13所示。

《資訊存儲與管理(第二版):數字資訊的存儲、管理和保護》—— 2.7 磁盤驅動器的性能

該圖顯示,響應時間随着使用率增加呈非線性的變化。當平均隊列長度很短時,響應時間一直很快。當隊列負載增加時,響應時間也逐漸地增大。當使用率超過70%時,響應時間呈指數增長。是以,對于性能敏感型應用,正常做法是保證磁盤使用率在70%以下。