1G緩存的機械硬碟,拷貝文件是否只是前幾秒快一些?
01-13
全球最快?Buffalo 巴法絡 HD-GDU3 移動硬碟(400MB/s、1GB緩存、3TB容量、USB3.0) 20366日元 看到評論裡面說的 : "緩存才1G,就算寫入速度峰值400M,2.5秒緩存就光了,但是硬碟的寫入速度不會高於100M,就算3秒,也就算只能3秒,下面就龜速了,是不是這個意思?" , 求解釋
現實中很少會出現你以400MBps的速度長時間寫入的情況。試想下你每星期會有幾次向移動硬碟寫入超過1GB的數據?
實際上緩存是基於程序執行和數據訪問的局部性原理設計的。也就是假設在一定的時間內,一個程序執行的代碼和訪問的數據都是在一定區域內的。這樣,在這段時間裡需要重複使用的數據(代碼也是一種數據,雖然的確可以分開處理,但原理相同)可以直接從緩存中獲得,而不必去訪問速度較慢的存儲設備,從而縮短時間提高效率。
的確,如果拷一個50GB的電影,緩存的確沒什麼太大的意義:因為這50GB的數據完全沒有局部性可言。
參見: Locality of reference (沒有中文版)機械硬碟的讀寫取決於兩個方面,尋道速度和順序讀寫速度。緩存是為了避免不必要的重新尋道。拷貝大文件則主要是順序讀寫(在 OS 避免磁碟碎片的前提下)。所以題目引用中對緩存的理解不當。
根據現有的信息,有很多重要的問題都不是很明確。
1)都做了哪些性能測試?
2)cache是1G了,但是後面的機械存儲流程,是否使用了RAID做並行?3)這個技術是否針對特殊機械硬碟?還是所有的機械硬碟都適用?4)持續寫入測試,是怎麼樣的?如果寫入的數據大小不超過cache,那麼這個速度毫無意義。5)持續讀出的測試呢?如果上層多個應用讀的都是cache,那麼這個速度也毫無意義。6)「拷貝1000個800KB的圖片只需5.6秒,使用軟體的話只要3.5秒,性能不俗。」這數據總大小才800MB啊!!沒超過cache。
7)並發IO測試呢?這個才是NAS類設備真正表現性能的地方。---------------------------------------------------------------------------------------------不排除優秀的cache管理演算法會極大地提高時間局部性很高(即短時間頻繁使用的)的數據的讀取速度。但是cache大小無法解決空間局部性很小(即非常分散的)的大數據讀取速度。其實硬碟100M的速度已經很快了, 硬碟順序寫入大文件可以達到30-60M/s 這個速度是還不錯的。緩存可以大福度改善日常使用的離散讀寫,這才是主要應用場景
感覺台機用這貨的話配個ups是必須的。否則很危險。
有個軟體叫做PrimoCache,拿內存做硬碟緩存的
提足可以裝上測試一下就知道了
突發寫、頻繁讀寫有提升,實際作用沒什麼卵用推薦閱讀:
※如何設計網站的緩存?
※求教大神瀏覽器是根據什麼決定from disk cache 與 from memory cache?
※cdn的緩存數據是如何實現分片的,如何有效的實現各分片的存儲及刪除?
※`a = false` 和 `if (a) { a = false; }` 哪個快?
※對於平均大小在 10M 至 50M 左右的文件下載服務來說,有沒有什麼成熟的緩存方案呢?