複製鏈接
請複製以下鏈接發送給好友

磁盤碎片

鎖定
其實磁盤碎片應該稱為文件碎片,是因為文件被分散保存到整個磁盤的不同地方,而不是連續地保存在磁盤連續的簇中形成的。 當應用程序所需的物理內存不足時,一般操作系統會在硬盤中產生臨時交換文件,用該文件所佔用的硬盤空間虛擬成內存。虛擬內存管理程序會對硬盤頻繁讀寫,產生大量的碎片,這是產生硬盤碎片的主要原因。 其他如IE瀏覽器瀏覽信息時生成的臨時文件或臨時文件目錄的設置也會造成系統中形成大量的碎片。經常進行磁盤的碎片清理,可以提升電腦硬盤的使用效率。
中文名
磁盤碎片
別    名
文件碎片
性    質
讀寫過程中不連續文件
缺    點
拖慢機器運行速度

磁盤碎片定義

磁盤碎片指的是硬盤讀寫過程中產生的不連續文件。硬盤上非連續寫入的檔案會產生磁盤碎片,磁盤碎片會加長硬盤的尋道時間,影響系統效能。 比如虛擬內存使用了硬盤,硬盤上便會產生磁盤碎片, 所以磁盤碎片會加長硬盤的尋道時間,影響系統效能。 [1] 

磁盤碎片產生

因為在文件操作過程中,Windows系統可能會調用虛擬內存來同步管理程序,這樣就會導致各個程序對硬盤頻繁讀寫,從 [1] 
還有一種情況就是當中間的一個簇(由扇區組成)內容被刪除後,新寫入一個較小的文件,這樣在這個文件兩邊就會出現一些空間,這時候再寫入一個文件,兩段空間的任意一部分都不能容納該文件,這時候就需要將文件分割成兩個部分,碎片再次產生了。 [1] 
最常見的就是下載電影之類的大文件,這期間大家一般都會處理一下其它事情,而下載下來的電影文件被迫分割成若干個碎片存儲於硬盤中。因此下載是產生碎片的一個重要源頭。還有就是經常刪除、添加文件,這時候如果文件空間不夠大,就會產生大量的磁盤碎片,隨着文件的刪改頻繁,這種情況會日益嚴重。 [1] 
雖然説磁盤碎片對於正常工作影響並不大,但是會顯著降低硬盤的運行速度,這主要是硬盤讀取文件需要在多個碎片之間跳轉,增加了等待盤片旋轉到指定扇區的潛伏期和磁頭切換磁道所需的尋道時間 [1] 
電腦使用久了,磁盤上保存了大量的文件,這些文件並非保存在一個連續的磁盤空間上,而是把一個文件分散的放在許多地方,這些零散的文件被稱作“磁盤碎片”,這些碎片會降低整個windows的性能,每次讀寫文件磁盤觸頭都要來回移動,浪費了時間。於是windows中都提供一個整理磁盤碎片的程序。 [1] 

磁盤碎片操作原理

