磁盤優(yōu)化:NTFS文件系統(tǒng)優(yōu)化概述

字號:

前言:
     前幾天碰巧和幾個朋友討論到了如何限度的優(yōu)化磁盤性能的問題,雖然現(xiàn)在這方面功能強(qiáng)大的工具不少,但是總覺得除了要知道如何運(yùn)用這些工具外,還是要對一些有關(guān)磁盤分區(qū)的基本知識有所了解,所以就抽空寫了這篇文章來和大家分享。 由于影響NTFS文件系統(tǒng)的性能有很多的因素:比如硬盤簇區(qū)的大小,MFT和頁面文件的碎片化程度,其所處于硬盤分區(qū)的位置,NTFS卷區(qū)的壓縮,NTFS的卷區(qū)來源(比如是否是從FAT卷區(qū)轉(zhuǎn)換來的)等。所以說到要對NTFS文件系統(tǒng)的性能進(jìn)行優(yōu)化,我們就必須優(yōu)化所有這些影響NTFS文件系統(tǒng)性能的全局變量。當(dāng)然還有一些其他的方法比如整理硬盤碎片也可以在一定的限度上改善磁盤的工作性能。
     合理定義磁盤簇區(qū)的大小
     簇區(qū)是一個磁盤存儲的基本單位。當(dāng)我們在建立文件時,即使該文件只有一個字節(jié)大小,如果是在FAT文件系統(tǒng)上那么系統(tǒng)還是會分配一個簇區(qū)來保存該文件。而在NTFS文件系統(tǒng)下,如果文件足夠小,那么文件可能就會被保存在MFT主文件表中而不需要分配額外的簇區(qū)來保存。如果當(dāng)文件的大小逐漸增大而超出了第一個簇區(qū)的容量,那么系統(tǒng)會自動分配一個額外的簇區(qū)來使用。從這里我們可以看到,如果簇區(qū)的空間越大,那么浪費(fèi)的空間也可能越多。但是,磁盤的總體性能會比較好。
     下面的表里的數(shù)據(jù)就是在Windows NT/2000/XP下格式化NTFS分區(qū)所用到的默認(rèn)值
    磁盤大小(邏輯卷區(qū)) 簇區(qū)大小 扇區(qū)
    512 MB 或者更小 512 bytes 1
    513 MB - 1,024 MB (1 GB) 1,024 bytes (1 KB) 2
    1,025 MB - 2,048 MB (2 GB) 2,048 bytes (2 KB) 4
    2,049 MB 和更大 4,096 bytes (4 KB) 8
     當(dāng)我們在格式化磁盤分區(qū)時,我們可以在格式化對話框里制定簇區(qū)的大小,如:512字節(jié),1, 1 KB, 2 KB, 4 KB, 8 KB, 16 KB, 32 KB, 64 KB或者在使用FORMAT命令時在參數(shù)里指定簇區(qū)大小。
     那么我們需要如何決定簇區(qū)的大小呢?最簡單的一種方法就是用磁盤的大?。ㄒ郧ё止?jié)為單位)來除以文件的總數(shù)量。另一種方法則是在格式磁盤分區(qū)時根據(jù)將要保存的文件類型來做決定,比如如果我們知道自己將會在該分區(qū)收錄很多比較大的文件,比如avi等,那么建立大一些的簇區(qū)可以提高磁盤的工作性能。如果硬盤分區(qū)上保存的是比較多的小文件比如網(wǎng)頁文件,文本文件等等,那么建立比較小一點(diǎn)的簇區(qū)則不會讓我們浪費(fèi)太多的磁盤空間。
     注意:如果在磁盤分區(qū)上, 有大于4KB的簇區(qū)時,那么文件系統(tǒng)將不會支持?jǐn)?shù)據(jù)壓縮。
     MFT主文件表的保留和碎片化
     由于MFT保存的是每個分區(qū)經(jīng)常用到的系統(tǒng)文件和索引,所以MFT的性能會對整個分區(qū)造成相當(dāng)大的影響。在默認(rèn)狀況下,NTFS文件系統(tǒng)會保留一部分磁盤的空間作為MFT專用的緩沖區(qū)域,其大小通常是磁盤分區(qū)大小的 12.5%. 但是,如果硬盤的文件太多,那么MFT的空間將可能超出保留的磁盤空間而出現(xiàn)碎片化。另外,當(dāng)用戶刪除文件時,NTFS通常不會使用被刪除文件的空間來保存新文件。它只是簡單把MFT里的文件記錄標(biāo)記成被刪除,同時還是會用新的空間來保存新文件。雖然這樣我們可以得到被刪除文件的恢復(fù)可能性,同時也加重了MFT的碎片化。
     當(dāng)MFT的碎片化越厲害,那么硬盤讀取文件數(shù)據(jù)將花費(fèi)越多的時間,結(jié)果導(dǎo)致系統(tǒng)的性能總體降低。
     從Windows NT 4.0 SP4開始,我們就可以通過對注冊表的修改來定義MFT區(qū)的大小:
     Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
     NtfsMftZoneReservation 的類型是DWORD,它的值可以是從1到4。不同的值將容許你在格式化磁盤時定義MFT分區(qū)和磁盤分區(qū)的大小比例(12.5%, 25%, 37.5%, 50%)