為什麼Linux不需要磁碟重組?
這要從幾個方面來說明:
從檔案系統方面:
fat就不說了,單就ntfs來說,不僅只能使用88%的硬碟空間來存放檔案,使用b+tree來加搜尋檔案,但是對於檔案配置方面仍然使用舊的配置方式,沒有什麼比較好的檔案配置方式,導致碎片快速產生。
在linux方面早在ext2的時候就使用區塊群組的方式減少碎片的產生,到了xfs等新的檔案系統,還多了許多減少碎片的技術,像是:Allocation groups,Extent based allocation,Variable block sizes
,Delayed allocation,都是windows所不及的。
就目錄設計方面:
windows傾向將所有程式檔案都放在單一硬碟分割區上,而linux可以將系統放在不同分割區上
,減少不斷增加檔案大小的紀錄檔和一般程式檔案方放在不同的分割區上,避免紀錄檔的碎片影響程式讀取的效能。而windows把所有東西都放在一起,效能當然會因為碎片的增加而越來越低。
就作業系統方面:
linux使用VFS系統來作為檔案讀取的中間層,在VFS中使用了檔案及目錄的快取,能充份利用所有的記憶體空間,所以在linux中記憶體是多多益善,而且能改善讀取的效能。
而windows的記憶體管理就很糟,裝上超過2g的記憶體效能還會變差,即使記憶體還有空間還不斷把記憶體的資料放到swap中(p.s.這也是記憶體最近會大跌的主因)。
最後:
在一個多人多工的系統中真的不需要磁碟重組,因為同時間可能有許多人在讀取不同檔案
檔案碎片對效能的影響其實不大。
所以不要再問為什麼linux沒什麼磁碟重組的工具了
沒有留言:
張貼留言