Windows Server 2016 页面文件没有增加

Windows Server 2016 页面文件没有增加

如果这还不够清楚地理解我的问题,我提前道歉,这有点长,但我已经尽力让它可以理解。

我在 Windows Server 2016 VM 上运行 Exchange 2016 CU6,并且经常在应用程序日志中收到警告,提示虚拟内存(页面文件)不足。

在此处输入图片描述

我的监控显示,自从四月份创建虚拟机以来,页面文件一直为 4GB,从未超过 4GB,也没有减少。

在此处输入图片描述


为了解决此问题并了解问题所在,我创建了两个测试虚拟机,分别安装了 Windows Server 2016 Standard 和 Windows Server 2008 R2 Enterprise,并且都具有相同的物理和虚拟内存配置:

测试虚拟机配置

内存: 4GB

磁盘 C(系统专用):32GB

磁盘 G(专用于页面文件):8GB

驱动器 C 的页面文件:512 - 1024 MB

驱动器 G 的页面文件:系统管理的大小

在此处输入图片描述

我的测试虚拟机 2016 目前在 C: 驱动器上使用 512MB,在 G: 驱动器上使用 1GB,总计 5.5 已提交内存

在此处输入图片描述

测试虚拟机 2008 当前使用 C: 盘 512MB 内存和 G: 盘 4GB 内存,共计 12.5GB 已分配内存

在此处输入图片描述


在对提交记忆进行了大量研究之后,我发现了 Mark Russinovitch 的这篇文章:https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

我决定使用带有 -m 开关的工具 testlimit64.exe 来查看页面文件是否会在测试 VM 2016 和测试 VM 2008 上增加。

结果反映了最初解释的问题,即测试虚拟机 2016 上的页面文件在 G: 驱动器上没有增加,但在测试虚拟机 2008 上却增加了:

在此处输入图片描述

在此处输入图片描述


根据此 Microsoft KB:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/automatic-memory-dump,使用自动内存转储设置控制面板->系统->高级系统设置->启动和恢复->写入调试信息将页面文件配置为系统管理,它可以将页面文件设置为小于物理内存的大小。

我所进行的测试没有使用该设置,测试虚拟机 2008 和测试虚拟机 2016 都配置了内核内存转储。

在此处输入图片描述

因此,如果我将 G:驱动器上的页面文件设置为测试虚拟机 2016 上的系统管理,则其大小将由 Windows 自动设置,并且在负载下不会增加。这是问题的核心,因为它是 Windows Server 2008 的行为改变。


我最后的测试是将 G: 驱动器上的页面文件手动配置为 4096 - 8100 MB,然后再次使用 -m 开关运行工具 testlimit64.exe,你可以看到页面文件确实从 4GB 增加到了 ~8GB

在此处输入图片描述 在此处输入图片描述


所以这是我的问题:为什么 Windows Server 2016 在设置为系统管理时不会增加页面文件的大小?Windows Server 2008 和 2016 之间在这方面有什么变化?

非常感谢您一直以来的阅读和回复。

答案1

根据 本文对于 Server 2016 系统,管理的页面文件的大小如下:

3 × RAM or 4 GB, whichever is larger. This is then limited to the volume size ÷ 8. However it can grow to within 1 GB of free space on the volume if required for crash dump settings.

对于 Server 2008,其说明:

3 × RAM or 4 GB, whichever is larger

因此听起来,您所看到的就是在 Server 2016 上强制执行的 1/8 规则。

希望有帮助...干杯

相关内容