找回密码
 注册
快捷导航
查看: 29464|回复: 82

【原创】科学合理设置Windows的虚拟内存

[复制链接] |自动提醒
阅读字号:

3万

回帖

369

积分

27万

资产值

超级版主 Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

注册时间
2002-8-15
发表于 2006-4-16 15:59:01| 字数 2,885| - 广东省广州市天河区 电信 | 显示全部楼层 |阅读模式
此文原发在Windows中文站:
http://bbs.winos.cn/viewthread.php?tid=2116&extra=page%3D1

现在内存的价钱越来越便宜(我年前买的内存1k多1G,头几天朋友买的1G才550元,晕),很多新机标准已经装备了1GB(或更多)的内存,还有很多人也在给老电脑的内存升级。在升级了物理内存之后,如何有效设置虚拟内存才能获得最大限度的性能提升?网上流传的一些优化虚拟内存的方法真的有效吗?如何科学地设置虚拟内存?这些就是本文将要讨论的内容。

我们通常说的一台电脑的快慢,实际上包括四个子系统的性能:CPU,内存,网络和硬盘。这四个方面不能存在瓶颈,否则会严重影响性能的整体性能。不幸的是,在购买机器的时候人们往往注重于CPU的频率,忽略了其它三个组件。特别是某些品牌机,P4的CPU,往往才搭配256M甚至更少的内存,这样的配置,有人反应P4的机器比P3的还慢,就显得很正常了。

本文讨论内存,虚拟内存的配置对机器性能的影响,其它的几个子系统对机器性能的影响,在以后的文章中再讲述。

首先我们看看微软官方的建议。Windows建议把虚拟内存设置成让Windows自动管理。如果非要手工设置,对于虚拟内存,微软建议的设置是物理内存数量的1.5-2倍(分别为虚拟内存的最小值和最大值)。

这样的建议是否合理呢?我们通过一个例子来说明。
假设有两台PC,A机内存128M,B机的内存2G。
按照上面建议,A机的虚拟内存最大是256M,在运行一些需要大内存的程序时肯定会报错,提示虚拟内存不足,比如运行Photoshop处理大图片的时候。
B机的虚拟内存却高达4G,加上2G的物理内存,内存高达6G。日常的操作未必要使用这么多的内存,但是对于硬盘空间来说,这是一个很大的浪费。

接下来我们先分析一下网上流行的所谓的虚拟内存的设置技巧。

一个很出名的技巧是大容量物理内存的用户可以禁用虚拟内存来提高系统性能。

首先我们来分析一下虚拟内存到底是什么以及虚拟内存的作用是什么?
在早期,因为内存价格非常昂贵,因此一般电脑上都不会配置太多,如果有时候操作系统和应用程序需要的内存数量超过了计算机中安装的物理内存数量,操作系统就会暂时将不需要访问的数据通过一种叫做“分页(pages)”的操作方式写入到硬盘上一个特殊的文件中,从而可以释放出部分内存给需要立刻使用内存的程序和数据使用。这个位于硬盘上的特殊文件(也可能是一个特殊的分区,比如Linux的swap分区)就是分页文件(也就是虚拟内存文件或叫做交换文件)。对于Windows 2000/XP/2003操作系统,分页文件名为pagefile.sys,默认情况下位于操作系统所在分区的根目录下(也可以手工指定在其它的分区,不过都是在跟目录下)。

正因为存在上述的机制,才有了大内存禁用虚拟内存能提高系统性能的说法,因为内存的速度远远高于硬盘的速度。然而根据Windows的设计,Windows 的许多核心功能都需要使用分页文件(不管此时有没有空余的物理内存),而如果你禁用了所有分页文件,有些第三方的应用软件都可能会遇到内存不足的错误(最明显的是早前版本的Photoshop图形处理软件)。其实在不需要的时候,Windows并不会频繁使用分页文件,因此这样调整系统你并不能获得任何性能上的提高,只是增加了更多的报错提示。

