首頁>科技>

快取是每個程式設計師所熟知的,相信大家對快取都已經不陌生了,快取使用傳輸更快的介質來儲存更加頻繁讀寫的資料。在程式設計師面試中,我們常常會這樣回答,因為硬碟的讀寫速度太慢,事實真的是如此麼?

雖然現在已經又SSD硬碟,但是由於SSD硬碟價格昂貴,在伺服器領域,機械硬碟還是橫行霸道,所以,今天我們討論的,是機械硬碟。這十幾年來,硬碟的容量已經翻了好幾番,我記得我讀書那會,能夠配一個128G的硬碟已經非常奢侈了,而今天,家用的電腦基本都是TB級別起步的了。但是硬碟的讀寫速度並沒有多大的提升,這很大程度是與硬碟的結構息息相關的。在一個機械硬盤裡面,要完成資料讀寫,需要經歷這三步:尋道、旋轉、資料讀取。

尋道

我們的機械硬碟,就像一個大圓餅一樣,資料是一圈一圈地存在,讀取資料地時候,需要將探頭旋轉到對應的磁軌,這是一個機械運動的過程,儘管現在的探頭越來越精緻,速度越來越快,學過物理的同學都知道,從靜止的物體運動起來跟加速度這些都有關係,考慮到探頭的耐用性,無法太快,現在的大部分磁碟尋道時間都要花2ms到15ms。

旋轉

當我們把探頭調整到對應磁軌之後,還需要去對應的地方去獲取資料。我們的每一個磁軌的資料都是一個大圓圈,所以需要旋轉硬碟到合適的位置。旋轉的耗時取決於旋轉的轉速,這就是市面上我們經常看到的磁碟轉速引數,5400轉或者7200轉甚至更高,一般5400轉的硬碟,也需要4ms左右才能旋轉到對應的扇區。

資料讀取

資料讀取其實非常的快,快到可以忽略不記。

隨機讀寫與順序讀寫

綜上所述,一個機械硬碟,如果要讀寫的資料不在對應的磁軌上,那麼最少也要花費5ms去跑到對應的地址,所以,我們常說的,機械硬碟速度慢,更多的是特指機械硬碟在隨機讀寫的速度慢。為了更好的利用磁碟,完成更大的吞吐,在很多大型的系統,都會使用追加寫來減少磁碟的尋道跟旋轉次數。例如由領英著名的訊息佇列卡夫卡,或者谷歌開源的儲存系統LevelDB,都是使用追加寫資料來達到更大的效能。

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 第三季度全球App營收219億美元 同比增長22.9%