磁盘优化:NTFS文件系统优化概述

文章作者 100test 发表时间 2008:03:13 13:58:31
来源 100Test.Com百考试题网


前言:

前几天碰巧和几个朋友讨论到了如何最大限度的优化磁盘性能的问题,虽然现在这方面功能强大的工具不少,但是总觉得除了要知道如何运用这些工具外,还是要对一些有关磁盘分区的基本知识有所了解,所以就抽空写了这篇文章来和大家分享。 由于影响NTFS文件系统的性能有很多的因素:比如硬盘簇区的大小,MFT和页面文件的碎片化程度,其所处于硬盘分区的位置,NTFS卷区的压缩,NTFS的卷区来源(比如是否是从FAT卷区转换来的)等。所以说到要对NTFS文件系统的性能进行优化,我们就必须优化所有这些影响NTFS文件系统性能的全局变量。当然还有一些其他的方法比如整理硬盘碎片也可以在一定的限度上改善磁盘的工作性能。

合理定义磁盘簇区的大小

簇区是一个磁盘存储的基本单位。当我们在建立文件时,即使该文件只有一个字节大小,如果是在FAT文件系统上那么系统还是会分配一个簇区来保存该文件。而在NTFS文件系统下,如果文件足够小,那么文件可能就会被保存在MFT主文件表中而不需要分配额外的簇区来保存。如果当文件的大小逐渐增大而超出了第一个簇区的容量,那么系统会自动分配一个额外的簇区来使用。从这里我们可以看到,如果簇区的空间越大,那么浪费的空间也可能越多。但是,磁盘的总体性能会比较好。

下面的表里的数据就是在Windows NT/2000/XP下格式化NTFS分区所用到的默认值

磁盘大小(逻辑卷区) 簇区大小 扇区
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

当我们在格式化磁盘分区时,我们可以在格式化对话框里制定簇区的大小,如:512字节,1, 1 KB, 2 KB, 4 KB, 8 KB, 16 KB, 32 KB, 64 KB或者在使用FORMAT命令时在参数里指定簇区大小。

那么我们需要如何决定簇区的大小呢?最简单的一种方法就是用磁盘的大小(以千字节为单位)来除以文件的总数量。另一种方法则是在格式磁盘分区时根据将要保存的文件类型来做决定,比如如果我们知道自己将会在该分区收录很多比较大的文件,比如avi等,那么建立大一些的簇区可以提高磁盘的工作性能。如果硬盘分区上保存的是比较多的小文件比如网页文件,文本文件等等,那么建立比较小一点的簇区则不会让我们浪费太多的磁盘空间。

注意:如果在磁盘分区上, 有大于4KB的簇区时,那么文件系统将不会支持数据压缩。

MFT主文件表的保留和碎片化

由于MFT保存的是每个分区经常用到的系统文件和索引,所以MFT的性能会对整个分区造成相当大的影响。在默认状况下,NTFS文件系统会保留一部分磁盘的空间作为MFT专用的缓冲区域,其大小通常是磁盘分区大小的 12.5%. 但是,如果硬盘的文件太多,那么MFT的空间将可能超出保留的磁盘空间而出现碎片化。另外,当用户删除文件时,NTFS通常不会使用被删除文件的空间来保存新文件。它只是简单把MFT里的文件记录标记成被删除,同时还是会用新的空间来保存新文件。虽然这样我们可以得到被删除文件的恢复可能性,同时也加重了MFT的碎片化。

当MFT的碎片化越厉害,那么硬盘读取文件数据将花费越多的时间,结果导致系统的性能总体降低。

从Windows NT 4.0 SP4开始,我们就可以通过对注册表的修改来定义MFT区的大小:

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

NtfsMftZoneReservation 的类型是DWORD,它的值可以是从1到4。不同的值将容许你在格式化磁盘时定义MFT分区和磁盘分区的大小比例(12.5%, 25%, 37.5%, 50%)



相关文章


基础英语轻松学:吹出悠闲,吹出情趣
基础英语轻松学:跨越时空的千年回音
妙用HOST:屏蔽网站建立网站映射
让系统及时的通过脚本自动打补丁
磁盘优化:NTFS文件系统优化概述
Cmd.exe更加复杂强大的命令行参数
Windows常用服务简单注释
Vista下最稳定的备份系统方法
防火墙软件在使用中的技巧
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