另外一个技巧是使用释放内存的软件,周期性地把内存中的数据强行写入分页文件来释放更多的物理内存。对于这种做法,首先我们要明白,任何程序,只要被执行,就会占用一定的内存空间(具体占用多少内存则取决于程序自己的体积以及载入的数据文件的大小),强行把这些空间中的数据转移到硬盘上,看起来剩余的物理内存是多了,但是这些程序很快又会按照windows或者自己的计算方式做一次相反的操作。

想象一下这种情况:当你的物理内存数量不多,而又运行了比较大型的程序后,必然导致物理内存数急剧减少,按照“优化软件”的设计目的,这时候它开始自作聪明,把占用内存的数据往硬盘上进行分页,而程序的运行确实需要这些数据,导致的结果就是同一时间内,“优化软件”试图将数据分页到硬盘,而操作系统又把数据从硬盘读取到内存,正好是两个相反的操作,这样就极大增加了硬盘的读写,降低了系统的性能。

内存优化的软件在早期的16位操作系统上可能是有效的,因为那时的操作系统由于本身设计的原因,在内存管理上存在问题,或者程序设计不规范,导致程序占用内存后退出时不能及时释放内存的现象。对于32位的操作系统,内存的管理已经日趋完善,不需要这些软件来帮忙了。

为了合理设置虚拟内存大小,首先我们必须知道系统正常运行的时候到底需要多少内存。Windows自带的性能监视器就可以很好第完成这个工作了。

在管理工具中找到“性能”,单击,打开了性能监视器。(或者直接运行perfmon.msc)


展开左侧的性能日志和警报,并点击选择记数器日志,在右侧的面板中空白处点击鼠标右键,选择新建日志设置,并命名为“虚拟内存”


按“确定”按钮,出现图所示的窗口。


在常规选项卡下,点击添加记数器按钮,在新弹出的窗口的性能对象下拉菜单中选择Paging File,并选择“从列表选择记数器”,然后点击% Usage Peak,在范例中选择“_Total”,并接着点击“添加”按钮,完成的设置应如图设置。


关闭窗口,并点击“确定”按钮。

点击“是”创建日志文件。接着打开“日志文件”选项卡,在日志文件类型下拉菜单中选则“文本文件(逗号分隔)”,然后记住“例如”框中显示的日志文件的路径。


点击确定。
这个记数器已经开始运行了,你可以在电脑上进行你的日常操作,并尽可能模拟你正常使用电脑的操作习惯。经过几个小时的使用(如果是服务器可以正常运行10-15天),基本上记数器已经可以对你的使用情况做出一个完整的评估了。

注意:
记数器正常运行的时候图标是绿色的,红色的表示已经停止运行。如图:


经过一段时间的使用就可以分析记数器的结果了 。

首先停止这个记数器的运行。在记数器日志窗口中,选中我们新建的Page File记数器,然后右键点击,并且选择停止。
用记事本打开日志文件(我们设置的是在C:\perflogs\虚拟内存_000002.csv),看到的如图所示的界面:


在日志中的数值中,记录了分页文件的使用率。
按照图中的数值,该系统一般情况下的分页文件只使用了8%不到。

目前我系统的内存是2G,乘8%约164M,所以我们设置的虚拟内存最小值设置在200M已经足够了。再找到使用率的峰值乘2G,就知道虚拟内存设置的最大值了。假设我的最大峰值是50%,那我的虚拟内存最大值设置在1G已经足够。

虚拟内存的其它优化:

虚拟内存在硬盘上的文件要连续,如果有多个硬盘,应该设置在最快的硬盘上单独的分区中,此分区只放置交换文件,不放置其它文件以提高系统对该分区的使用效率。原理上,文件在硬盘的起始位置速度快于硬盘的末尾位置,所以可以尽量设置该分区在硬盘的开始位置。

[ Edited by  yansy on 2007-9-24 11:05 ]

评分

参与人数 1技术分 +1 收起 理由
ibmibeicafy + 1

查看全部评分

242

回帖

0

积分

373

资产值

入门会员 Rank: 1

注册时间
2005-4-29
发表于 2006-4-16 16:06:44| 字数 10| - 广东省珠海市 电信 | 显示全部楼层
学习中!!不错!!!
回复 支持 反对

使用道具 举报

1万

回帖

3

积分

3万

资产值

禁止发言

注册时间
2005-4-28
发表于 2006-4-16 16:32:02| 字数 5| - 山东省德州市 中移铁通 | 显示全部楼层
不错学习中
签名被屏蔽
回复 支持 反对

使用道具 举报

7497

回帖

75

积分

1万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2005-4-9
铜牌荣誉勋章(注册8年以上会员)月全勤勋章银牌荣誉勋章(注册10年以上会员)
发表于 2006-4-16 16:33:41| 字数 20| - 广东省湛江市赤坎区 电信 | 显示全部楼层
也学习一下,以前都比较小看这些的说...
7.24
回复 支持 反对

使用道具 举报

1123

回帖

0

积分

12

资产值

入门会员 Rank: 1

注册时间
2006-4-3
发表于 2006-4-16 17:47:32| 字数 9| - 广东省中山市 电信 | 显示全部楼层
学习一个,试用中!
X-24: Pentium-III 1.13G/384M/20G/12.1"/802.11b
回复 支持 反对

使用道具 举报

1697

回帖

0

积分

659

资产值

入门会员 Rank: 1

注册时间
2005-10-4
发表于 2006-4-16 18:22:23| 字数 13| - 福建省厦门市 电信 | 显示全部楼层
谢谢,谢谢,知道怎么设置了
回复 支持 反对

使用道具 举报

368

回帖

0

积分

221

资产值

入门会员 Rank: 1

注册时间
2001-12-6
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2006-4-16 18:31:42| 字数 50| - 上海市浦东新区 电信 | 显示全部楼层
512mb内存,用下来还是不开虚拟内存整个系统比较快,前提不跑大型软件,否则就出现内存不够的警告了。
回复 支持 反对

使用道具 举报

991

回帖

0

积分

1731

资产值

入门会员 Rank: 1

注册时间
2006-1-31
发表于 2006-4-16 19:18:26| 字数 67| - 湖北省武汉市 电信 | 显示全部楼层
2G物理内存+1.5G虚拟内存,打开这个200M的dwg文件,出现内存不足。。。

[ 本帖最后由 yxc 于 2006-4-16 19:34 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

2239

回帖

0

积分

1868

资产值

入门会员 Rank: 1

注册时间
2004-6-6
发表于 2006-4-16 19:59:15| 字数 6| - 天津市 移动 | 显示全部楼层
椤讹綖锝烇綖
天行健 君子以自强不息
地势坤 君子以厚德载物
回复 支持 反对

使用道具 举报

3229

回帖

8

积分

6333

资产值

高级会员 Rank: 2Rank: 2

注册时间
2002-7-30
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2006-4-16 20:00:46| 字数 67| - 上海市宝山区 电信 | 显示全部楼层
这里有篇相似的文章,是楼主写的吗?
http://www.pc120.net.cn/home/soft_jq/073952824.htm
T43 2668-INZ 1.86G 2G 250G 15‘SXGA ATI X300 128M Combo Wifi BT VX Revolution & WinXPSP3 Office2007 FF3
回复 支持 反对

使用道具 举报

2400

回帖

28

积分

1万

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-2-25
发表于 2006-4-16 20:33:59| 字数 7| - LAN | 显示全部楼层
经典呀!经典,
回复 支持 反对

使用道具 举报

1864

回帖

16

积分

6770

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2005-3-16
发表于 2006-4-16 20:57:45| 字数 13| - 福建省福州市 电信 | 显示全部楼层
我的才256呀,怎么能比呢
准备下手
回复 支持 反对

使用道具 举报

1136

回帖

0

积分

110

资产值

入门会员 Rank: 1

注册时间
2005-5-13
发表于 2006-4-16 21:45:46| 字数 51| - 陕西省西安市 电信 | 显示全部楼层
1G物理内存,经测试虚拟内存为4.1%-8.1%,这样算来是42M-83M,我就设了64M-128M。
人的命运天注定,胡思乱想不顶用。
回复 支持 反对

使用道具 举报

6929

回帖

161

积分

11万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2006-4-14
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)铜牌荣誉勋章(注册8年以上会员)月全勤勋章
发表于 2006-4-16 21:50:06| 字数 37| - 广东省汕尾市 中移铁通 | 显示全部楼层
汗,这麻烦,直接固定1G了事,反正现在硬盘不断变大,多了移到移动硬盘之类的
回复 支持 反对

使用道具 举报

ducati888 - 二师兄

1万

回帖

120

积分

5740

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2004-5-22
铜牌荣誉勋章(注册8年以上会员)月全勤勋章
发表于 2006-4-16 21:57:25| 字数 20| - 广东省肇庆市四会市 电信 | 显示全部楼层
看看自己到底适合设置多大的虚拟内存??!
宠辱不惊闲听花开花落,
去留随意醉看云卷云舒!
14寸高分T60P  高分X61
回复 支持 反对

使用道具 举报

3万

回帖

369

积分

27万

资产值

超级版主 Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

注册时间
2002-8-15
 楼主| 发表于 2006-4-16 21:57:39| 字数 222| - 广东省广州市天河区 电信 | 显示全部楼层
QUOTE:
原帖由 karlamy 于 2006-4-16 20:00 发表
这里有篇相似的文章,是楼主写的吗?
http://www.pc120.net.cn/home/soft_jq/073952824.htm


不是。
记得很久前newfan的网友刘辉(微软的MVP,网上ID是.com.cn)写过一篇类似的用性能监控来计算虚拟内存大小的文章。

我这几天在讲2003性能监视相关的课程内容,在课堂上给学生演示了这个例子,下课后就干脆补充了一些资料并整理成文了
回复 支持 反对

使用道具 举报

101

回帖

0

积分

372

资产值

入门会员 Rank: 1

注册时间
2003-10-21
铜牌荣誉勋章(注册8年以上会员)
发表于 2006-4-16 21:59:16| 字数 16| - 浙江省杭州市富阳区 电信 | 显示全部楼层
384M,暂时不考虑这方面的问题
醒来才知身是客。。
回复 支持 反对

使用道具 举报

3万

回帖

369

积分

27万

资产值

超级版主 Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

注册时间
2002-8-15
 楼主| 发表于 2006-4-16 22:11:07| 字数 232| - 广东省广州市天河区 电信 | 显示全部楼层
QUOTE:
原帖由 yhvh 于 2006-4-16 21:50 发表
汗,这麻烦,直接固定1G了事,反正现在硬盘不断变大,多了移到移动硬盘之类的


这篇文章的目的不是教大家设置多大的虚拟内存才合适。

专门网的朋友,好多人都是2G的内存了(包括我自己),但是大家是否真的需要这么多内存呢?这才是写这篇文章的目的。

这周内陆续会有通过性能监视器来检测CPU,硬盘,网络等其它三个子系统的文章出炉,通过对电脑四个子系统的综合考虑来判断如何升级自己的电脑,才能避免头痛医脚的现象,敬请等待。
回复 支持 反对

使用道具 举报

4225

回帖

9

积分

2万

资产值

中级会员 Rank: 2Rank: 2

注册时间
2003-7-22
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2006-4-16 22:16:44| 字数 8| - 江苏省南京市 教育网/南京工业大学教育网 | 显示全部楼层
faint...
X61: T9300/8G/SSD/12'SXGA+/6300AGN/BCM70015
T61: T9300/8G/SSD/15'WSXGA+/2504

Retired: X22/R32/X60/R400/T24/X61s
回复 支持 反对

使用道具 举报

2万

回帖

229

积分

13万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2005-3-29
银牌荣誉勋章(注册10年以上会员)
发表于 2006-4-16 22:30:17| 字数 4| - 江西省赣州市 电信 | 显示全部楼层
好文
支持
T60p T7600,4GB,UXGA
X41 PM778, 2G,32G,IPS
X61 T8100,2G,120G,SXGA
X61s T9300,4G,120G,SXGA
X62s I7-5500U,16G,250G,SXGA
X62-16 I7-5600U,32G,180G+1T,SXGA
回复 支持 反对

