Windows 2000下优化NTFS系统

09-22

NTFS简介

NTFS是“新技术文件系统”的缩写。微软推出NTFS文件系统就是为了弥补FAT文件系统的一些不足,其中最大的改进是容错性和安全性能。

容错性

NTFS可以自动地修复磁盘错误而不会显示出错信息。Windows 2000向NTFS分区中写文件时,会在内在中保留文件的一份拷贝,然后检查向磁盘中所写的文件是否与内存中的一致。如果两者不一致,Windows就把相应的扇区标为坏扇区而不再使用它(簇重映射),然后用内存中保留的文件拷贝重新向磁盘上写文件。如果在读文件时出现错误,NTFS则返回一个读错误信息,并告知相应的应用程序数据已经丢失。

安全性

NTFS有许多安全性能方面的选项,可以在本机上和通过远程的方法保护文件、目录。NTFS还支持加密文件系统(EFS),可以阻止没有授权的用户访问文件。

文件压缩

NTFS文件系统带来的另一个好处是支持文件压缩功能,用户可以选择压缩单个文件或整个文件夹。

磁盘限额

磁盘限额功能允许系统管理员管理分配给各个用户的磁盘空间,合法用户只能访问属于自己的文件,Windows 2000中的磁盘限额功能是基于用户和卷的。

优化NTFS的性能

用户可以决定许多影响NTFS卷性能的因素,比较重要的有NTFS卷的类型(SCSI或IDE)、速度(磁盘的RPM)、卷包含的磁盘数量等。除上述因素外,下面的因素也可以影响NTFS卷的性能:

·簇和空间分配单位的大小。

·该卷是直接创建的还是由一个FAT卷转换来的。

·该卷是否使用了NTFS的压缩功能。

·经常访问的文件中的碎片和位置。例如主文件表(MFT)、目录、包含NTFS频繁使用的数据的文件、缓冲文件和频繁使用的用户文件。

簇的大小

根据NTFS卷要存储的文件的平均大小和类型来选择簇的大小。理想情况下,簇的大小要能整除文件大小(最接近的数值),理想的簇大小可以将I/O时间降至最低,并最大限度地利用磁盘的空间。应该注意的是,无论在任何情况下使用大于4KB的簇都会有下述的负面影响:

·磁盘碎片整理工具不能整理这个卷

·不能使用NTFS的文件压缩功能

·浪费的磁盘空间增加

有几种方法都可以判断文件的平均大小,一种方法是从“开始”按钮,选择“运行”,在“打开”框中键入cmd,点击OK,然后在命令行方式下执行chkdsk,用这个卷上的文件数去除已经使用的磁盘空间。另一种方法是使用性能监视器。方法是开始->设置->控制面板->管理工具->性能,然后跟踪逻辑磁盘对象的平均磁盘字节/传输,使用这种方法可以得到更为精确的文件大小的和存储在这个卷上的数据类型。由FAT转换而来的NTFS

从FAT转换到NTFS的卷将失去NTFS的一些性能优点。MFT可能出现碎片,而且不能在根卷上设置NTFS的文件访问权限。

要检查MFT上是否有碎片,可以用如下的方法:开始->程序->附件->系统工具->磁盘碎片整理,对一个驱动器进行分析,然后点击“查看报告”,用鼠标滚动到MFT碎片。

把一个FAT卷转换成NTFS后,簇的大小是512字节,增加了出现碎片的可能性,而且在整理碎片时需要花费更多的时间。基于上述原因,最好在最初的格式化时就把硬盘格式化成NTFS文件系统。

NTFS文件压缩功能

NTFS压缩功能可以对单个文件、整个文件夹或NTFS卷上的整个目录树进行压缩。使用压缩功能将会引起NTFS卷的性能下降,原因是每次访问被压缩的文件时,都需要对它进行解压缩。如果要拷贝一个压缩文件,其过程是:解压缩、拷贝、重新对拷贝的文件进行压缩,大大增加了CPU的处理时间。需要说明的是,NTFS压缩功能在Windows 2000专业版上的效率要高于在Windows 2000服务器版上运行的效率。

可以在浏览器窗口的属性对话框中对文件、文件夹、NTFS卷进行压缩。

碎片整理

当磁盘上出现碎片时,访问一个文件时就需要磁头作更多的运动,它对性能有极大的不良影响。使磁盘上的碎片维持在一个较低的水平是提高NTFS卷性能的最重要的因素。可以经常地运行碎片整理工具来完成这一工作。

Windows 2000的磁盘碎片整理工具使你可以快速对一个卷进行分析,并向你提出是否需要对这个卷进行整理的建议。

禁止非必需的NTFS功能

禁止创建短文件名。NTFS为了保持与MS-DOS和Windows 3.x的兼容,也支持8.3格式的文件名。如果你不想支持这些系统,到注册表中的HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control / FileSystem,将NtfsDisable8dot3NameCreation的值由0改为1。

·禁止最近访问更新。在各个目录之间来回切换时,NTFS将更新最近访问的目录的日期/时间标签,在容量比较大的NTFS卷上,它会降低NTFS卷的性能。在HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control / FileSystem中把NtfsDisableLastAccessUpdate的值由0改为1,就可以禁止自动更新功能,如果没有这个条目,就在注册表中加上它好了。

为主文件表(MFT)保留适当的空间。MFT在NTFS卷中扮演着重要的角色,对其性能的影响很大,系统空间分配、读写磁盘时会频繁地访问MFT,因此MFT对NTFS的卷的性能有着至关重要的影响。NTFS文件系统的开发者在MFT附近预留着一个特定区域,用来减少MFT中的碎片,缺省状态下,这一区域占整个卷大小的12.5%,尽管这个区域能使得MFT中的碎片最少,但它并非总是合适的。要对MFT的空间进行管理,可以在HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control /FileSystem中增加一个类型为REG_DWORD的NtfsMftZoneReservation,它的缺省值是1,其范围是1-4(1表示MFT占整个卷的12.5%,2表示25%,3表示37.5%,4表示50%)。

必须在创建NTFS卷之前改变注册表。对注册表的修改只影响此后建立的NTFS卷,对目前现有的卷没有影响,这些卷还会保持原来的MFT的设置。为MFT分配更多的空间不会影响正常的存储空间,因为一旦正常的文件存储空间满后,NTFS将使用MFT区,有时这也是导致MFT区更容易有碎片的原因。因此我们必须注意用户文件已经占用的存储空间,在卷上保留一定的可用空间,这样MFT就可以有足够的保留空间。

关于NtfsMftZoneReservation的设置,其缺省的12.5%的设置对大多数用户而言已经足够了。以我的使用情况为例,MFT的大小为74,331KB,这个卷上有大约73000个文件,平均的文件大小为111KB。由于卷的大小为9GB,因此MFT的保留空间为1152MB,已经足够用了。