大容量儲存與磁碟排程
搜尋時間(seek time)
想像一位圖書管理員要去拿一本書,但書架排成一條條長排,她只能筆直地走進某一條走道。在她能開始讀書名之前,她得先實際走到正確的走道。如果下一本書就在她站著的這條走道,那段路是瞬間的;如果它在館的另一頭,路就很長。硬碟上的搜尋時間正是那段路:讀寫頭的臂從目前位置移動到存放你想要資料的那條磁軌所花的時間。
具體來說,讀寫頭裝在一支會移動的臂上,而資料分布在不同半徑的同心磁軌上。要讀取臂目前並未停在其上方那條磁軌上的某個磁區,硬碟就必須讓臂加速、滑過去,再精確地穩定停在目標磁軌上。這整段動作就是搜尋。它取決於臂要移動多遠:跳到相鄰磁軌可能遠不到一毫秒,而橫掃整個磁片則要好幾毫秒。硬碟廠商會標示一個「平均搜尋時間」(桌上型硬碟常為 8 到 12 毫秒),意指越過隨機距離的典型搜尋。
為什麼重要:搜尋時間通常是隨機磁碟存取中單一最大的成本,也是磁碟排程主要設法減少的對象。藉由重新排序待處理的請求,讓讀寫頭順暢地掃過磁碟、而非來回跳動,作業系統能大幅削減總搜尋時間。搜尋時間也是循序存取(讀取隔壁那條磁軌)在速度上輾壓隨機存取(在整個磁碟上到處跳)的原因。關鍵在於,SSD 沒有臂也沒有磁軌,所以它根本沒有搜尋時間——這正是磁碟排程在快閃記憶體上幾乎無關緊要的原因。
某顆硬碟的讀寫頭停在第 50 軌。接著讀第 51 軌是一次短搜尋(遠不到 1 毫秒)。但若下一個請求是第 950 軌,臂就得幾乎掃過整個磁片——也許 10 毫秒。把請求重新排序,讓臂依磁軌順序而非請求順序去拜訪,就能省下許多這種長距離掃描。
移動的距離決定搜尋;重新排序則縮短總距離。
搜尋時間不是全部的存取時間。即使臂抵達了,你仍要等平均半圈(旋轉延遲),磁區才會轉到讀寫頭下方。在傳輸開始之前,這兩者都得先付出。
又称
另见