使用道具 举报

1136

回帖

0

积分

110

资产值

入门会员 Rank: 1

注册时间
2005-5-13
发表于 2006-4-17 00:12:33| 字数 126| - 陕西省西安市 电信 | 显示全部楼层
QUOTE:
原帖由 pangxuemin0001 于 2006-4-16 21:45 发表
1G物理内存,经测试虚拟内存为4.1%-8.1%,这样算来是42M-83M,我就设了64M-128M。

看来不行,系统提示"虚拟内存太小了......".
人的命运天注定,胡思乱想不顶用。
回复 支持 反对

使用道具 举报

3万

回帖

369

积分

27万

资产值

超级版主 Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

注册时间
2002-8-15
 楼主| 发表于 2006-4-17 00:27:23| 字数 93| - 广东省广州市天河区 电信 | 显示全部楼层
QUOTE:
原帖由 pangxuemin0001 于 2006-4-17 00:12 发表

看来不行,系统提示"虚拟内存太小了......".

你设置好log后记录的时间不够长……
回复 支持 反对

使用道具 举报

777

回帖

32

积分

4万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-1-25
发表于 2006-4-17 01:50:27| 字数 4| - 江西省鹰潭市贵溪市 电信 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

2789

回帖

1

积分

7755

资产值

入门会员 Rank: 1

注册时间
2003-1-29
铜牌荣誉勋章(注册8年以上会员)
发表于 2006-4-17 08:44:19| 字数 6| - 广东省深圳市 诺瓦科技发展有限公司 | 显示全部楼层
不错,学习了
T43P & X31
回复 支持 反对

使用道具 举报

3614

回帖

35

积分

3510

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-4-23
发表于 2006-4-17 09:16:00| 字数 36| - 山东省潍坊市 联通 | 显示全部楼层
学习一下,觉得以这样的方式来进行分析设置,是比较合理的,也具有说服务力。
回复 支持 反对

使用道具 举报

1万

回帖

102

积分

2万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2002-11-1
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)金牌荣誉勋章(注册20年以上会员)
发表于 2006-4-17 09:20:03| 字数 15| - 北京市 中电飞华PLC网络 | 显示全部楼层
都是让windows自动分配的
穿皮鞋的走硬道,留分头的不戴帽,戴手表的挽三道,镶金牙的自来笑
回复 支持 反对

使用道具 举报

6067

回帖

0

积分

927

资产值

入门会员 Rank: 1

注册时间
2004-8-17
发表于 2006-4-17 09:32:48| 字数 59| - 上海市 教育网/上海交通大学教育网 | 显示全部楼层
QUOTE:
原帖由 fangqiank 于 2006-4-17 09:20 发表
都是让windows自动分配的

自动就是1.5倍吧
回复 支持 反对

使用道具 举报

1277

回帖

1

积分

1402

资产值

初级会员 Rank: 1

注册时间
2002-7-8
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2006-4-17 10:30:34| 字数 77| - 四川省成都市 电信 | 显示全部楼层
我认为适合自己的就是最科学的。因为每一个个体需求是不一样的。有的是坐坐文档,有的是网络管理、有的是做图形、有的是打游戏。具体问题具体分析。不过这种方法很好
回复 支持 反对

使用道具 举报

6822

回帖

88

积分

1万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2004-12-7
发表于 2006-4-17 10:38:54| 字数 9| - 北京市丰台区 联通 | 显示全部楼层
收藏先,,,,,,
减肥和戒烟都很难:(
回复 支持 反对

使用道具 举报

651

回帖

43

积分

3294

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-4-25
发表于 2006-4-17 11:02:20| 字数 97| - 浙江省杭州市 联通 | 显示全部楼层
虚拟内存和硬盘分页文件应该是2个概念吧,通常说的禁用虚拟内存,实际上就是关闭硬盘分页文件,windows还是会强制把物理内存的一部分划成虚拟内存来用的,这个才是通常说的禁用虚拟内存加速的真正效果
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2024-5-22 01:54 , Processed in 0.221089 second(s), 84 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|联系我们|专门网

返回顶部