硬盤中一般會有多個盤片組成,每個盤片包含兩個面,每個盤面都對應地有一個讀/寫磁頭。受到硬盤整體體積和生産成本的限制,盤片數量都受到限制,一般都在5片以内。盤片的編号自下向上從0開始,如最下邊的盤片有0面和1面,再上一個盤片就編号為2面和3面。如下圖:
扇區 和 磁道
下圖顯示的是一個盤面,盤面中一圈圈灰色同心圓為一條條磁道,從圓心向外畫直線,可以将磁道劃分為若幹個弧段,每個磁道上一個弧段被稱之為一個扇區(圖踐綠色部分)。扇區是磁盤的最小組成單元,通常是512字節。(由于不斷提高磁盤的大小,部分廠商設定每個扇區的大小是4096字節)
磁頭 和 柱面
硬盤通常由重疊的一組盤片構成,每個盤面都被劃分為數目相等的磁道,并從外緣的“0”開始編号,具有相同編号的磁道形成一個圓柱,稱之為磁盤的柱面。磁盤的柱面數與一個盤面上的磁道數是相等的。由于每個盤面都有自己的磁頭,因此,盤面數等于總的磁頭數。 如下圖
磁盤容量計算
存儲容量 = 磁頭數 × 磁道(柱面)數 × 每道扇區數 × 每扇區字節數
圖3中磁盤是一個 3個圓盤6個磁頭,7個柱面(每個盤片7個磁道) 的磁盤,圖3中每條磁道有12個扇區,所以此磁盤的容量為:
存儲容量 6 * 7 * 12 * 512 = 258048
每個磁道的扇區數一樣是說的老的硬盤,外圈的密度小,内圈的密度大,每圈可存儲的數據量是一樣的。新的硬盤數據的密度都一緻,這樣磁道的周長越長,扇區就越多,存儲的數據量就越大。
磁盤讀取響應時間尋道時間:磁頭從開始移動到數據所在磁道所需要的時間,尋道時間越短,I/O操作越快,目前磁盤的平均尋道時間一般在3-15ms,一般都在10ms左右。 旋轉延遲:盤片旋轉将請求數據所在扇區移至讀寫磁頭下方所需要的時間,旋轉延遲取決于磁盤轉速。普通硬盤一般都是7200rpm,慢的5400rpm。 數據傳輸時間:完成傳輸所請求的數據所需要的時間。
小結一下:從上面的指标來看、其實最重要的、或者說、我們最關心的應該隻有兩個:尋道時間;旋轉延遲。讀寫一次磁盤信息所需的時間可分解為:尋道時間、延遲時間、傳輸時間。為提高磁盤傳輸效率,軟件應着重考慮減少尋道時間和延遲時間。
塊/簇概述
磁盤塊/簇(虛拟出來的)。 塊是操作系統中最小的邏輯存儲單位。操作系統與磁盤打交道的最小單位是磁盤塊。
通俗的來講,在Windows下如NTFS等文件系統中叫做簇;在Linux下如Ext4等文件系統中叫做塊(block)。每個簇或者塊可以包括2、4、8、16、32、64…2的n次方個扇區。為什麼存在磁盤塊?
讀取方便:由于扇區的數量比較小,數目衆多在尋址時比較困難,所以操作系統就将相鄰的扇區組合在一起,形成一個塊,再對塊進行整體的操作。
分離對底層的依賴:操作系統忽略對底層物理存儲結構的設計。通過虛拟出來磁盤塊的概念,在系統中認為塊是最小的單位
page操作系統經常與内存和硬盤這兩種存儲設備進行通信,類似于“塊”的概念,都需要一種虛拟的基本單位。所以,與内存操作,是虛拟一個頁的概念來作為最小單位。與硬盤打交道,就是以塊為最小單位。
扇區、塊/簇、page的關系扇區: 硬盤的最小讀寫單元 塊/簇: 是操作系統針對硬盤讀寫的最小單元 page: 是内存與操作系統之間操作的最小單元。 扇區 <= 塊/簇 <= page
順序與随機存取性能對比順序與随機指的是每次數據存取請求對應的地址是否連續。Windows系統采取“見縫插針”的策略進行數據寫入,多任務系統下各進程對硬盤位置的讀寫請求也變得更為随機化。
随機存取速度快是固态硬盤相比機械硬盤的一個重要優勢,在各種硬盤測速軟件種,随機讀寫性能也占據了較大的評分權重。
磁盤讀寫最慢的地方在于尋道,根據kafka官網寫的資料是,尋道時間大概10ms,尋道之後磁頭順序讀取信息的速度是很快的,根據kafka官網的說法,6個7200轉的磁盤組成raid5,順序寫的速度能達到(600MB/S),而随機讀寫速度僅為100kb/s,如下圖所示,順序讀有時候比内存的
備注:本文來自互聯網,如有侵權請私信删除,謝謝!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!