本文由
極客范
-
只愛看海
翻譯自
Chris Hoffman
。歡迎加入
極客翻譯小組
,同我們一道翻譯與分享。轉(zhuǎn)載請參見文章末尾處的要求。
?
如果你是一個Linux用戶,你可能會聽說Linux的文件系統(tǒng)不需要碎片整理。你也可能會注意到Linux的發(fā)行版本也都沒有磁盤碎片整理的功能。這是為什么呢?
?
要理解為什么Linux的文件系統(tǒng)不會想Windows的文件系統(tǒng)一樣產(chǎn)生碎片,你首先要明白碎片到底是如何產(chǎn)生的,還有這兩大操作系統(tǒng)的文件系統(tǒng)的工作方式到底有什么不同。
?
?
什么是磁盤碎片?
?
很多Windows的用戶,甚至包括一些沒有經(jīng)驗的用戶,都相信定時整理文件系統(tǒng)中的碎片會讓他們的電腦運(yùn)行得更快。但他們都不知道這是為什么。
?
?
簡單來說,一個硬盤驅(qū)動器里面包含了很多扇區(qū),每一個扇區(qū)都可以存儲一小塊數(shù)據(jù)。對于文件,尤其是比較大的文件來說,他們必須要存儲在很多不同的扇 區(qū)內(nèi)。假設(shè)你的文件系統(tǒng)中有很多不同的文件,每一個文件都被存儲在連續(xù)的扇區(qū)群中。然后,你對增加了其中某一個文件的大小。文件系統(tǒng)首先會嘗試對該文件新 增加的部分存儲在緊挨著原來的扇區(qū)群的某個扇區(qū)中。但是如果當(dāng)中沒有足夠的連續(xù)扇區(qū),這個文件就必須要被分解成多個小塊,這些操作對于你來說都是可見的。 當(dāng)你的硬盤讀取這些文件的時候,他的磁頭必須在不同的物理位置間跳轉(zhuǎn)以讀取連續(xù)的扇區(qū)群,這會降低它的速度。
?
?
碎片整理就是一個通過逐位(位是文件在磁盤中存儲的最小單位)移動文件來減少碎片的精密的過程,以此來確保每一個文件在硬盤中都是連續(xù)存儲的。
?
?
當(dāng)然,對于固態(tài)硬盤來說這又有點不一樣,固態(tài)硬盤不需要移動文件也不需要碎片整理。因為對一個SSD(固態(tài)硬盤)做碎片整理會減少它的壽命。而且,在最新版本的Windows系統(tǒng)中,你也不再需要為碎片整理擔(dān)心,因為Windows會自動幫你完成。
?
?
Windows的文件系統(tǒng)如何工作
?
從前微軟使用的FAT文件系統(tǒng)——最后一次作為默認(rèn)系統(tǒng)被看到是在Windows 98和ME,盡管這個系統(tǒng)還在USB驅(qū)動器中使用——并不能夠很好地排列文件。當(dāng)你在FAT文件系統(tǒng)中保存文件時,它會盡可能地將文件排列在磁盤的首部。 當(dāng)你存放下一個文件時,它會將這個文件直接存放在第一個文件的后面,以此類推。所以當(dāng)文件變大,永遠(yuǎn)都會有碎片產(chǎn)生,因為文件的旁邊已經(jīng)沒有空間來存放增 加的部分。
?
?
微軟在Windows XP和2000中使用的較新的NTFS文件系統(tǒng)就嘗試變得更聰明一點。這個文件系統(tǒng)會在文件周圍放置更多名為”緩沖區(qū)“的自由空間,但是,任何一個Windows用戶都會告訴你,NTFS文件系統(tǒng)總有一天也會產(chǎn)生碎片的。
?
?
因為文件系統(tǒng)這樣的表現(xiàn),他們需要碎片整理來保持性能。微軟只能在最新版的Windows系統(tǒng)中通過在后臺自動運(yùn)行碎片整理程序來減輕這個問題。
?
?
?
Linux的文件系統(tǒng)如何工作
?
Linux的ext2,ext3,ext4文件系統(tǒng)——ext4是Ubuntu和目前大多發(fā)行版所采用的文件系統(tǒng)——會以一種更加智能的方式來放置 文件。Linux的文件系統(tǒng)會將文件分散在整個磁盤,在文件之間留有大量的自由空間,而不是像Windows那樣將文件一個接一個的放置。當(dāng)一個文件被編 輯了并且變大了,一般都會有足夠的自由空間來保存文件。如果碎片真的產(chǎn)生了,文件系統(tǒng)就會嘗試在日常使用中將文件移動來減少碎片,所以不需要專門的碎片整 理程序。
?
?
因為這樣的工作方式,你可能會在你的文件系統(tǒng)塞滿之后看到碎片。如果文件系統(tǒng)95%(甚至80%)的空間被占用了,你就會開始看到一些碎片。然而,這樣的文件系統(tǒng)本來就是設(shè)計來在普通使用中減少碎片的。
?
?
如果你真的在Linux上出現(xiàn)了碎片的煩惱,你可能就需要一個更大的硬盤了。如果你真的需要對一個文件系統(tǒng)做碎片整理,最簡單的可能也是最可靠的方法就是將所有文件拷貝出來,然后清空原來的分區(qū),再將文件拷貝回去。文件系統(tǒng)就會在你拷貝回去的過程中智能地將文件放置好。
?
?
你可以使用 fsck 命令來檢測一下一個Linux文件系統(tǒng)的碎片化程度,只需要在輸出中查看非連續(xù)i節(jié)點個數(shù)(non-contiguous inodes)就可以了。
原文鏈接:
Chris Hoffman
翻譯:
極客范
-
只愛看海
譯文鏈接:
http://www.geekfan.net/5281/
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
