原因非常簡單,首先快取在儲存的方面幾乎沒有用(除非你認為資料最終不用寫入磁碟),最多就是原先零散儲存的資料,透過先丟到快取中集合,再一次性向硬碟進行存取,但問題是你願意等多久?幾MB的快取,那大不了就是幾秒的時間差,而若給你個2GB的快取好了,然後要求你所有儲存的資料全部都得集滿2GB再向硬碟一次送?試問你得集多少時間?當資料卡在快取而尚未寫入硬碟時,別說是斷電之類的問題,當下是否反而造成後續讀取的問題?所以快取的數量絕對不是越大越好,重點是精算硬碟本身的讀寫速度,並且作為輔助手段合理的加大
另外大的快取夢想的是在讀取時能變快,但實際上有可能嗎?
快取中的內容終究還是得從硬碟拉出來,充其量就是拉出來之後短時間內不刪除,於是「二次存取」時便可以直接使用快取中的內容,但這有多少?電腦中有個東西叫記憶體,大多數的程式本來就只會把使用中的資料放置在記憶體中,而不會一而再、再而三的對硬碟呼叫相同檔案,於是所謂「二次存取」多數是人為性的關閉特定文件又再重開,但正常人總也不會這樣對相同檔案開了又關、關了又開,真的有此意外的話,也算是極少數,例如你看一個影片時不小心把影片關掉,於是再重開,這時若有龐大的快取,說不定就不用再由硬碟重讀影片了,但這極少數,真的很少…,除非你天天手殘…
換個說法的話,原先要求資料只需要從磁碟拉取即可,現在當你要求快取加大,並且要求把資料都丟到快取進行這種”低可能性”的二次利用,那試想「磁碟->記憶體」、「磁碟->快取->記憶體」這兩者哪個比較快?
所以在讀的方面,快取也不是越大越好,而是針對目前系統中程序設定不將資料留在記憶體,且資料內容不會進行變動,但又真正會經常被呼叫的少數檔案進行精算…
tekarin wrote:
現在電腦的瓶頸卡在硬碟的處理速度
那為什麼傳統硬碟的廠商沒有想過加大快取?
記得之前曾經在滄者看過一篇文章
利用軟體使用RMA當硬碟的快取後,傳輸速度可以比SSD還快,還有影片證明,
在較大的檔案傳輸完後立刻切掉電源重開機,複製過去的檔案也是正常可使用。
最近也在01看到一篇直接在外接盒上加大快取記憶體,讓傳統硬碟傳輸加快。
那麼3大硬碟廠商都是笨蛋嗎?
加大快取就能非常有效的提升速度,WD還出了雙磁頭的技術,但效能確連一倍成長都沒有。
到底是什麼原因使得硬碟廠不願加大快取?
有大大可以開釋一下嗎?
不是無限加大cache就能提升效能這麼簡單。cache大小取決於很多因素,要考慮的面向也很多。簡單舉個二點:
1.以sequential burst write來說,比如寫入一個4GB的檔案,寫入速度上限決定在HDD 磁頭寫入的極限,cache=0 or cache=1GB的速度都是一樣的。現在一般家用的SATA HDD大概就是在60MB~80MB/s左右。
2.以random R/W來說,不論cache有多大,只要每次都發生cache miss (讀寫的DATA不在cache中),讀寫的效能還是決定在HDD本身,有沒有cache都沒差。
(1)就是指應用型態,比如DVR監視錄影,或DV影像,大概就會是sequential burst write。
(2)指的是資料存取型態,針對temporal locality的存取方式,的確cache越大效能越好,只要降低cache miss到 0%,那就是RAM disk要做的事。
關閉廣告