关于Windows Server 2003预读取功能的开启

这个功能在XP上是有的,2003也有.

但是我发现重装系统后,2003就没了~~~~~真怪........

于是按关键字"预读取"来搜索,只找到了早已知道的EnablePrefetcher注册表项设置方法.

说EnablePrefetcher设置为0是关闭,1是预读系统程序,2是预读其它程序,3是两者都读.

可无论怎么设置,Prefetch目录下就没有那些PF文件出现.......真怪了.

虚拟机中的XP,2003都是正常的,真是怪了.

于是把C盘GHOST保存一下,塞张2003数据中心版的盘,装上去.

也怪,新装的系统就没问题,但我用原系统启动,却真的没有.

无奈中只有恢复原C盘,上网求助.

想了半天,还是去微软官方讨说法吧.

于是就发了个帖子:

http://forums.microsoft.com/china/ShowPost.aspx?PostID=4255293&SiteID=15&mode=1

版主很快给了回复,但是我运行那个"rundll32.exe advapi32.dll,ProcessIdleTasks"后没用,重启也没用.

而且Prefetch目录下也没有那个layout.ini.

不过我又得到了一个新的关键字,layout.ini.

搜索后,得到一篇专门谈预读取机制的文章:

http://hi.baidu.com/passedbylove/blog/item/1a7fbc29ead28afd99250ae8.html

从这里面的说明里,才看出这个预读取功能的几个要点:

一,prefetcher功能依赖计划任务服务.
这也是我一直没有成功恢复预读取功能的重要原因------我禁用了计划任务服务(Task Scheduler)

二,预读取功能的开关在以下键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
此分支下的EnablePrefetcher项,选值为0到3.

三,恢复layout.ini文件到prefetch目录,需要运行版主提到的命令:
rundll32.exe advapi32.dll,ProcessIdleTasks

在计划任务开启的情况下,可以马上恢复layout.ini文件(我确实没有重启,就正常了,应该要以上几个条件同时满足吧)
不过我感觉这个文件与预读取功能没啥关系,应该是与那个自动碎片整理有关.

四,重启三次,没道理......我这里重启是为了让注册表的改动生效,一次即OK.

原因终于清楚了,关键就是第一条.

第二条已经早就知道了,第三条与此功能貌似无关(清楚原理的朋友还请解说一下).

好,又解决一个问题......爽~~~~

评论: 2 | 引用: 0 | 查看次数: 1422
admin
admin[2009-01-03 01:14 AM | ]
我也由于不知道计划任务与预读取功能的关系,一直就关闭它的

一直以为2003是没这功能的,因为硬盘性能本身就已经很强了.

结果在虚拟机里装2003时才发现有.....于是才折腾了这个出来:)
樱木花盗
樱木花盗[2008-12-31 05:01 PM | ]
感谢老马,我又进步了。纠正了我一个误区。。。原来计划任务是有用的。。。