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