知道了磁盤碎片的產生原因之後,我們還有必要了解一下程序運行時磁盤的讀寫動作。一般運行一個程序時,磁盤驅動器磁頭所做的工作是先搜索該程序運行必需的文件,然後讀取數據,最後做讀後處理——將數據傳送至磁盤高速緩存(Cache)和內存中。搜索時間在硬盤性能指標中被稱為平均尋道時間(Average seek time),單位為毫秒(ms),主流硬盤的平均尋道時間小於9.5ms。如果能將應用程序的相關文件放在磁盤的連續空間內,磁頭搜索的時間將會減少很多。讀取時也是如此,磁盤讀取位於磁頭下方扇區的數據所需時間僅為將磁頭移到另一地點再讀取相同數據所需時間的五分之一。讀盤時,系統先檢查數據是否在高速緩存中,如果有則直接讀取;如果沒有則訪問磁盤,也就是讀盤。當需要多次讀取同一份數據時,Cache的作用很大,但對於第一次讀取某個文件,Cache就無能為力了。於是搜索時間和讀取時間在很大程度上影響着程序執行的效率 [1] 
為何要整理磁盤Windows系統並不能自動將每個文件按照最大程度減少磁頭搜索時間的原則放到磁盤上最合適的位置。於是Microsoft在Windows中加入了“Disk Defragment”(磁盤碎片整理程序),並提供了“TaskMonitor”(任務監視器)來跟蹤程序啓動過程中的磁盤活動,以利於“Disk Defragment”能夠更有效地工作。“TaskMonitor”是隨Windows啓動而自動運行的(當然要在“啓動”中選中“TaskMonitor”)。當加載某個應用程序時,它通過監視磁盤的訪問動作來了解該程序啓動時搜索和調用的文件,對所需文件進行定位,並將監視結果儲存在“C:\Windows\Applog”隱藏目錄中。這個目錄中的大多數文件以“.lgx”為擴展名,其中“lg”代表記錄文件(Log File),“x”表示盤符,如D盤程序就以“.lgd”為擴展名;記錄文件的文件名為TaskMonitor所監視的應用程序的文件名,如E盤上的WinZip程序記為“Winzip32.lge”。用户進行磁盤碎片整理時,該程序會根據Applog目錄中的信息把應用程序的相關文件移動到磁盤上的連續空間內。 [1] 
TaskMonitor僅在程序加載過程中對文件信息進行搜索,並且根據程序的加載頻率調整優化的順序,也就是説使用次數最多的軟件可獲得最多的關照。Applog目錄中的APPLOG.ind文件就記錄了應用程序運行的次數。用户需要將常用軟件多次啓動,接受TaskMonitor的監視和記錄,再使用Disk Defragment進行整理,才能真正實現程序啓動速度的提高。但如果用户中途改變了常用軟件,比如以前常用WinZip,改用ZipMagic,那麼在相當長的時間內Disk Defragment還是先把與WinZip相關的文件移到連續的空間內,而不是ZipMagic,除非ZipMagic的加載次數超過WinZip。要解決這個問題,用户可將“Winzip32.lgx”文件刪除,記錄文件不存在了,Disk Defragment也就不會去優化它了。 [1] 

磁盤碎片外部碎片和內部碎片

很多人會把文件碎片跟簇的概念混淆起來。其實對windows系統來説硬盤上的每個分區都是由最小存儲單元——簇組成的。就好比,一面牆是由一塊塊轉頭組成的。簇的大小可以在分區格式化時由用户定義,一般是數個KB大小,比如是8KB。假設我有一個文件,大小是80MB零1KB(1MB=1000KB),換算一下就是80,001KB,其中的80,000KB正好佔用10000個簇,剩下的那1KB,不得以也要佔用1個簇,但這最後一個簇還有7KB的空間沒用上了。而且這個未完全使用的簇,其他文件也不允許繼續使用。這就造成了一點點的空間浪費。 [1] 
不少人就把這被浪費了的7KB空間就是磁盤上的內部碎片。 [1] 
而磁盤上的外部碎片(即平時所説的磁盤碎片,磁盤碎片清理工具只能清理磁盤上的外部碎片,清除不了磁盤上的內部碎片,除非改變文件系統的分配單位即簇的大小,使之是一個文件大小的整數倍。)實際上指的是一個文件佔據那些簇是不連續的,就相當於文件被分割開來,分別存放在相互間斷的幾段簇上。文件被分割為幾個部分就是幾個碎片。所以碎片其實是指文件碎片,可以理解成,文件破碎成片之意。而且文件碎片之間有時候順序還是錯亂的。比如説,有時候“文件裏靠後的碎片”所佔的簇段在硬盤上反而會排在“文件裏位置靠前的碎片”簇段的前面。這樣一來,一個文件就會以比較混亂的順序存放在硬盤上。 [1] 

磁盤碎片整理硬盤

磁盤碎片必要性

