微点交流论坛
» 游客:  注册 | 登录 | 帮助

 

作者:
标题: 虚拟内存的设置和相关问题的解决方法
反黑先锋
版主

RUNWAY


积分 2901
发帖 2857
注册 2006-6-17
#1  虚拟内存的设置和相关问题的解决方法

 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。

  当系统运行时,先要将所需的指令和数据从外部存储器(如硬盘、软盘、光盘等)调入内存中,CPU再从内存中读取指令或数据进行运算,并将运算结果存入内存中,内存所起的作用就像一个“二传手”的作用。当运行一个程序需要大量数据、占用大量内存时,内存这个仓库就会被“塞满”,而在这个“仓库”中总有一部分暂时不用的数据占据着有限的空间,所以要将这部分“惰性”的数据“请”出去,以腾出地方给“活性”数据使用。这时就需要新建另一个后备“仓库”去存放“惰性”数据。由于硬盘的空间很大,所以微软Windows操作系统就将后备“仓库”的地址选在硬盘上,这个后备“仓库”就是虚拟内存。在默认情况下,虚拟内存是以名为Pagefile.sys的交换文件保存在硬盘的系统分区中。


  手动设置虚拟内存

  在默认状态下,是让系统管理虚拟内存的,但是系统默认设置的管理方式通常比较保守,在自动调节时会造成页面文件不连续,而降低读写效率,工作效率就显得不高,于是经常会出现“内存不足”这样的提示,下面就让我们自已动手来设置它吧。

  ①用右键点击桌面上的“我的电脑”图标,在出现的右键菜单中选择“属性”选项打开“系统属性”窗口。在窗口中点击“高级”选项卡,出现高级设置的对话框.

  ②点击“性能”区域的“设置”按钮,在出现的“性能选项”窗口中选择“高级”选项卡,打开其对话框。

  ③在该对话框中可看到关于虚拟内存的区域,点击“更改”按钮进入“虚拟内存”的设置窗口。选择一个有较大空闲容量的分区,勾选“自定义大小”前的复选框,将具体数值填入“初始大小”、“最大值”栏中,而后依次点击“设置→确定”按钮即可,最后重新启动计算机使虚拟内存设置生效。

  建议:可以划分出一个小分区专门提供给虚拟内存、IE临时文件存储等使用,以后可以对该分区定期进行磁盘整理,从而能更好提高计算机的工作效率。



 量身定制虚似内存

  1.普通设置法

  根据一般的设置方法,虚拟内存交换文件最小值、最大值同时都可设为内存容量的1.5倍,但如果内存本身容量比较大,比如内存是512MB,那么它占用的空间也是很可观的。所以我们可以这样设定虚拟内存的基本数值:内存容量在256MB以下,就设置为1.5倍;在512MB以上,设置为内存容量的一半;介于256MB与512MB之间的设为与内存容量相同值。

  2.精准设置法

  由于每个人实际操作的应用程序不可能一样,比如有些人要运行3DMAX、Photoshop等这样的大型程序,而有些人可能只是打打字、玩些小游戏,所以对虚拟内存的要求并不相同,于是我们就要因地制宜地精确设置虚拟内存空间的数值。

  ①先将虚拟内存自定义的“初始大小”、“最大值”设为两个相同的数值,比如500MB;

  ②然后依次打开“控制面板→管理工具→性能”,在出现的“性能”对话框中,展开左侧栏目中的“性能日志和警报”,选中其下的“计数器日志”,在右侧栏目中空白处点击右键,选择右键菜单中的“新建日志设置”选项;

  ③在弹出的对话框“名称”一栏中填入任意名称,比如“虚拟内存测试”。在出现窗口中点击“添加计数器”按钮进入下一个窗口;

  ④在该窗口中打开“性能对象”的下拉列表,选择其中的“Paging File”,勾选“从列表中选择计数器”,并在下方的栏目中选择“%Usage Peak”;勾选“从列表中选择范例”,在下方的栏目中选择“_Total”,再依次点击“添加→关闭”结束

  ⑥在右侧栏目中可以发现多了一个“虚拟内存测试”项目,如果该项目为红色则说明还没有启动,点击该项,选择右键菜单中的“启动”选项即可

  接下来运行自己常用的一些应用程序,运行一段时间后,进入日志文件所在的系统分区下默认目录“PerfLogs”,找到“虚拟内存测试_000001.csv”并用记事本程序打开它,在该内容中,我们查看每一栏中倒数第二项数值,这个数值是虚拟内存的使用比率,找到这项数值的最大值,比如图中的“46”,用46%乘以500MB(前面所设定的虚拟内存数值),得出数值为230MB。

  用该数值可以将初始大小设为230MB,而最大值可以根据磁盘空间大小自由设定,一般建议将它设置为最小值的2到3倍。这样我们就可以将虚拟内存打造得更精准,使自己的爱机运行得更加流畅、更具效率



