首頁  >  文章  >  運維  >  介紹Linux不需要碎片整理的原因

介紹Linux不需要碎片整理的原因

巴扎黑
巴扎黑原創
2017-08-23 15:31:161375瀏覽

 如果你是一個Linux用戶,你可能會聽說Linux的檔案系統不需要碎片整理。你也可能會注意到Linux的發行版本也都沒有磁碟碎片整理的功能。這是為什麼呢?

  要理解為什麼Linux的檔案系統不會想Windows的檔案系統一樣產生碎片,你首先要明白碎片到底是如何產生的,還有這兩大作業系統的檔案系統的工作方式到底有什麼不同。

 什麼是磁碟碎片?

  許多Windows的用戶,甚至包括一些沒有經驗的用戶,都相信定時整理檔案系統中的碎片會讓他們的電腦運作得更快。但他們都不知道這是為什麼。

  簡單來說,一個硬碟機裡包含了許多磁區,每個磁區都可以儲存一小塊資料。對於文件,尤其是比較大的文件來說,他們必須存放在許多不同的扇區內。假設你的檔案系統中有很多不同的文件,每一個都儲存在連續的磁區群中。然後,你對增加了其中某一個檔案的大小。檔案系統會先嘗試對該檔案新增加的部分儲存在緊鄰原來的磁區群的某個磁區中。但是如果當中沒有足夠的連續扇區,這個檔案就必須要被分解成多個小塊,這些操作對你來說都是可見的。當你的硬碟讀取這些檔案的時候,他的磁頭必須在不同的物理位置間跳轉以讀取連續的磁區群,這會降低它的速度。

  碎片整理就是一個透過逐位(位元是檔案在磁碟中儲存的最小單位)移動檔案來減少碎片的精密的過程,以此來確保每一個檔案在硬碟中都是連續儲存的。

  當然,對於固態硬碟來說這又有點不一樣,固態硬碟不需要移動檔案也不需要碎片整理。因為對一個SSD(固態硬碟)做碎片整理會減少它的壽命。而且,在最新版本的Windows系統中,你也不再需要為碎片整理擔心,因為Windows會自動幫你完成。

 Windows的檔案系統如何運作

  從前微軟使用的FAT檔案系統-最後一次作為預設系統被看到是在Windows 98和ME,儘管這個系統還在USB磁碟機中使用-並不能夠很好地排列文件。當你在FAT檔案系統中儲存檔案時,它會盡可能地將檔案排列在磁碟的首部。當你存放下一個文件時,它會將這個文件直接存放在第一個文件的後面,以此類推。所以當文件變大,永遠都會有碎片產生,因為文件的旁邊已經沒有空間可以存放增加的部分。

  微軟在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)就可以了。

以上是介紹Linux不需要碎片整理的原因的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn