在1991年,我剛接觸計算機的時候,不少計算機尚未硬盤。整個操做系統都安裝在5⼨或者3.5寸的軟盤裏。不過,很快⼤部分計算機都開始⽤上了直接安裝在主板上的機械硬盤。
到了今天,更早的軟盤早已經被淘汰了。在我的電腦和服務器裏,更晚出現的光盤也已經不多用了。
機械硬盤的生命力仍然很是頑強。不管是做爲我的電腦的數據盤,仍是在數據中內心面用做海量數據的存儲,機械硬盤仍然在被大量使用。不只如此,
隨着成本的不斷降低,機械硬盤還替代掉了不少傳統的存儲設備,好比,之前經常⽤來備份冷數據的磁帶。
那這一講裏,咱們就從機械硬盤的物理構造開始,從原理到應用剖析一下,看看咱們能夠怎麼樣用好機械硬盤。服務器
咱們剛纔說的一個磁道,會分紅一個一個扇區(Sector)性能
上下平行的一個一個盤面的相同扇區呢,咱們叫做一個柱面(Cylinder)優化
在2000-2010年這10年間,正是這些奇思妙想,讓海量數據下的互聯網蓬勃發展起來的。在沒有SSD的硬盤的時候,聰明的工程師們從硬件到軟件,
設計了各類有意思的方案解決了咱們遇到的各種性能問題。而對於計算機底層知識的深刻了解,也是可以找到這些解決辦法的核心因素。
操作系統
好了,相信經過這一講,你對傳統的HDD硬盤應該有了深刻的瞭解。咱們來總結一下。設計
機械硬盤的硬件,主要由盤面、磁頭和懸臂三部分組成。咱們的數據在盤面上的位置,能夠經過磁道、扇區和柱面來定位。實際的一次對於硬盤的訪問,
須要把盤面旋轉到某一個「幾何扇區」,對準懸臂的位置。而後,懸臂經過尋道,把磁頭放到咱們實際要讀取的扇區上。3d
受制於機械硬盤的結構,咱們對於隨機數據的訪問速度,就要包含旋轉盤⾯的平均延時和移動懸臂的尋道時間。經過這兩個時間,咱們能計算出機械硬盤的IOPS。
blog
7200起色械硬盤的IOPS,只能作到100左右。在互聯網時代的早期,咱們也沒有SSD硬盤能夠用,因此工程師們就想出了Partial Stroking這個浪費存儲空間,
可是能夠縮短尋道時間來提高硬盤的IOPS的解決方案。這個解決方案,也是一個典型的、在深刻理解了硬件原理以後的軟件優化⽅案。
原理