爲何Linux不須要碎片整理?

 若是你是一個Linux用戶,你可能會據說Linux的文件系統不須要碎片整理。你也可能會注意到Linux的發行版本也都沒有磁盤碎片整理的功能。這是爲何呢?
node

  要理解爲何Linux的文件系統不會想Windows的文件系統同樣產生碎片,你首先要明白碎片究竟是如何產生的,還有這兩大操做系統的文件系統的工做方式到底有什麼不一樣。ide

 什麼是磁盤碎片?

  不少Windows的用戶,甚至包括一些沒有經驗的用戶,都相信定時整理文件系統中的碎片會讓他們的電腦運行得更快。但他們都不知道這是爲何。性能

  簡單來講,一個硬盤驅動器裏面包含了不少扇區,每個扇區均可以存儲一小塊數據。對於文件,尤爲是比較大的文件來講,他們必需要存儲在不少不一樣的扇區內。假設你的文件系統中有不少不一樣的文件,每個文件都被存儲在連續的扇區羣中。而後,你對增長了其中某一個文件的大小。文件系統首先會嘗試對該文件新增長的部分存儲在緊挨着原來的扇區羣的某個扇區中。可是若是當中沒有足夠的連續扇區,這個文件就必需要被分解成多個小塊,這些操做對於你來講都是可見的。當你的硬盤讀取這些文件的時候,他的磁頭必須在不一樣的物理位置間跳轉以讀取連續的扇區羣,這會下降它的速度。操作系統

  碎片整理就是一個經過逐位(位是文件在磁盤中存儲的最小單位)移動文件來減小碎片的精密的過程,以此來確保每個文件在硬盤中都是連續存儲的。設計


  固然,對於固態硬盤來講這又有點不同,固態硬盤不須要移動文件也不須要碎片整理。由於對一個SSD(固態硬盤)作碎片整理會減小它的壽命。並且,在最新版本的Windows系統中,你也再也不須要爲碎片整理擔憂,由於Windows會自動幫你完成。it

 Windows的文件系統如何工做

  從前微軟使用的FAT文件系統——最後一次做爲默認系統被看到是在Windows 98和ME,儘管這個系統還在USB驅動器中使用——並不可以很好地排列文件。當你在FAT文件系統中保存文件時,它會盡量地將文件排列在磁盤的首部。當你存放下一個文件時,它會將這個文件直接存放在第一個文件的後面,以此類推。因此當文件變大,永遠都會有碎片產生,由於文件的旁邊已經沒有空間來存放增長的部分。class

  微軟在Windows XP和2000中使用的較新的NTFS文件系統就嘗試變得更聰明一點。這個文件系統會在文件周圍放置更多名爲」緩衝區「的自由空間,可是,任何一個Windows用戶都會告訴你,NTFS文件系統總有一天也會產生碎片的。後臺

  由於文件系統這樣的表現,他們須要碎片整理來保持性能。微軟只能在最新版的Windows系統中經過在後臺自動運行碎片整理程序來減輕這個問題。程序

 Linux的文件系統如何工做

  Linux的ext2,ext3,ext4文件系統——ext4是Ubuntu和目前大多發行版所採用的文件系統——會以一種更加智能的方式來放置文件。Linux的文件系統會將文件分散在整個磁盤,在文件之間留有大量的自由空間,而不是像Windows那樣將文件一個接一個的放置。當一個文件被編輯了而且變大了,通常都會有足夠的自由空間來保存文件。若是碎片真的產生了,文件系統就會嘗試在平常使用中將文件移動來減小碎片,因此不須要專門的碎片整理程序。方法


  由於這樣的工做方式,你可能會在你的文件系統塞滿以後看到碎片。若是文件系統95%(甚至80%)的空間被佔用了,你就會開始看到一些碎片。然而,這樣的文件系統原本就是設計來在普通使用中減小碎片的。

  若是你真的在Linux上出現了碎片的煩惱,你可能就須要一個更大的硬盤了。若是你真的須要對一個文件系統作碎片整理,最簡單的可能也是最可靠的方法就是將全部文件拷貝出來,而後清空原來的分區,再將文件拷貝回去。文件系統就會在你拷貝回去的過程當中智能地將文件放置好。

  你可使用fsck命令來檢測一下一個Linux文件系統的碎片化程度,只須要在輸出中查看非連續i節點個數(non-contiguous inodes)就能夠了。

相關文章
相關標籤/搜索