手工订制最准确的虚拟内存


  0.5倍、1.5倍、3倍,哇!好像买衣服时分大、中、小号,完全没有个性。究竟设置虚拟内存有没有更“贴身剪裁”的方法呢?

  在Windows XP桌面的“开始”→“运行”中输入perfmon.msc,一个与系统性能有关的监视器便会出现。看看显示器的底部,有三个计数器(pages/sec、Avg.Disk Queue Length及rocessor Time,)。为了便于我们接下来对虚拟内存的页面文件进行精确监测,现在请大家将这三个计数器逐一点选,并按键盘上的Delete键将它们删除。请大家放心,删除后,下次再启动系统性能监视器时,这三个项目会重新出现。

  删除后,现在请在图表中央位置单击鼠标右键,在随后出现的功能菜单中点选“添加计数器”一项,跟着在跳出窗口的“性能对象”一栏选“Process”。之后再在“从列表选择”一栏中点选“Page File Bytes”。不清楚“Page File Bytes”代表什么意思,只要单击“说明”按钮,解说文字便会出现在对话框之下。

  选定“Page File Bytes”后,再在右方的“从列表选择范例”一栏选取“Total”项,之后依次单击“添加”和“关闭”按钮,一个名为“Page File Bytes”的计数器便会出现在性能监视器的下方中。

  重复以上的动作,再添加一个名为“Page File Bytes Peak”的计数器(即Process下面的Page File Bytes Peak)。

  现在,回头看一下监视器,图表中应该正在显示并计量着刚才新增加的两个计数器。如无意外,这两个计数器在图表上的显示不正确,即数值靠近最高比例线,没有动态变化。不用怕,这并不表示你的电脑出了什么问题,而是图表比例设得不太恰当而已!用鼠标右键逐一单击监视器底部的“Page Fele Bytes”和“Page File By8tes Peak”计数器,并选“属性”一项。在“数据”页面的“比例”一栏中改为0.0000001,这样显示器中的图表便不再是没有动静了。

  如果你看过系统提供的说明,相信应该知道“Page File Bytes”和“Page File Bytes Peak”正是代表了系统监测期间所使用的虚拟内存及其峰值是多大。因此,需要精确地手工设置虚拟内存,可参考图表下方显示的数字,其单位是Bytes

  想知道在正常的情况下,你的系统会耗用多少虚拟内存?请将平时日常使用的应用软件同时启动并让它们开始工作,接着再看性能监视器上所显示的数值,心中有数了吧。

  人总有疯狂的时候,想知道自己疯狂使用电脑时系统需要多少虚拟内存,现在就尽情地将电脑上的程序启动并运行(例如,开十多个IE浏览器窗口上网,播放MP3和DVD影片,再进行光盘刻录或DV影片压缩编码),看看监视器的百分比会升高到多少。

  在图表上右击鼠标,点选“属性”,进入“图表”页面勾选“水平格线”一项。这样图表中会出现一条条的水平分割线,是不是好分辨了?

  图表中的红色垂直线跑得太快,来不及开启电脑上的程序进行测试?

  同样,在图表上单击鼠标右键,选“属性”,在常规页面的“自动抽样间隔”一项中将1秒改为5秒。此时,图表中的“图形时间”数值便会由1分40秒变成8分20秒。换言之,红色垂直线走完一圈需花费8分20秒,这个时间应该足以让大家开启并运行很多应用程序,然后再慢慢查看图表中的结果。

  最后,通过监视器的图表,相信大家已经能粗略估计你的电脑系统应设置多大的虚拟内存了。



 出现“虚拟内存不够”的几个可能

  1、感染病毒

  有些病毒发作时会占用大量内存空间,导致系统出现内存不足的问题。赶快去杀毒,升级病毒库,然后把防毒措施做好!

  2、虚拟内存设置不当

  虚拟内存设置不当也可能导致出现内存不足问题,一般情况下,虚拟内存大小为物理内存大小的2倍即可,如果设置得过小,就会影响系统程序的正常运行。重新调整虚拟内存大小以WinXP为例,右键点击“我的电脑”,选择“属性”,然后在“高级”标签页,点击“性能”框中的“设置”按钮,切换到“高级”标签页,然后在“虚拟内存”框中点击“更改”按钮,接着重新设置虚拟内存大小,完成后重新启动系统就好了。

  3、系统空间不足

  虚拟内存文件默认是在系统盘中,如WinXP的虚拟内存文件名为“pagefile.sys”,如果系统盘剩余空间过小,导致虚拟内存不足,也会出现内存不足的问题。系统盘至少要保留300MB剩余空间,当然这个数值要根据用户的实际需要而定。用户尽量不要把各种应用软件安装在系统盘中,保证有足够的空间供虚拟内存文件使用,而且最好把虚拟内存文件安放到非系统盘中。

  4、因为SYSTEM用户权限设置不当

  基于NT内核的Windows系统启动时,SYSTEM用户会为系统创建虚拟内存文件。有些用户为了系统的安全,采用NTFS文件系统,但却取消了SYSTEM用户在系统盘“写入”和“修改”的权限,这样就无法为系统创建虚拟内存文件,运行大型程序时,也会出现内存不足的问题。问题很好解决,只要重新赋予SYSTEM用户“写入”和“修改”的权限即可,不过这个仅限于使用NTFS文件系统的用户。




