硬盤的緩存主要有以下作用:
一、是對寫入動作進行緩存。
當硬盤接到寫入數據的指令之后,它不會馬上將數據寫入到硬盤片上,而是先暫時存儲在緩存里,然后發送一個“數據已寫入”的信號給系統,這時系統就會認為數據已經寫入,并繼續執行下面的工作,而硬盤則在空閑(不進行讀取或寫入的時候)時再將緩存中的數據寫入到盤片上。由于對于寫入數據的性能有提升,所以不可避免地帶來了安全隱患——假如數據還在緩存里的時候突然掉電,那么這些數據則會丟失。
二、是預讀取。
當硬盤受到CPU指令控制開始讀取數據時,硬盤上的控制芯片會控制磁頭把正在讀取的簇的下一個或者幾個簇中的數據讀到緩存中(由于硬盤上數據存儲時是比較連續的,所以讀取命中率較高),假如需要讀取下一個或者幾個簇中的數據的時候,硬盤并不需要重新讀取數據,只需要把緩存中的數據傳輸到內存中就可以了,由于緩存的速度大于磁頭讀寫的速度,因此能夠達到明顯改善性能的作用。
三、臨時存儲最近訪問過的數據。
有時某些數據需要經常訪問的,硬盤內部的緩存則將讀取比較頻繁的一些數據存儲在緩存中,下次讀取時就可以直接從緩存中直接傳輸。
最后,還有個緩存算法問題。如果算法不夠優秀,命中率就不會高,這樣大容量緩存形同虛設,甚至會出現掉速問題。除此之外,還要結合硬盤本身的單碟容量、轉速來決定。比方說傳輸持續讀寫速度在150MB/s左右、單碟不超過1TB容量的機械硬盤,緩存64MB就足夠,128MB顯然有些浪費;只有那些單碟容量超過1TB、持續讀寫性能在200MB/s左右的機械硬盤,128MB的緩存才有意義哦。