SSD的隨機讀寫與順序讀寫?
機械硬碟由於其物理結構的原因,順序讀寫相鄰的磁塊比起隨機讀寫可以有效減少磁頭的移動次數,從而順序讀寫的性能高於隨機讀寫。但是SSD作為隨機存儲設備,其訪問任意一塊的時間應該是相等的。因此,可以得出隨機讀寫性能等於順序讀寫。我看了很多評測,發現實際情況卻不是如此,而是像機械硬碟一樣,順序讀寫高於隨機讀寫。請問這是為什麼?
連續讀寫由於非常常見,並且可以預判,所以一般都會被特別優化。一塊兒還沒讀完,下一塊兒已經預備甚至開始讀了,整個數據運輸過程上流水是最大化的,並且架構上會保證同時讀的不會在各種內部指令線上有衝撞。
連續讀寫內存比隨機讀寫內存也快很多,同樣的基本道理。你如果說沒有Cache的SSD,也許尋道時間是一樣的。但是SSD有Cache啊,而且還不小(256M以上)。還有就是最高票說的預讀。
你這個問題的關鍵在於把兩個不同的東西用了同一個標準去比較。就像比較一個舉重選手和短跑選手比賽誰能勝出一樣。
順序讀寫好壞標準是 「吞吐量MBPS」每秒鐘讀寫數據的大小。讀寫一個大文件。
隨機讀寫好壞的標準是「IOPS」,每秒鐘讀寫文件的次數。讀寫多個小文件。
SSD硬碟的尋道時間幾乎為0,順序讀寫大文件的速度達到600M/s,隨機讀寫達到了1000萬次/s。
文件系統數據都是分成很多小塊的,假如每塊數據可以防止4KB的數據。而硬碟每次讀寫剛好讀取4kb的情況下,當然可以達到最大讀取效果。但如果每塊裡面只有1byte數據,而每次讀寫仍然是一個數據塊。那麼隨機讀寫速度就會下降4000倍。而順序讀寫每次都是讀取最大的數據塊。
加上順序讀寫的優化演算法,肯定是比隨機讀寫吞吐量大一些。但並不絕對。你要理解,順序讀寫和隨機讀寫通常用兩個不同的指標來表示性能的好壞。不要放在一起比較就好。
推薦閱讀:
※SSD+HDD,在不運行HDD程序的前提下,HDD會不會發出聲音?
※看到有人說 RMBP 15 高配不要嘗試定製 CPU,這是真的嗎?
※現在有哪些比較好點的無線網卡支持802.11AC?
※什麼是Speculative Execution?為什麼要有它?