實際上,定期整理硬盤應該是毫無疑問的。如果説硬盤碎片整理真的會損害硬盤的話,那也將是在對硬盤進行近乎天文數字般次數的整理之後。硬盤使用的時間長了,文件的存放位置就會變得支離破碎——文件內容將會散佈在硬盤的不同位置上。這些碎片文件的存在會降低硬盤的工作效率,還會增加數據丟失和數據損壞的可能性。碎片整理程序把這些碎片收集在一起,並把它們作為一個連續的整體存放在硬盤上。Windows自帶有這樣的程序:磁盤碎片整理程序(DiskDefragmenter),但在工具軟件NortonUtilities和Nuts&Bolts中有更好的此類程序。 [1] 

磁盤碎片週期

個人電腦3個月一次
商業用户、企業用户、政府部門用户1個月一次。
磁盤碎片整理時,必須關閉屏幕保護程序,並且不要在電腦上幹其他的事情,如聽音樂,玩遊戲等。讓電腦只運行磁盤碎片整理程序,以防出現數據丟失 [1] 
同時建議不要很頻繁的整理硬盤,因為那樣的話硬盤不停的進行讀寫,會影響壽命

磁盤碎片準備工作

磁盤碎片簡介

在整理硬盤前一般都要對它清理垃圾信息,檢查有無錯誤,最後才能談到碎片的整理和優化。因此,我們在整理硬盤前,應該首先做好這些工作: [1] 

磁盤碎片垃圾清理

系統工作一段時間後,垃圾文件就會非常之多,有程序安裝時產生的臨時文件、上網時留下的緩存文件、刪除軟件時剩下的DLL文件或強行關機時產生的錯誤文件等,建議“菜鳥”朋友還是使用微軟的“磁盤清理程序”代勞,“老鳥”當然可以使用一些功能更強的軟件或手工清理。 [1] 

磁盤碎片檢查並修復硬盤中的錯誤

首選的仍然是微軟的“磁盤掃描程序”,雖然它的速度實在不怎麼樣,但只要你有足夠的耐心,經過這個程序對磁盤完整而詳細的掃描後,相信系統中的絕大多數錯誤已經被修復了。當然你也可以嘗試一下其他工具,如扁鵲神醫“Norton WinDoctor”,它的速度可比Windows中的“磁盤掃描工具”快多了。 [1] 

磁盤碎片整理方法

在Windows裏,用户可以從“開始”菜單中選擇“程序/附件/系統工具/磁盤碎片整理程序”,彈出選擇驅動器窗口,選擇要整理的分區,然後點擊[確定]即可開始整理,但此方法碎片整理過程非常耗時,一般2GB左右的分區需要1個小時以上,所以建議讀者: [1] 
1、整理磁盤碎片的時候,要關閉其他所有的應用程序,包括屏幕保護程序,最好將虛擬內存的大小設置為固定值。不要對磁盤進行讀寫操作,一旦Disk Defragment發現磁盤的文件有改變,它將重新開始整理。
2、整理磁盤碎片的頻率要控制合適,過於頻繁的整理也會縮短磁盤的壽命。一般經常讀寫的磁盤分區一週整理一次。 [1] 

磁盤碎片命令參數

命令參數在 DOS時代可以説是一項基本的技能,很多程序都要靠命令參數來啓動,而到了圖形化界面時代,已很難再見到其蹤跡,但它卻實實在在地存在着,而且發揮着不小的作用。如很多 Windows遊戲的設置程序就是用 /Setup 參數來實現的。通常我們不會太留意某些程序的命令參數,但他們往往包含着某些隱秘的功能,如果運用適當對你很有幫助。 [1] 
Windows 中的磁盤掃描程序就包含着許多命令參數,你可以在MS_DOS方式下或在“運行”對話框中實現,如果需要經常用命令參數,還可以建立一個快捷方式
/SILENT 啓動磁盤掃描程序不允許作任何選項設置和高級設置。
/A 檢查所有的本地硬盤
/N 自動啓動和退出磁盤掃描程序
/P 防止磁盤掃描程序修復所發現的錯誤
X: X 表示指定要檢查的驅動器號(不需要 / 的命令參數) [1] 
舉例:
1)檢查驅動器 E 並自動啓動和退出磁盤掃描程序
SCANDSKW E: /N
2)檢查所有的硬盤並防止磁盤掃描程序修復發現的任何錯誤
SCANDSKW /A /P [1] 

