查看: 7722|回复: 26
收起左侧

[讨论] win10系统大内存是否禁用页面文件的跟进

  [复制链接]
eyerain
发表于 2019-12-23 01:51:44 | 显示全部楼层 |阅读模式
首先感谢多位大大对这个问题用资料和官方QA做的科普和引证。

我个人也在这个问题上折腾了很久,感觉有些东西是值得跟大家分享的,水平有限,有说错的地方,也希望大家指正。


在用win10 1909这类比较新的系统时,32G以上内存+高速SSD的机器,设置为无分页文件(pagefile是否还有其价值呢。
(俗称关闭虚拟内存,其实说法是不准确的)


首先是跑分软件测不出差别,日常办公,浏览网页,做简单设计和小规模开发时,我主观上感受不到任何差别,至少我认为是过不了双盲测试的。我个人认为这些情况下,没有必要关闭页面文件,交由win10自己管理就好,已经比win7时代好很多了。




但是对于动作竞技游戏用户来说,win10在开启分页文件时能明显感知到不可预测的帧数波动和延时(非载入情况下的瞬间丢帧或卡顿)。


经过一段时间的折腾,发现这个影响主要来自两个因素:


1. win10新版默认打开的内存压缩技术,将要写入页面文件的内容进行压缩后再写入,减小硬盘写入的压力,这个技术能提高小内存+机械硬盘这种IO瓶颈严重电脑的日常使用感受,但是对于游戏用户就是灾难了,会造成cpu使用率的波动,建议通过powershell命令:Disable-MMAgent -mc 关闭。当然,如果关闭SysMain服务(原superfetch服务),或是禁用页面文件,这个功能也是失效的,可以在任务管理器内存页的“使用中(已压缩)”看到运行状况。


2. win系统的老历史,在打开页面文件的情况下,无论你有多少闲置内存,windows都会往硬盘的页面文件里倒腾东西。现象就是一些载入完成的的场景,开页面文件时会发现系统一下一下访问硬盘,而关闭页面文件运行同一场景,系统就完全没有这些操作,帧数的瞬时波动也就没有了,所以有时候FPS游戏感觉没跟手,真不一定是网络问题。测试的话,单机赛车游戏一个人跑闭环赛道最容易重现与分析。


确实,微软一直不推荐用户关闭页面文件,但是也知道有些情况下,用户是需要完全禁用页面文件的。
所以这个设置既不在策略组,也不在注册表,而是一直保留在系统属性的选项卡里。
能完全禁用页面文件是xp的NT5.1内核开始的,之前的win2000是不能完全禁用的。




如果确实想禁用页面文件的话,还有以下两点需要明确:


1. window内核的功能有部分依赖于页面文件,虽然常用这部分功能的用户不多。
我个人目前只用过崩溃文件转储,这部分也希望其它朋友能给与补充。




2. 明明可用内存还有很多,就报内存不足或出现莫名其妙的死进程的情况。


这个问题主要是因为微软让大家误判了哪一部分是空余内存,因为任务管理器的内存页明确标注了“使用中”和“可用”这两项的内存数量,所以大家自然而然的认为“可用”的那个数量就是空余内存。


而实际上,内存页里的“已提交”容量,才是实实在在的目前所有运行程序所发起的内存总需求量,一旦“已提交”用量超过内存容量,随之而来的就是报内存不足和进程崩溃,即使你有大量的内存在任务管理器上显示为可用


同理,对于那些固定了页面文件大小的用户,物理内存+页面文件的总和就变成了固定阈值,“已提交”超过时也会报内存不足。
所以16G内存+最大16G页面文件和32G内存禁用页面文件,报内存不足的阈值是一样的。
这也是为啥有大佬说,设置页面文件大小的关键是确保Commit Limit > 运行程序要求的Total Commit Charge。



综上,是否禁用页面文件,主要是看用户的用途,针对特殊需求的用户是有价值的。
禁用页面文件,或是指定了偏小的页面文件限制,都需要格外关注已提交这个数据。
我个人推荐32G及以上内存的游戏用户关闭页面文件,16G内存已经有部分游戏的Commit需求会超标。
至于一般家用办公设计等,个人觉得还是交给win10管理最为理想。
内存盘的方式,对于页面文件这一块来说,看来没有啥价值。

参考:
https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/
wybb同学做的测试.






























不知妻美刘强东
头像被屏蔽
发表于 2020-2-11 22:00:17 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
eyerain
 楼主| 发表于 2020-2-13 01:31:02 | 显示全部楼层
不知妻美刘强东 发表于 2020-2-11 22:00
神经病,有那么大内存还缺这点空间,整天咬着个页面文件不放,有什么价值吗,谁他妈告你玩游戏页面文件可以 ...

我本来就是做游戏开发的.目前项目是用unity.
帧率波动是由引擎GC造成的.还是由于win系统自己乱倒腾页面文件造成的.
对于我们来说是必须搞清楚的.
我相信对玩家来说也很重要.

我可以明确告诉你.如果本身程序没有内存泄漏问题.仅仅玩游戏这个领域,是可以做到不用页面文件的.
目前的虚幻4和unity开发的想做到都没问题.有能力用自研引擎的.想做到就更容易了.仅此.

最近组里也做了测试.性能分析器的结果明确.1909版本.即使是64G内存的配置.win10默认设置的页面文件管理方式也仍然会造成帧率波动.所以推荐电竞类用户将虚拟内存选项卡里设置为无分页文件.

最后.请留点口德.自尊自爱.



评分

参与人数 3人气 +3 收起 理由
lchong649cn + 1 精品文章
a27573 + 1 精品文章
qazxsw2 + 1 感谢解答: )

查看全部评分

不知妻美刘强东
头像被屏蔽
发表于 2020-2-13 02:17:28 | 显示全部楼层
eyerain 发表于 2020-2-13 01:31
我本来就是做游戏开发的.目前项目是用unity.
帧率波动是由引擎GC造成的.还是由于win系统自己乱倒腾页面 ...

你觉得世界上就只有你开发的游戏?
https://www.chiphell.com/thread-1890078-1-1.html
闪电战
发表于 2020-2-13 09:47:13 | 显示全部楼层
关闭虚拟内存玩GTA5,就等着玩着玩着报错退出吧(32G RAM)
嫌页面文件占地方,手动设置就行了
我设置初始1G,最大8G(小于8G就玩不了GTA5)
eyerain
 楼主| 发表于 2020-2-13 16:34:44 | 显示全部楼层
闪电战 发表于 2020-2-13 09:47
关闭虚拟内存玩GTA5,就等着玩着玩着报错退出吧(32G RAM)
嫌页面文件占地方,手动设置就行了
我设置初 ...

其实吧.现在固态这么便宜.内存这么便宜.页面文件占点空间完全不算个事了.

在意的是摸不清规律的,因为系统倒腾页面文件而造成的帧率波动和处理延时.

要上赶上用户还开着新版win10默认打开的内存压缩技术.那就不是小延时了.造成卡顿也正常.

GTA5的GC是有问题的.官方fix了好几次.没想到PC版本现在也没给处理好.

这种夸平台的游戏.按说GC都是测试的重头.毕竟主机平台那点小内存.和贼慢的2.5机械硬盘.处理不好用户体验是崩溃的啊.只能说pc玩家又被开发组给忽视了.
eyerain
 楼主| 发表于 2020-2-13 16:39:54 | 显示全部楼层

你发的链接就是wybb同学做的测试啊.

拜托请看看我主题最后附的参考信息.

喷人可以.但是请别无脑喷.

不知妻美刘强东
头像被屏蔽
发表于 2020-2-13 16:51:09 | 显示全部楼层
eyerain 发表于 2020-2-13 16:39
你发的链接就是wybb同学做的测试啊.

拜托请看看我主题最后附的参考信息.

我的意思是让你自己看看他帖子下面的反馈,有问题的不少
eyerain
 楼主| 发表于 2020-2-13 17:06:17 | 显示全部楼层
不知妻美刘强东 发表于 2020-2-13 16:51
我的意思是让你自己看看他帖子下面的反馈,有问题的不少

是.

确实有很多人有出现问题的经历.包括我自己也出过.

所以我写的第一个参考信息是微软的.那篇在原理上解释的比较清楚.windows的处理机制是支持系统跑在无页面文件模式的.

所以我在最后写的是16G内存不推荐.推荐32G及以上.
eyerain
 楼主| 发表于 2020-2-13 17:17:24 | 显示全部楼层
我也解释一下初衷吧.

现在的项目对实时度有很高的要求.

我们在GC上写了很多功夫.甚至有冲动去改用最新的dots模式开发.在网络和服务器上给了超高资源.

pc端依然不能避免测试的时候莫名的延迟和卡顿.

就好比格斗游戏.一局一共99秒.一个延时可能就造成玩家输掉整局.

找了很多人咨询和支持.都没结果.后来发现竟然是因为windows在倒腾页面文件.

然后我们又测试了吃鸡 csgo 赛车类游戏.都有这个问题.玩家一般是把延时怪罪到网络.其实测下来还真不全是网络的问题.这锅windows是要背的.win10的游戏模式确实有一定改善.但是并没有解决这个问题.确实让人对windows非常失望.我们认为根本原因是系统并没有对不同硬件配置的用户做相应的配置调整.

所以才写了这个主题.我们也给微软反馈了.不过并没有得到重视.
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-4-20 22:53 , Processed in 0.123623 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表