上面一層以為連續的在下面一層可能是不連續的
也就是搞不好你看磁碟重組程式中畫的圖資料全擠在一起
但是其實他在SSD上明明是分在不同顆記憶體晶片中
所以 若有任何的SSD滿足
[作業系統中看起來連續的磁區其實是平均的分布在不同的記憶體晶片上]
則以磁碟重組軟體重組後的結果也必然滿足上述條件
此時對磁碟的損耗只有重組這個行為本身而已
之後在寫入或讀取時理論上不會特別對哪個記憶體晶片有特別大的負擔
那若重組後可增進效能 則這個SSD就該重組(當然在合理次數下)
但若一個SSD不滿足上述條件
也就是說作業系統中看起來連續的的磁區在SSD中也是在同個記憶體晶片的
亦或是雖然在不同記憶體晶片 但重組後沒有任何效能增進
則此時不該進行重組
因為要嘛是對特定記憶體晶片造成嚴重耗損導致SSD提早報銷
要嘛就是無意義的消耗使用次數
所以單純看SSD能否合理的對OS隱藏其實作細節而定
而今天既然對這個SSD來說以某個特定的重組程式重組後有助於提高效能
假如能確定上面所述的[作業系統中看起來連續的磁區其實是平均的分布在不同的記憶體晶片上]
那就儘管重組吧.....(當然次數還是要合理)
P.S.1.我不是贊成重組 是符合條件者可以考慮重組
P.S.2.其實整體來說這篇是屁話 很精闢的評論吧!
isenlin wrote:
可是...到底能不能重組啊??
你會發現開題的網友所貼的圖中,在未重組前的測試圖裡,在LBA較小的地方,他的Read Transfer Rate明顯比較低,因為那個區域是常被零碎資料一直覆蓋的,所以當Host想讀取這段連續LBA資料時,需要查表比較多次。
而比較少去動到的Block則可以維持較高的Transfer Rate,所以只要是有常做一些小資料的寫入,即使重組還是維持不了多久的效能。
想測試SSD的效能,或者是這類Flash Memory的效能,就得先做整顆Random Write,資料單位越小越好,越亂越好,然後再測Read Transfer Rate,才能測出真正Algorithm的效能。
否則排列整齊的資料並不是一般正常使用的狀態,測出來也只是參考用。
基本上,linux下的filesystem我用ext3來當例子,因為本身的資料結構跟windows下的fat32下跟本不一樣
所以,fat32會需要重組並不代表ext3會需要重組
wiki上的ext3就有特別附註,我自網站引述下面一段話:
Some filesystems, like ext3, effectively allocate the free block that is nearest to other blocks in a file. Therefore it is not necessary to worry about fragmentation in a Linux system.
翻譯:有些檔案系統,如ext3,可以有效的使用相鄰的區塊來存放檔案,因此在linux下並不需要擔心"檔案破碎"的情況
不過在我找到的資料中,顯示"很"早期的ext2,是有重組軟體可以使用的,只是針對現行的linux系統來,完全沒有那個必要
針對ssd是否需要重組的問題而言
因為os主要是跟ssd上的控制晶片在溝通
所以我不認為os會需要去在乎像重組那麼底層的事情
打個比方,如果說xp 上可以去使用ssd的話
很明顯的,xp是用跟硬碟溝通的方式在跟ssd溝通,因為xp出來的那個年代並沒有ssd這東西
(除非你的ssd會需要裝驅動程式)
所以,個人猜測控制晶片應該會隱藏ssd的底部邏輯,然後將之用抽象的方式給os控制
當然,以上純猜測XD
小弟我並不是這領域的專業
Ryu wrote:
各家Controller的作法可能都有些差異,所以會造成需要重組效能才會變好,有的可能就不需要重組,效能還是一樣。
...(恕刪)
推一下,看這句話就好了......
重組程式是在檔案系統的邏輯層上進行的,就算在這一層上是連續的,但在不知道邏輯層跟實體層之間如何對應、實體層的特性是連續放好還是分散放好的情況下,執行SSD重組變成一件碰運氣的事。
樓主在Samsung SSD上的實驗結果,是否能夠代表在Intel、Crucial、Ocz、Kingston....的SSD上的結果呢?而且SSD廠商如Ocz,不同SSD產品還採用了不同家的控制器,每一家的實作方式,都是黑箱子裡的機密。相對的,傳統Winchester硬碟的基本運作原理,對於WDC、Seagate、Hitachi....來說幾乎都是相同的,沒有秘密可言。
除非未來SSD有針對其特性定義的ATA命令集,能夠enumerate出SSD實體層的存取特性、以及實體配置的情況,重組SSD才有可能變成一件放諸四海產品皆適用的事,重組程式也才可以在盡可能最少寫入的前提下去進行重組,大家真槍實彈來拼重組演算法的優劣。但是Wear Leveling演算法可是各家SSD廠/控制器廠商的命脈,從小弟只是身為愛好會成員的程度來看,這種指令集似乎不太可能出現(否則競爭對手就可以去看你家控制器的Wear Leveling及Trim/AGC是如何實作的),有賴真正SSD產業從業研發人員指教。
因此現階段如Diskeeper的Hyperfast,在沒有SSD的實體資訊的情況下運作....可能只是賭運氣成分居多.....

內文搜尋

X