磁盤碎片其他

當運行了其他磁盤文件整理程序(如WinAlign)後,它可能擾亂了TaskMon記錄的數據,若此時直接進行碎片整理,可能會得不償失,達不到優化性能的目的。解決的辦法是在進行碎片整理之前,多次運行Windows和自己最常用的程序,這樣可以讓TaskMon重新收集到正確的統計數據,指導進行磁盤優化。 [1] 
最後,當啓動Windows98的磁盤碎片整理程序時,可能會詫異界面中的Intel標誌。為什麼處理器的生產廠商會參與編寫這個優化磁盤的軟件呢?這是因為硬盤尋道時間的緩慢會導致系統整體性能的下降,這樣會有損CPU超級計算能力的形象,讓人誤以為是CPU性能的低下。Microsoft的一個測試表明,在奔騰233的機器上啓動Windows僅僅比奔騰150快3%,也就是説,快速的CPU並不能克服磁盤延遲的缺點。於是,在共同利益的驅動下,Intel和Microsoft聯合開發了Windows98的磁盤碎片整理程序,用來消除硬盤尋道緩慢的瓶頸。 [1] 

磁盤碎片如何整理

磁盤碎片簡介

每次需要整理磁盤碎片時都需要選擇“開始”*“程序”*“附件”*“系統工具”*“磁盤碎片整理程序”,然後再指定驅動器,很麻煩。能否有簡單的方法完成這一系列操作? [1] 

磁盤碎片方法一

在Windows資源管理器中,選擇“查看”*“文件夾選項”(或“查看”*“選項”),選擇“文件類型”選項卡,並在“已註冊的文件類型”列表中選擇“驅動器”。單擊“編輯”按鈕,打開“編輯文件類型”對話框,選擇“新建”,在“操作”欄中,鍵入“快速整理磁盤碎片”。在“用於執行操作的應用程序”欄中鍵入“C:\Windows\defrag.exe "%1" \noprompt”。
單擊“確定”,然後“關閉”,回到“文件類型”選項卡,然後單擊“關閉”。打開“我的電腦”,右鍵單擊想要整理磁盤碎片的驅動器,在彈出的快捷菜單中選擇“快速整理磁盤碎片”即可。 [1] 

磁盤碎片方法二

使用第三方軟件進行碎片整理
例如Windows優化大師或者O&O Defrag,個人推薦使用O&O Defrag.原因是在整理碎片的過程中筆者遇到過無法將碎片整理的情況,也只能將磁盤進行格式化.
為避免出現類似情況,最好的辦法就是使用O&O Defrag,對目標盤選擇"整理/合併未使用空間"這項就可以對你無法用方法一清理的碎片進行很好的清理. [1] 
使用Windows優化大師的好處在於你可以對磁盤的錯誤進行恢復,不過缺點也是有時無法將很難清理的碎片進行處理.

磁盤碎片藉助Ghost巧整理

此方法的原理是:使用備份再還原,實現數據塊恢復到初始時的連續狀態,就好比桌面打亂的牌,我們直接劃拉到一起重新洗牌,而不是一張一張地撿起。
首先運行ghost軟件,選擇要進行磁盤整理的分區,選擇卷標windowsXP的分區,然後點擊OK,選擇備份文件的存放路徑,在filename欄中輸入備份的文件名,然後點擊save保存。彈出選擇壓縮比的對話框,選擇fast,開始備份系統。 [1] 
備份完系統後,再依次選擇Local/partition/From image。選擇剛才備份的back.gho文件,然後彈出select source partitiong from image file,點擊LK,選擇要還原的分區,也就是剛才卷標為xp的分區,確認,執行還原任務。
還原完後重啓計算機,打開“磁盤磁片整理程序”選擇剛才還原的分區,單擊分析按鈕,看看是不是數據塊全是連續的了?這個速度比傳統的要快上千倍吧。
參考資料
  • 1.    譯者: 龔奕利 / 雷迎春 .深入理解計算機系統(原書第2版):機械工業出版社,2010年