Windows 操作系统的虚拟内存原理和设置问题?

2018-08-05 12:56:06 +08:00
 Donald5VE
浏览了好多网页和论坛,对于虚拟内存有各种不同的说法和各种不同方法带来不同的症状。
有的比较老的帖子,内存还是 MB 为单位的年代,虚拟内存指导方法还是设置到物理内存的 4 倍大小。

有的相对新的帖子,内存在 4GB 左右的时代,建议就变成了和物理内存一样大。

现在的帖子在内存为 16GB 的时候就说可以关掉。

然后不管什么时候都有说法说设置成 windows 默认,然而默认的话,就意味着本来就不大的系统盘被白白占用了物理内存的大小 (物理内存 16GB 的话,就意味着 16GB 的空间就这么放着)。

那么到底该如何设置,以及相应方法背后的原理呢??
3220 次点击
所在节点    问与答
17 条回复
vibbow
2018-08-05 12:59:35 +08:00
Windows 默认虚拟内存大小 != 物理内存大小
Hsinyao
2018-08-05 13:34:04 +08:00
这玩意不都是 Windows 自己设置好的吗 虚拟内存的原理本科的操作系统课就有讲啊
kokutou
2018-08-05 13:37:02 +08:00
保持默认就行。Windows 做那么多测试,一个第三方帖子说关掉,你就关了,傻不傻?

页面文件有多大,你看看不就知道了,肯定不会是物理内存大小。
imn1
2018-08-05 14:00:25 +08:00
首先,虚拟内存不是用尽物理内存后才启用的,所以不会白白地摆着
然后,看看你有没有大内存软件(主要指图像渲染类别),没有的话,4~8G 差不多了
sagaxu
2018-08-05 14:23:05 +08:00
pagefile 要多大,我就加多少内存。服务器上我也也全禁用了,内存够大的时候,这玩意儿有百害无一利。
msg7086
2018-08-05 15:01:14 +08:00
内存超过实际使用需求的时候可以关闭。
对于普通家庭用户来说,你的物理内存一般都远远小于实际需求的内存量,所以启用分页文件,并且让 物理内存+分页文件 总量大于实际需求就行了。

比如你开个 Chrome,开点页面,可能就吃掉 10G 内存了,如果你才 16G,那就等着内核随机杀进程吧。
我这 16G 内存,随便开点页面,开个 QQ,开个播放器,已经 19G 内存没了。大概有 10G 会被分页进硬盘,剩下的 9G 留在物理内存里。

微软的虚拟内存策略是针对典型负载的。如果你反其道而行,疯狂加内存,比如买 16G 内存扫雷,或者买 128G 内存做开发,这种场景下是不需要打开分页文件的。
msg7086
2018-08-05 15:03:51 +08:00
换个说法。
如果你平时 Chrome+QQ+开发,大概会吃掉 20G 内存。

如果你只有 8G,那么系统会给你分配大概 16G 的分页文件,让虚拟内存池达到 24G,足够日常使用。
如果你有 16G 内存,那么系统会分配大概 8G 分页。
如果你有 32G 内存,那么不管系统分多少,你都可以把它关掉了,不影响使用。
regeditms
2018-08-05 16:05:27 +08:00
@msg7086 说得有道理, 之前把虚拟内存关了, chrome 会出问题.
springmarker
2018-08-05 16:09:36 +08:00
@msg7086 老哥开发啥内存要这么多
msg7086
2018-08-05 17:19:01 +08:00
@springmarker Chrome 吃得多。一个 Chrome 吃掉 10G+太正常了。
pipixia
2018-08-05 17:44:10 +08:00
上次我把这个关掉之后 跑 java 莫名奇妙会系统假死
vicacheung
2018-08-05 19:03:56 +08:00
我在微软论坛问过,答复还是设置 1.5 倍…… 256G 的服务器要哭死了😂
Donald5VE
2018-08-05 19:32:24 +08:00
@vicacheung 这个标准答案从我接触电脑那天就开始是这样了,感觉有点跟不上时代了。。
huanxianghao
2018-08-05 20:21:42 +08:00
这个问题。。。有什么纠结,实践出真理!
你内存大了、足够用了的确可以关掉(一般 8G 就能关了),没有什么影响。
你内存小了,就设置得多一些。至于设置的大小,看你自己的需要。什么 1 倍、2 倍的设置方式不存在的。只是占用了硬盘的空间而已。
以上亲测。
msg7086
2018-08-06 02:15:00 +08:00
@vicacheung 没什么问题啊。人家默认你典型负载是 400-600G 内存占用,所以推荐你开 384G 分页文件。
vicacheung
2018-08-06 07:53:28 +08:00
@msg7086 负载如果是这个水平,应上 512 内存
msg7086
2018-08-06 12:13:33 +08:00
@vicacheung 那是你认为的应该,不是别人普遍认为的应该。
256G 服务器 400G 内存占用下很少会产生分页,对性能完全没有影响,钱多得没处花的人才会把钱堆在内存上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/476996

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX