提升NT性能
越来越觉得“瘟酒吧”如鸡肋(除了玩游戏外),于是便进入了NT的世界,加上在系的机房工作的原因,对NT了解渐渐增多,而E文也大有长进(系机房装的是E文NT Server).当在NT的世界摸索了多日后,我终于对NT有了一点点的了解。而“ 不死机”是我对NT的最大的感受,如果你也想进入NT的世界,我为你举杯,毕竟盟友又多了一个。由于NT是为高端所定制的,所以当在普通的计算机上运行NT时,NT的性能问题是不少用户关注的地方,都希望能够在硬件不升级的基础上提高NT的性能,下面就我对NT(以中文NT Server为例,毕竟我们大多的人用的是中文NT NT Server)的使用经历,对NT的性能优化提出一点见解,希望能够有所帮助,也希望能够得到指教。 (一):内存方面 现在的内存价格简直可以和金价相比,而不少的人认为NT必须配置比“瘟酒吧”还要高的内存,真的是这样吗?如果我问你:在其他配置相同的情况下,在NT使用16M内存的计算机的速度快还是32M的快?我想你大概会毫不犹疑的说:当然是使用32M的计算机快,毕竟内存都多了16M。而我以前也是这样的想法,但是当我到了学校的机房后,接触了一些比较“旧”的计算机后,方才发觉在NT下,有的使用16M内存的计算机居然比32M的快,这是为什么呢?是不是觉得我在乱说?众所周知,NT Server内存使用的是32位、平坦、线性地址访问模式,这使NT能够访问高达4G的内存,当应用程序访问内存时,只要指定一个32位的内存地址,这样就克服了64K段模式的限制。但是在一些使用ISA总线的计算机中,NT为了在一定的程度上弥补ISA总线使用双缓冲带来的24位内存地址的限制,对于超过16M的内存是通过的虚拟直接内存访问方法来访问的,这种方法的确不错。但是由于有些计算机的硬件的二级高速缓存体系很差,对于这些计算机来说,16M的内存已经是将它的潜力挖掘尽了,当你为它再增加16M的内存时,计算机却由于无法把内存“吃消”而导致计算机的性能下降,看来“物极必反”在计算机中也有道理。(当然,如果你的计算机是比较新总线的配置(一般使用PCI),内存当然是多多益善,你可不要把64M的换成32M,否则你的“爱鸡”减速或发脾气可不要怪我!)。 在NT中,换页和非换页内存池都由NT 来维护。当应用程序的空间有限时,NT通过换页进程创建虚拟内存,将非活动代码换到虚拟内存中,并将所须的程序装入RAM以满足内存的需要? 称为按需换页.而非换页池供那些不能被剥夺内存的进程使用,每个NIC都得到一块非换页内存,这些内存永不被释放,而对于换页内存来说,当计算机有更高优先级的进程要求内存时,就可以被写到换页文件中。 在NT中,内存是以页来分配的,页的大小由于计算机的cpu不同而不同,对于Pentium以下的计算机页的大小一般为4k,Pentiun2为8k,pagefiles.sys 为虚拟直接内存使用的换页文件。这个文件在你安装时NT,NT自动设置在c:pagfile目录。这个文件在NT中不能被删除,当你在其他的操作系统把它删除后,当你启动NT,NT会自动创建一个新的换页文件。换页文件能够按需增长,但是扩展换页文件会增长换页进程的时间,所以一般不要增大换页文件。换页文件的大小按照系统的RAM加上12M,最低的要求为22M。当然,如果你的硬盘的空间小于总的RAM,换页文件的默认大小等于可用的自由空间。当然如果你的RAM能够满足操作系统和必须的应用程序的要求,你就根本没有必要把换页文件设置很大,拥有64M以上内存用户可以把换页文件设置为一个很小的值,但是你必须把最大换页文件设置为足够的大,否则在你运行3dmax等对内存要求很大的软件时,内存可能无法满足所需而出错。对于一般的可执行程序来说,使用22M的换页文件设置已经足够,但是由于NT 要对RAM中的所有东西进行备份,当NT需要更大的RAM空间时,它必须能够将代码和数据换到换页文件或原始 的可执行文件中,如果NT 做不到这一点,它就会提示“内存不足”的错误,所以为了将更好的提高应用程序的性能,换页文件最好设置为40M。如果你有两个硬盘,这就好办了,你可以将换页文件切分到各个硬盘中,这样两个硬盘就可以同时访问换页文件,而使访问速度加快了一倍,对于硬盘转速不同的,应该把换页文件放在转速快的硬盘上。或许有的人会说:我的两个硬盘的转速相同,如果我在各个不同的分区中进行换页文件的切分,当三、四个分区同时进行时换页文件切分,那速度岂不是快很多?设想的确不错,但是实际行不通。因为这种方法一般由于逻辑驱动器过小而使用,当你的逻辑驱动器空间足够时,这样做却不能提高硬盘访问换页文件的能力。 (二):SERVER 服务 NT SERVER的优先级设置有三项:Best foreground application response: 前台进程的优先级最高,基本优先级是九级Foreground application more responsive: 前台进程基本优先级比后台的应用程序高,是八级Foreground and Background Equally Responsive:前台和后台的基本优先级相同,为七级。 NT SERVER的默认优先级是“Best foreground application responsetime”,我们在NT 中所启动的大部分应用程序都是按照优先级类别运行,前台进程的基本优先级是九级,而后台的应用程序一般为七级。在NT中,为了达到尽快对用户作出响应,当前台的应用程序长时间占用cpu 时,NT将锁住所有的低优先级的应用程序而使它们无法被执行。我们可以打开“控制面板”的“系统”,将“Tasking”设置为“Foreground and Background Equally Responsive”。 进程和线程这两种对象类型关系特别紧密。 Windows NT 进程在程序运行时创建。进程既可能是应用程序(比如 Microsoft Word 或 Corel Draw)、服务(比如 Event Log 或 Computer Browser),也可能是子系统(比如print spooler 或 POSIX)。除了可执行程序外,每个进程还包含一组虚拟内存地址和至少一个线程。线程是进程内的对象,它执行程序指令。它们允许进程内的并发运行,启动一个进程在不同的处理器上同时执行该程序的不同部分。系统运行的每个线程作为线程对象类型的实例,并用与父进程的关系来标识。 当我们安装应用程序时,我们应该指派进程和线程的运行的优先级,由于SERVER 服务同活动前台进程竞争,所以在设置时,服务优先级应被设置和前台进程优先级相同。一般来说,工作站设置的前台进程优先级比SERVER服务高,可以打开“控制面板”的“系统”,对“Tasking”进行调整,可以调整SERVER服务优先级。而也可以在相对前台进程优先级的基础上,改变服务线程的优先级,降低前台应用程序的响应时间,达到提高SERVER服务的优先级提高的目的,方法如下: (1):启动“regedt32” (2):展开“HKEY-LOCAL-ACHINESYSTEMCurrentControlSetservicesLanmanServerParameters”,从“编辑”菜单中,选择“添加数值”,输入下面的值: 数值名称:ThreadPriority 数值类型 :REG-DWORD 数值:$#@60; 0 Process runs at background Priority 1 SERVER threads Priority equal to foreground 2 SERVER threads Priority higher than foreground 15 SERVER threads at real-time Priority (3):重起计算机。 对于SERVER 服务来说,往往由于和高速缓存的交互而导致系统的性能下降,我们可以对SERVER 服务器和内存的使用进行调整。进入“控制面板”的“服务”,从“服务器”的“最大化文件共享吞吐量”改为“平衡”,如下图:这将使NT在对大的文件拷贝使的速度有大的提高。然后重起计算机即可。 |