天天看點

為什麼Linux不需要磁盤碎片整理

 如果你是個linux使用者,你可能聽說過不需要去對你的linux檔案系統進行磁盤碎片整理。也許你注意到了,在liunx安裝釋出包裡沒有磁盤碎片整理的工具。為什麼會這樣?

為什麼Linux不需要磁盤碎片整理

https://dn-linuxcn.qbox.me/data/attachment/album/201206/14/103855laqzdm7q0d0s06es.png

  為了了解為什麼linux檔案系統不需要磁盤碎片整——而windows卻需要——你需要了解磁盤碎片産生的原理,以及linux和windows檔案系統它們之間工作原理的不同之處。

<a target="_blank"></a>

  很多windows使用者,甚至是沒有經驗的使用者,都深信經常對檔案系統進行碎片整理會提高計算機的速度。但并不是很多人知道這其中的原委。

  簡單的說,磁盤驅動器上有很多扇區,每個扇區都能存放一小段資料。檔案,特别是大檔案的存儲需要占用很多不同的扇區。假設現在你有很多個檔案存在的 檔案系統裡,每個檔案都會被存儲在一系列連續的扇區裡。後來你更新了其中的一個檔案,它的體積變大了。檔案系統會嘗試把檔案新增的部分存放到緊鄰原始檔案 的扇區裡。可不幸的是,它周邊已經沒連續的足夠扇區空間了,檔案需要被分割成數段——這些都在自動進行的。當從磁盤上讀取這個檔案時,磁盤磁頭需要跨越數 個不同的實體位置來讀取各個扇區——這樣會使速度降低。

  磁盤碎片整理就是小心的移動這些小檔案塊來減少碎片,讓每個檔案都能連續的分布在磁盤上。

為什麼Linux不需要磁盤碎片整理

https://dn-linuxcn.qbox.me/data/attachment/album/201206/14/103901ifi1p19s99pz46fn.png

  當然,如果是固态硬碟,那情況又不同了,固态硬碟沒有機械移動,不應該進行碎片整理——對一個u盤進行碎片整理通常會降低它的壽命。在最新版的windows系統裡,你實際上不需要關心系統上的碎片——windows會自動替你整理。

  微軟老的fat檔案系統——最後一次使用是在windows 98 和 window me上,可如今的u盤上還在使用它——并不會智能的管理檔案。當你把一個檔案存入fat檔案系統裡時,系統會盡量的把它存到靠近磁盤開始的地方。當你存入 第二個檔案時,它會緊接着第一個檔案——一個接着一個。當原始檔案體積變大後,它們一定會産生碎片。根本沒有留給它們增長的空間。

  微軟新的ntfs檔案系統——使用在裝有windows xp和2000的pc機上——稍微智能了一點。它會在磁盤上在檔案周圍配置設定一些“緩沖”的空閑空間,盡管如此,任何windows使用者都會告訴你,經過一段時間的使用後,ntfs檔案系統還是會形成碎片。

  由于這些檔案系統的工作原理,它們注定需要進行碎片整理來保持高性能。微軟在它最新的視窗系統裡通過在背景運作一個磁盤碎片整理程序來解決這個問題。

為什麼Linux不需要磁盤碎片整理

https://dn-linuxcn.qbox.me/data/attachment/album/201206/14/1039044qat9kqfphkugdup.png

  linux的ext2, ext3, 和 ext4 檔案系統 ——ubuntu和大多數最新的linux釋出版中使用的是ext4——采用了一種更聰明的方法來存放檔案。與把多個檔案并排放在磁盤上不同,linux 檔案系統把所有檔案都分散到了整個磁盤上,每兩個檔案之間都留有相當巨大的空閑空間。當檔案被修改、體積增加時,它們通常有足夠的空間來擴充。一旦有碎片 産生時,檔案系統會嘗試移動整個檔案來消除碎片,是以你不需要一個碎片整理工具。

為什麼Linux不需要磁盤碎片整理

https://dn-linuxcn.qbox.me/data/attachment/album/201206/14/1039069ff9zn2djxjda39k.png

  因為這種工作方式,當磁盤快要裝滿時,你開始會發現有碎片開始産生。如果已用空間超過95%(甚至80%),你會發現碎片開始變多。但不管怎樣,這個檔案系統的設計會使正常情況下不産生碎片。

  如果你在linux系統上遇到了磁盤碎片問題,你很可能需要一個更大的硬碟了。如果你真想整理一個檔案系統,這最簡單的方式也許是最可靠的方式:把檔案從這個分區裡考出,删除這些檔案,然後考回這些檔案。當你把檔案考回硬碟時,檔案系統會智能為檔案配置設定存儲空間。

  你可以使用 fsck 指令來檢視linux檔案系統上的磁盤碎片情況——在輸出結果裡尋找“non-contiguous inodes”資訊。

<b>原文釋出時間為:2012-06-14</b>

<b>本文來自雲栖社群合作夥伴“linux中國”</b>

繼續閱讀