虚拟内存的优化


  1. 启用磁盘写入缓存

  在“我的电脑”上单击鼠标右键选择“属性->硬件”,打开设备管理器找到当前正在使用的硬盘,单击鼠标右键选择属性。在硬盘属性的的“策略”页中,打开“启用磁盘上的写入缓存”。

  这个选项将会激活硬盘的写入缓存,从而提高硬盘的读写速度。不过要注意一点,这个功能打开后,如果计算机突然断电可能会导致无法挽回的数据丢失。因此最好在有UPS的情况下再打开这个功能。当然,如果你平常使用计算机时不要进行什么重要的数据处理工作,没有UPS也无所谓,这个功能不会对系统造成太大的损失。

  2. 打开Ultra MDA

  在设备管理其中选择IDE ATA/ATAPI控制器中的“基本/次要IDE控制器”,单击鼠标右键选择“属性”,打开“高级设置”页。这里最重要的设置项目就是“传输模式”,一般应当选择“DMA(若可用)”。

  3. 配置恢复选项

  Windows XP 运行过程中碰到致命错误时会将内存的快照保存为一个文件,以便进行系统调试时使用,对于大多数普通用户而言,这个文件是没有什么用处的,反而会影响虚拟内存的性能。所以应当将其关闭。

  在“我的电脑”上单击鼠标右键,选择“属性->高级”,在“性能”下面单击“设置”按钮,在“性能选项”中选择“高级”页。这里有一个“内存使用”选项,如果将其设置为“系统缓存”,Windows XP 将使用约4MB的物理内存作为读写硬盘的缓存,这样就可以大大提高物理内存和虚拟内存之间的数据交换速度。默认情况下,这个选项是关闭的,如果计算机的物理内存比较充足,比如256M或者更多,最好打开这个选项。但是如果物理内存比较紧张,还是应当保留默认的选项。



  页面文件的设置 页面文件的大小计算

  对于不同的计算机而言,页面文件的大小是各不相同的。关于页面文件大小的设置,有两个流传甚广的“公式”,“物理内存X2.5”或者“物理内存X1.5”。这两种计算方法固然简便,但是并不适用于所有的计算机。设置页面文件大小最准确的方法是看看计算机在平常运行中实际使用的页面文件大小。

  通过Windows XP自带的日志功能可以监视计算机平常使用的页面文件的大小,从而进行最准确的设置,具体步骤如下。

  一、在“我的电脑”上单击鼠标右键,选择“属性->高级”,单击“性能”下面的“设置”按钮,然后选择“高级”页,单击“虚拟内存”下方的“更改”按钮。选择“自定义大小”,并将“起始大小”和“最大值”都设置为300M,这只是一个临时性的设置。设置完成后重新启动计算机使设置生效。

  二、进入“控制面板->性能与维护->管理工具”,打开“性能”,展开“性能日志和警告”,选择“计数器日志”。在窗口右侧单击鼠标右键选择“新建日志设置”

  三、随便设置一个日志名称,比如“监视虚拟内存大小”。

  四、在“常规”页中单击“添加计数器”按钮。

  在“性能对象”中选择“Paging File”,然后选中“从列表选择记数器”下面的“%Usage Peak”,并在右侧“从列表中选择范例”中选择“_Total”。最后单击“添加”和“关闭”按钮。

  五、别忘了记住“日志文件”页中的日志文件存放位置和文件名,我们后面需要查看这个日志来判断Windows XP平常到底用了多少虚拟内存,在这个例子中,日志文件被存放在D:\Perflog目录下。

  另外还要设置“日志文件类型”为“文本文件”,这样便于阅读。

  这时你可以看到刚才新建的日志条目前面的图标变成了绿色,这表明日志系统已经在监视虚拟内存了。如果图标还是红色,你应该单击鼠标右键选择“开始”来启动这个日志。

  过一段时间后打开这个CVS文件,我们可以看到如下内容的条目。

  这个日志文件记录这一段时间中页面文件的使用情况,注意这里的单位是%,而不是MB。通过简单的计算,我们就可以得到页面文件的最小尺寸,公式是“页面文件尺寸X百分比”。比如这个例子中,虚拟内存最大的使用比率是31%,300MBX31%=93MB,这个值就是虚拟内存的最小值(注意,300MB是前面的设置的临时值)。

  如果物理内存较大,可以考虑将页面文件的“起始大小”和“最大值”设置为相等,等于上一步中计算出来的大小。这样硬盘中不会因为页面文件过渡膨胀产生磁盘碎片,其副作用是由于“最大值”被设置的较小,万一偶然出现虚拟内存超支的情况,可能会导致系统崩溃。



  设置页面文件

  现在回到“虚拟内存”的设置对话框中选择自定义大小并按照上面的计算结果分别设置“初始大小”和“最大值”。这里我们将“初始大小”设置为91M,而将“最大值”设置成了200M,这样比较保险


  对页面文件进行碎片整理

  Windows XP运行时需要大量访问页面文件,如果页面文件出现碎片,系统性能将会受到严重影响,而且会缩短硬盘的使用寿命。所以我们很有必要对页面文件定期进行碎片整理。

  不过别忘了,页面文件是系统关键文件,Windows XP运行时无法对其进行访问。所以对它进行碎片整理并不是一件容易的事情。我们有两种方案可以选择,一是安装Windows双系统,然后启动另外一个Windows对Windows XP所在的分区进行碎片整理。二是使用专门的工具软件,比如System File Defragmenter等。

