SetPageFile.exe 1.1版本正式发布!!
新版本支持无盘客户机操作系统为 Windows 2000以及Windows XP!
无论您使用的是什么样的无盘系统
只要您的无盘客户机操作系统为Windows 2000或是Windows XP
您就可以使用SetPageFile.exe来分离页面文件到无盘服务器外的其它硬盘上,显著减轻无盘服务器硬盘的读写,加快页面文件的读写/执行速度,提升系统性能!
无盘服务器的读写分离,很早就被提出来了。几乎所有的商业无盘系统都会将读写分离作为提高无盘运行速度的有效途径。可即使做了读写分离,系统性能也并没有得到显著的提升。为什么?因为他们分离错了!该分离的没有分离,而不该分离的却又分离了!
现在市面上的无盘读写分离,都是将系统分区同游戏分区分开二个磁盘。殊不知,系统分区的磁盘读写负荷不知要大过游戏分区多少倍!为什么这么说呢?程序员都知道,程序一运行就会将自身完全载入内存了。虽然现在的游戏几乎没有不超过G大小的,但是,游戏主程序加上其需要调用的DLL文件,可能加起来也就才几十M而已,甚至更少!(大家可以运行一个大型游戏来看看它的内存使用量)。那另外那些几乎超过游戏总大小百分之九十九的东西是什么呢?不用说大家都知道,是游戏必不可少的资源文件,比如:地图、图像、声音等等。而游戏一般进去都会有等待载入的画面,这里等待载入的东西,就是那些资源文件。而这些资源文件载入后放在哪里了?即使你系统有NG的内存容量,也不要指望游戏会将它放全部放在内存里。(不信你现在又可以看看游戏所占用内存使用量)。那是放哪里了?那么多宠大的游戏资源文件是放在哪里了?去问个游戏程序员吧(问我也行啊,俺也是。。)。他会告诉你,放在页面文件里了!!! 千万不要以为,游戏是边运行边从硬盘读取文件的,游戏为了加快运行速度,都是将需要运行的文件预先加载入内存或是虚拟内存中的!而更多的是加载到虚拟内存即页面文件中,即使是几G的内存,也是摆设。
感觉到恐怖吧!你以为你的系统分区磁盘几乎没做什么事,其实它是最累的!游戏的读取只需要进行一次,就是说载入一次,但是载入以后的东西是放在页面文件中的,游戏对页面文件的读取是非常频繁的!可现在的无盘全弄反了,将系统分区磁盘弄成个普通IDE,将游戏分区弄成阵列。好武器没有用到该用的地方。
玩游戏会卡?几乎每一种技术的无盘系统,玩游戏都会觉得有卡的时候。看看你客户机的页面文件大小吧,最小都有二三百M吧,几十台机每台都来个几百M的读写量,呵呵,你想想,你那个又要做系统又要放页面文件而且“待遇又不好”的磁盘,它磁头会忙成什么样子!
我已经分析的很清楚了,该分离的应该是页面文件!而游戏可以分,也可以不分。对于本身带有缓冲功能的无盘系统,大型游戏应该都放在无盘服务器上。而不常用的硬盘游戏,网络游戏就可以放在网络的其它机上面。(共享或是虚拟磁盘方式)。
打开多个IE卡,最小化IE卡,启动QQ卡,退出游戏还是卡。这些都是对页面文件大量读写的时候。将页面文件分离出来吧!专门弄个硬盘提供页面文件的读写。这样,系统更稳定、游戏更流畅!
怎么解决这个恼人的页面文件?暂时的方法,你可以升级您的系统分区的磁盘硬件,会有点改善,但解决不了根本。因为页面文件是同系统分区放在一个磁盘里面的,而用户与操作系统的交互是非常频繁的,就是说,依现在的磁盘读写速度,又要满足页面文件的读写,又要不影响用户同系统的交互,是做不到的。
另外一个解决方法,就是使用SetPageFile.exe软件。
解决方案如下:
一、页面文件读写服务器
我们需要一台单独的机器,为客户机产生的页面文件提供读写操作。我们把客户机所有的页面文件都放在这台机器上,因为分离了页面文件,无盘服务器的磁盘读写量大大降低,客户机卡机无响应现象消失。
页面文件读写服务器上需要安装ISCSI服务器程序,为每台客户机虚拟一个磁盘分区。而我们的页面文件就存放于这个磁盘分区中。
二、将页面文件设置到虚拟分区中
在客户机中,首先应当安装ISCSI客户端程序。做了相应设置以后,使之连上ISCSI服务器。这时客户机会多出一个磁盘分区出来。紧接着,就是要将页面文件设置到这个分区中,使之读写页面文件不在无盘服务器中进行。但一般情况下的设置是起不到分离作用的。原因就是ISCSI的虚拟分区在系统完全启动以后才能够出现。但是,系统的页面文件在此之前就已经进行了设置。即使你已经将页面文件设置到了ISCSI的虚拟分区,但是Windows操作系统设置页面文件时虚拟的ISCSI分区还没有出现,所以Windows操作系统直接将页面文件设置在了C盘,而达不到分离的效果。
软件使用介绍:
软件需要做的功能就是要将页面文件设置到虚拟分区中。软件作为系统服务运行,不需要登陆操作系统。当页面文件设置成功以后,服务自动停止并且退出。可以在注册表路径[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management]对软件配置。
PageFileInitialSize :设置页面文件的初始化值,即最小值
PageFileMaximumSize:设置页面文件的最大值
SetPageFileToDisk:将页面文件设置到哪个磁盘分区
无需手工建立这些值,程序会自动建立,默认将在E盘建立页面文件,最小值384M,最大值768M。
在服务管理窗口中
当设置页面文件成功以后,服务即会自动中止。
虚拟内存状态
左边窗口显示已经设置的页面文件大小。因为虚拟ISCSI分区需要Windows启动完成以后才出现,所以我们需要把[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management]路径下的PagingFiles值设为空值。这样就可以保证Windows不自动设置页面文件,而由SetPageFile.exe来设置页面文件。所以在右边的窗口中每个磁盘分区均显示为无分页文件。但实际上SetPageFile.exe已经设置了分页文件,大小可以在左边窗口看到。只是为了保证Windows不自动设置页面文件,SetPageFile.exe并没有更新PagingFile的值。
SetPageFile.exe安装,在Cmd.exe窗口中,运行SetPageFile.exe /install。
支持Windows 2000/XP系统:
首先感谢那么多的无盘爱好者对我的肯定与支持!SetPageFile.exe1.0推出来时,仅仅只是支持XP系统。但太多网友的机器配置是不能够装XP系统的(我的网吧256M内存都上XP。测试了一个月了,没有问题)。都急切的盼望我的软件能够支持Windows 2000系统。其实,单从SetPaegFile.exe这个软件来说,运行是支持Windows 2000系统的。但是2000系统同XP系统不同,如果2000系统将PagingFile键值设成空值(即将页面文件全部设置成0),在启动时,2000会弹出一个警告框,提示虚拟内存页面文件太小,需要按确定才可以进入系统,并且还会自动在System32目录下面生成一个20M的临时页面文件。如下图所示:
而如果不让2000系统弹出虚拟内存太小的提示,并且不自动设置20M的页面文件,就可以使用SetPageFile.exe来设置页面文件了。
经过夜以继日的努力,在反汇编了Windows 2000的N个内核文件以后,终于被我找到了系统自动设置页面文件的地方。然后又是不断的修改、测试,在稳定的运行了接近一星期以后,现在宣布SetPageFile.exe正式支持Windows 2000系统。
现在可以让系统不自动设置页面文件,而改由SetPageFile.exe文件设置。如下面所示:
如上图所示,系统不再自己设置页面文件。
在系统不再主动设置页面文件后,我们就可以将页面文件设置到网络中的其它计算机上面了。
测试结果:不在卡机是理所当然了,最重要的游戏速度有了提升。(因为页面文件的I/O处理速度加快)
在支持Windows 2000系统的同时,根据网友要求,还改进了SetPageFile.exe,自动修改PageFile键值为空,减去手工设置的麻烦。现在SetPageFile.exe的正式版本为1.1。
希望SetPageFile1.1 For Windows 2000/XP的推出,能够让广大的无盘爱好者受益无穷。
无盘胜过有盘,不是吹牛,是事实!
本文来源:网上收集 作者:未知