ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 读懂Windows虚拟内存问题

读懂Windows虚拟内存问题

原创 Linux操作系统 作者:kitesky 时间:2006-09-05 13:46:31 0 删除 编辑

本文详细介绍了虚拟内存的设置和相关问题的解决方法。

摘自:西安浩敏网络有限公司

[@more@]

网友必备 读懂Windows虚拟内存问题(1)

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

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

  手动设置虚拟内存

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

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

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

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

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

·网友必备 读懂Windows虚拟内存问题(2)

  一、量身定制虚似内存

  1.普通设置法

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

  2.精准设置法

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

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

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

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

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

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

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

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

·网友必备 读懂Windows虚拟内存问题(3)

  二、Windows虚拟内存加速密籍

  虚拟内存对于任何版本的Windows而言都是十分重要的。如果设置得当,它将极大地提升电脑的性能和运行速度。可是在默认状态下,Windows始终将虚拟内存设为物理内存的1.5倍。这样的话,如果用户安装2GB的内存,系统就会腾出高达3GB硬盘空间作为虚拟内存。但以当前的主流应用软件和游戏对内存的需要来看,根本没有必要使用这么多的虚拟内存。那么,有没有什么秘技或绝招可使虚拟内存运用得更有效率或更显性能呢?

  2、分割存于多个硬盘

  将虚拟内存设在较快的硬盘上,的确可使虚拟内存的运作更有效率。但是若电脑上两个硬盘速度一样快,则应将虚拟内存平均分配在两个不同的硬盘上(并非同一硬盘的不同分区)。因为同步进行读写操作会更有效地提高系统整体的虚拟内存性能。

  举个例子,假设你原本在硬盘C上设置了700MB的虚拟内存,现在你可尝试重新分配,即把硬盘C改为350MB,硬盘D新增350MB的虚拟内存。理论上这样做会加快虚拟内存整体的读写操作.

  3、硬盘需有足够空间

  如果你不是很有经验的电脑用户,又或者没有特殊的使用要求,在Windows XP中选择系统管理的大小的方法来自动处理虚拟内存,一般情况下应该会比选择自定义大小的方法来得安全和稳定。不过,有一点大家必须注意,由于虚拟内存的页面文件”(pagefile.sys)会随着电脑使用过程进行收缩和扩展,为使系统管理虚拟内存能够进行得顺利和更具弹性,我们必须保证分页文件所在的硬盘拥有足够的可用空间。

  4、最小值等于最大值

  选择自定义大小的方法来处理虚拟内存,并将最大值和最小值都设为同一数值。有很多人都相信用这种方法来处理虚拟内存有助于提高系统的性能。他们所持的理由是,当最大值和最小值都相等时,系统无需时刻进行收缩和扩展页面文件的动作。省去了这些工作,相应地就是提高系统效率。

  这种方法,很多人坚信有效,但同样地,也有人指出其实并没有效果。但不管怎样也好,如要将最大值和最小值设为相等,我们必须坚守一个原则,那就是虚拟内存的大小必须足够,否则系统轻则会出现效率下降(要进行更多复写动作来腾出空间),严重的更会造成系统不稳定。

  5、整理页面文件

  文件数据保存在硬盘上久了,文件碎片(fragment)自然会产生。要保持或提高硬盘的工作效率,我们应不时为硬盘进行一次碎片整理。所谓虚拟内存,其实也是硬盘上的资料文件,那么虚拟内存是否也应该像普通文件般需要整理呢?

  Windows系统处理页面文件(即虚拟内存)的方法有别于一般的文件。相比之下,页面文件比一般文件更少出现碎片,为页面文件进行整理通常是没有必要的。事实上,当Windows XP进行磁盘碎片整理时,页面文件不会牵涉其中。

  虽然Windows不会对页面文件进行整理,但事实上页面文件也有碎片存在。追求尽善尽美的朋友可能仍想对页面文件进行碎片整理。大家不妨试试下面的方法:

·网友必备 读懂Windows虚拟内存问题(4)

  在桌面我的电脑图标上单击鼠标右键,在随后出现的功能菜单中选属性。进入系统属性的设置窗口,用鼠标点选高级”-->“性能”-->“设置”-->“高级”-->“更改,在随后出现的虚拟内存设置窗口中选中无分页文件一项。最后单击设置按钮退出,并重新启动电脑。

  重新启动后,检查一下磁盘根目录中还有没有pagefile.sys页面文件存在,如有就将之删除。清除掉虚拟内存的页面文件后,现在我们再进行磁盘碎片整理。完成后,按照前面的步骤重新设置一定数量的虚拟内存,并启动电脑使之生效。经上述方法处理后,新得出的页面文件将会是没有碎片的。

  另外,如果想查看页面文件碎片的具体情况呢?启动磁盘碎片整理程序,为存在有页面文件的硬盘进行一次分析,再点选查看报告,看看页面文件碎片一栏便会一目了然.

[NextPage]

  6、虚拟内存的理想大小

  想以自定义大小的方法来处理虚拟内存,究竟应该设置多大的虚拟内存呢?Windows XP中,如果由操作系统自己定义虚拟内存,系统通常会把最小值设置为物理内存的1.5倍。当扩展时,最大值则介于物理内存的2.53倍。一般情况下,用户想自定义虚拟内存的大小,均可参照这个比例设置。

  真的要参照这个比例吗?如果我的电脑上有1GB的内存,难不成最小值要设置为1.5GB,最大值是2.53GB。这样一来。Pagefile.sys页面文件至少为1.5GB,太不现实了!

  其实,大内存的系统跟小内存的系统相比,在设置虚拟内存时,标准有些不同。

  如果大家有512MB以上甚至1GB的内存,既然物理内存已经相当充足,所需的虚拟内存反而应该减少。故在大内存的系统中,虚拟内存的最小值可以设成物理内存的一半。比如有1GB的内存,虚拟内存的最小值设成512MB,最大值则维持3GB以备不时之需。注意:虽然最大值设为3GB,系统是不会立即出现3GB大小的pagefile.sys文件,实际上它首先会以最小值出现,待有扩展需要时才会递增。

  另外,有些大内存的朋友,可能会干脆不设置虚拟内存,以此强迫系统使用速度较快的内存。其实这是不太明智的做法。正所谓凡事都不要做得太绝对,完全没有虚拟内存也不行。原因是不少应用程序在设计时要求必须使用虚拟内存,没有了就会造成系统不稳定或死机。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/66009/viewspace-863168/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-22

  • 博文量
    273
  • 访问量
    2172240