[ Last edited by 反黑先锋 on 2006-11-13 at 21:01 ]

※ ※ ※ 本文纯属【反黑先锋】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

荣先祥藏头诗《赞东方微点》
东风欣传好消息
方策独步世所稀
微妙玄机嵌主动
点睛灭毒堪神笔
2006-11-13 21:00
查看资料  发短消息   编辑帖子
微点专家
版主

Weizi


积分 11554
发帖 11458
注册 2006-8-27
来自 贵阳
#2  

话太多了,改天我放个视频教程上来。一看就会。

※ ※ ※ 本文纯属【微点专家】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

做个性的自己
2006-11-13 21:35
查看资料  发送邮件  访问主页  发短消息  QQ   编辑帖子
吉木汤
新手上路





积分 13
发帖 13
注册 2007-7-25
#3  

再简洁一下文字,效果更好

※ ※ ※ 本文纯属【吉木汤】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2007-7-26 17:45
查看资料  发送邮件  发短消息   编辑帖子
hzx123dlm
新手上路





积分 45
发帖 45
注册 2007-6-25
#4  

太多了,得漫漫消化

※ ※ ※ 本文纯属【hzx123dlm】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2007-12-13 21:40
查看资料  发送邮件  发短消息   编辑帖子
peter0605
银牌会员




积分 2083
发帖 2065
注册 2007-9-11
来自 宁波,杭州。。。
#5  

等专家的视频吧。。。

※ ※ ※ 本文纯属【peter0605】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

我就是我,是颜色不一样的烟火
2007-12-14 09:38
查看资料  发送邮件  发短消息   编辑帖子
norman6810
版主





积分 3351
发帖 3303
注册 2007-4-4
#6  

我也等着专家啊!

※ ※ ※ 本文纯属【norman6810】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

灌水区版规
2007-12-16 19:47
查看资料  发短消息   编辑帖子
zj339
新手上路





积分 26
发帖 26
注册 2007-11-16
#7  

精辟!楼主的讲解很详细,终于搞懂了虚拟内存的设置了

※ ※ ※ 本文纯属【zj339】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2007-12-16 20:37
查看资料  发送邮件  发短消息   编辑帖子



论坛跳转:

可打印版本 | 推荐 | 订阅 | 收藏


[ 联系我们 - 东方微点 ]


北京东方微点信息技术有限责任公司 福建东方微点信息安全有限责任公司

闽ICP备05030815号