如何优化虚拟内存Word格式.docx
《如何优化虚拟内存Word格式.docx》由会员分享,可在线阅读,更多相关《如何优化虚拟内存Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
2.打开UltraMDA
在设备管理其中选择IDEATA/ATAPI控制器中的“基本/次要IDE控制器”,单击鼠标右键选择“属性”,打开“高级设置”页。
这里最重要的设置项目就是“传输模式”,一般应当选择“DMA(若可用)”,如图2。
3.配置恢复选项
WindowsXP运行过程中碰到致命错误时会将内存的快照保存为一个文件,以便进行系统调试时使用,对于大多数普通用户而言,这个文件是没有什么用处的,反而会影响虚拟内存的性能。
所以应当将其关闭。
在“我的电脑”上单击鼠标右键,选择“属性->
高级”,在“性能”下面单击“设置”按钮,在“性能选项”中选择“高级”页。
这里有一个“内存使用”选项,如果将其设置为“系统缓存”,WindowsXP将使用约4MB的物理内存作为读写硬盘的缓存,这样就可以大大提高物理内存和虚拟内存之间的数据交换速度。
默认情况下,这个选项是关闭的,如果计算机的物理内存比较充足,比如256M或者更多,最好打开这个选项。
但是如果物理内存比较紧张,还是应当保留默认的选项,如图3。
页面文件的设置
页面文件的大小计算
对于不同的计算机而言,页面文件的大小是各不相同的。
关于页面文件大小的设置,有两个流传甚广的“公式”,“物理内存X2.5”或者“物理内存X1.5”。
这两种计算方法固然简便,但是并不适用于所有的计算机。
设置页面文件大小最准确的方法是看看计算机在平常运行中实际使用的页面文件大小。
通过WindowsXP自带的日志功能可以监视计算机平常使用的页面文件的大小,从而进行最准确的设置,具体步骤如下。
一、在“我的电脑”上单击鼠标右键,选择“属性->
高级”,单击“性能”下面的“设置”按钮,然后选择“高级”页,单击“虚拟内存”下方的“更改”按钮。
选择“自定义大小”,并将“起始大小”和“最大值”都设置为300M,这只是一个临时性的设置。
设置完成后重新启动计算机使设置生效。
二、进入“控制面板->
性能与维护->
管理工具”,打开“性能”,展开“性能日志和警告”,选择“计数器日志”。
在窗口右侧单击鼠标右键选择“新建日志设置”,如图4。
三、随便设置一个日志名称,比如“监视虚拟内存大小”,如图5。
四、在“常规”页中单击“添加计数器”按钮,如图6。
在“性能对象”中选择“PagingFile”,然后选中“从列表选择记数器”下面的“%UsagePeak”,并在右侧“从列表中选择范例”中选择“_Total”。
最后单击“添加”和“关闭”按钮,如图7。
五、别忘了记住“日志文件”页中的日志文件存放位置和文件名,我们后面需要查看这个日志来判断WindowsXP平常到底用了多少虚拟内存,在这个例子中,日志文件被存放在D:
\Perflog目录下,如图8。
另外还要设置“日志文件类型”为“文本文件”,这样便于阅读,如图9。
这时你可以看到刚才新建的日志条目前面的图标变成了绿色,这表明日志系统已经在监视虚拟内存了。
如果图标还是红色,你应该单击鼠标右键选择“开始”来启动这个日志。
过一段时间后打开这个CVS文件,我们可以看到如下内容的条目,如图10。
这个日志文件记录这一段时间中页面文件的使用情况,注意这里的单位是%,而不是MB。
通过简单的计算,我们就可以得到页面文件的最小尺寸,公式是“页面文件尺寸X百分比”。
比如这个例子中,虚拟内存最大的使用比率是31%,300MBX31%=93MB,这个值就是虚拟内存的最小值(注意,300MB是前面的设置的临时值)。
如果物理内存较大,可以考虑将页面文件的“起始大小”和“最大值”设置为相等,等于上一步中计算出来的大小。
这样硬盘中不会因为页面文件过渡膨胀产生磁盘碎片,其副作用是由于“最大值”被设置的较小,万一偶然出现虚拟内存超支的情况,可能会导致系统崩溃。
设置页面文件
现在回到“虚拟内存”的设置对话框中选择自定义大小并按照上面的计算结果分别设置“初始大小”和“最大值”,如图11。
这里我们将“初始大小”设置为91M,而将“最大值”设置成了200M,这样比较保险。
对页面文件进行碎片整理
WindowsXP运行时需要大量访问页面文件,如果页面文件出现碎片,系统性能将会受到严重影响,而且会缩短硬盘的使用寿命。
所以我们很有必要对页面文件定期进行碎片整理。
不过别忘了,页面文件是系统关键文件,WindowsXP运行时无法对其进行访问。
所以对它进行碎片整理并不是一件容易的事情。
我们有两种方案可以选择,一是安装Windows双系统,然后启动另外一个Windows对WindowsXP所在的分区进行碎片整理。
二是使用专门的工具软件,比如SystemFileDefragmenter等。
s
Windows2000/XP/2003:
如何优化虚拟内存
79
∙
∙1
∙2
∙3
∙4
∙5
(0votes,average0outof5)
WrittenbyAdministrator
Monday,31December200700:
50
内存调节是系统管理员比较重要的一项任务,有大容量的内存当然不错,但是有时候它也会让我们烦恼。
下面我来谈谈如何在Windows2000/XP/2003里管理内存。
什么是虚拟内存(VirtualMemory)?
在32位计算机里,内存地址有32位长度,因此,32位计算机有4GB的内存访问限制,2的32次方=4,294,967,296。
Intel386及之后的处理器,能寻址4GB的内存,每个进程能分配到4GB虚拟内存中的某个地址空间,而不管物理内存有多大。
同时每个进程独立于其它的进程,并拥有自己的4GB地址空间。
也就是说,4GB的访问限制是基于每个应用程序的,而不是由所有应用程序的总和所限制。
这就意味着计算机上的物理内存与内存地址空间无关,如果计算机有256MB的物理内存,那么内存地址空间仍然有4GB,如果计算机有8GB物理内存,那么内存地址空间依旧只有4GB。
程序是不允许直接访问物理内存的,当一个程序请求更多的内存,Windows便映射物理内存到进程的地址空间中。
按照程序所需要运行的尽可能多的内存,计算机硬件总是会满足,只有当前正在运行(active)的那部分被加载到物理内存中(RAM),Windows维护一些页面表,以便跟踪,应用程序只能看到虚拟内存地址。
处理器自己能从指令中转换(映射)这些虚拟地址到相对应的物理内存中去,处理器管理这些映射页表,每个页表为4KB。
为何需要优化页面文件(PageFile)?
当计算机运行时内存不足,就需要优化页面文件,当所有的物理内存被使用,Windows便开始利用硬盘,就好像有额外的RAM一样。
这就是为什么有Pagefile页面文件,我们也称之为交换文件Swapfile。
y因为物理内存的访问速度远快于硬盘,无论何时计算机为减轻物理内存的压力开始使用页面文件,我们便能明显的感觉到计算机性能的下降。
最有效的解决办法就是增加足够的物理内存,来避免频繁的从物理内存到硬盘之间的页面交换。
这也意味着应用程序使用内存数量的限制实际上就是物理内存加上页面文件大小。
你需要多大的交换空间?
这依赖于你有多大的物理内存和使用程序的多少。
通常我们需要物理内存的1.5倍,除非系统的负载更多。
有大容量内存的计算机上能否关闭虚拟内存?
严格说,虚拟内存是时刻在运行且不能被关闭,那么“让系统不使用虚拟内存”又会导致什么结果?
答案是这样做会浪费一部分内存,原因是当程序请求分配虚拟内存空间时,可能会请求远比自身运行所需的多得多的内存(也许会超过100MB),这些地址由系统来分配,如果有可用的页面文件,系统就分配给它,如果没有,他们将会被分配到物理内存(RAM),然后锁住这些空间(无论它是否需要使用)。
如何具体的优化?
下面介绍一些具体的方法:
最需要也是最重要的就是增加物理内存RAM。
当应用程序运行时,系统性能就会下降,增加足够的物理内存能保证提供足够的程序所需的内存,而不是频繁的增加页面文件。
把页面文件从系统启动分区移到另外的单独的硬盘上。
如果你这么做,你应该在C盘(通常是系统启动分区)留一些页面文件,可以设置成初始值2MB,最大值50MB,我觉得差不多了,这样做可以应急。
如果没有这个页面文件,某些情况下,系统会无视已有的页面文件配置,认为当前没有页面文件或者会在C盘下自行的建立一个很大容量的页面文件。
将页面文件所在的分区格式化成NTFS。
簇大小4Kb(默认设置)。
将页面文件的初始值设置得和最大值一样大。
尽管这样做会占用更多的硬盘空间。
我们不想让页面从一开始很小,慢慢的不断增大。
写入大文件时(也需要很大的页面文件),硬盘非常的忙碌,会导致系统性能下降,因此,让页面文件不断的增长,很可能会产生页面文件碎片,这样会更加重硬盘的负担。
不要在同一个硬盘上的不同分区设置多个页面文件。
如果有RAID-0阵列,用它来放置页面文件。
不要把页面文件存储在容错磁盘上。
比如镜像卷RAID-1,或者RAID-5卷,页面文件不需要容错。
如果你使用WindowsXP,开启了FastUserSwitching功能,需要特殊考虑。
当用户处于非活动状态,会需要更多的页面文件,到底需要多大的页面文件很难计算,有一种观点是初值可以设置成物理内存RAM的一半。
最好有一块单独的硬盘用于存放页面文件,不要在有系统启动分区的硬盘上存放页面文件,否则不会提高系统性能,硬盘最好是连接在独立的磁盘控制器上。
或者也可以把页面文件放在多个硬盘上,不必担心不同硬盘的速度差异,Windows2000/XP/2003会自动选择最快的那个硬盘存放页面文件。
页面文件PageFile应该设为多大?
让Windows自己选择最佳的页面文件大小,推荐初值值为物理内存的1.5倍,最大值为物理内存的3倍。
举例,如果你有256MB的物理内存,页面文件的最小值为384MB,最大值为1152MB。
当前这只是一种偷懒的办法,更为精确的方法是你自己监视系统,看看有多少物理内存和虚拟内存在使用。
观察一个星期,看看系统在这期间用过最大数量的内存,如果你看到这个最大值从未接近你的物理内存,那就不用担心了,你的页面文件还没有使用过(这个说法不完全正确,因为系统总是为内部的操作而使用页面文件,一般用5%-10%)。
相反,如果你看到期间系统使用的内存最大值已经超过了物理内存,那么就意味着系统已使用了页面文件。
我的系统使用了多少页面文件?
你应该首先计算出正在使用的内存数量,有多少存储在硬盘?
使用用系统监视器SystemMonitor
在系统监视工具里使用%UsagePeak计数器。
具体看图片
http:
//www.petri.co.il/images/perfmon.jpg
//www.petri.co.il/images/perfmon1.jpg
//www.petri.co.il/images/perfmon2.jpg
//www.petri.co.il/images/perfmon3.jpg
使用任务管理器
看图片http:
//www.petri.co.il/images/taskmgr.jpg
物理内存这一块,总数为785904K,就是安装的物理内存,当前使用了多少RAM?
372924K,差不多物理内存的一半,OK,没有问题。
系统调用了多少内存?
来看看CommitChargesection,总数(Total)为429604K。
自上次启动后系统调用内存的最大值为多少?
来看峰值为453168K,使用量接近峰值,不过这离物理内存还差很远,因此当前系统ok。
微软MVPBillJames开发了一个工具,名为WinXP-2K_Pagefile,专门用来监视当前使用的页面文件值,你可以从这里(
其它设置
注册表设置
有时候系统无法保存当前设置,可以如下解决。
1、运行注册表regedt32.exe(注意不是regedit.exe)
2、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement
3、双击PagingFiles,比如显示D:
\pagefile.sys700700,第一个是页面文件的位置,第二个是最小值,第三个是最大值。
4、修改完毕后,重启计算机。
远程改变页面文件大小和位置
用resourcekit工具REG.EXE。
语法为:
C:
\>
regupdate"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PagingFiles"
="
"
\\
举例:
\pagefile.sys700700"
\\puter
页面文件碎片整理
可以从这里下载整理工具
组策略设置
创建一个页面文件
ComputerConfiguration\WindowsSettings\SecuritySettings\LocalPolicies\UserRightsAssignment
可以设置哪个用户或组可以创建页面文件、该变其大小,默认是管理员。
关机时清除页面文件
ComputerConfiguration\WindowsSettings\SecuritySettings\LocalPolicies\SecurityOptions
可以设置关机时页面文件是否被清除。
清除页面文件可以保证页面文件里的敏感信息不被未授权人利用。
虚拟内存的错误提示
有时候系统会提示虚拟内存不够,或者在启动程序时遇到提示缺少内存,可能由以下原因。
1、页面文件的最大值设置过小,或者页面文件所在的硬盘或分区空间不够。
2、页面文件损坏,可能由非正常关机引起,解决办法是把虚拟内存设置成没有页面文件,重启计算机,然后再次设置正确的页面文件。
3.页面文件存在在另一个硬盘上,但是却没有在C盘(系统启动分区)下设置一个小的页面文件。
4、第三方软件错误,如果在关机时候出现提示,可能和诺顿的LiveUpdate升级程序有关,从下载修补程序。
如果在开机时出现提示,而且计算机主板使用的是Intel的芯片组,可能时候Intel的ApplicationAccelerator引起,解决办法是删除它,安装一个新版本。
5、也可能是IDE硬盘的驱动程序引起,在设备管理器里,删除IDEATA/ATAPIcontrollers(主控制器),重启计算机让系统自己识别并安装。
6、在NFTS的文件系统里,页面文件所在的分区必须有足够的权限,应该是分配FullControl。