这是一个潜在的使用情景:如果有一台具有64GB内存的物理服务器,是否需要一整个64GB的页面文件呢?我们应该将它配置为96GB的页面文件吗?对于一个单个文件来说,这似乎过于冗余。我知道传统观点是Windows将页面文件与内存耦合在一起,以便更轻松地交换应用程序的RAM,但这是真的吗?少于64GB的页面文件会影响性能吗?
这是一个潜在的使用情景:如果有一台具有64GB内存的物理服务器,是否需要一整个64GB的页面文件呢?我们应该将它配置为96GB的页面文件吗?对于一个单个文件来说,这似乎过于冗余。我知道传统观点是Windows将页面文件与内存耦合在一起,以便更轻松地交换应用程序的RAM,但这是真的吗?少于64GB的页面文件会影响性能吗?
通常情况下,SQL Server没有特殊的设置,只使用物理内存。
按照微软的建议来配置Windows就可以了。
哦,顺便说一句,在这个话题上,不管怎样还是多买点内存吧... ;-)
了解一下锁定内存中的页面。这样,您可以优先让SQL服务账户使用可用的RAM而不是分页到磁盘上。要了解更多关于锁定内存中的页面,请查看链接。以下是一段摘录:
Windows策略“锁定内存中的页面”选项默认情况下是禁用的。必须启用此特权才能配置地址窗口扩展(AWE)。该策略确定哪些帐户可以使用进程将数据保留在物理内存中,防止系统将数据分页到虚拟内存磁盘上。在32位操作系统上,如果不使用AWE而设置此特权,可能会严重影响系统性能。在64位操作系统上不需要锁定内存中的页面。
请在使用之前先测试此功能。
当一个进程通过
VirtualAlloc/VirtualAllocEx请求MEM_COMMIT内存时,所请求的大小需要在页面文件中保留。这在第一个Win NT系统中是正确的,今天仍然如此,请参阅Managing Virtual Memory in Win32:当内存被提交时,物理内存页被分配,并在页面文件中保留空间。
另一种选择可能是类似于oom_killer。
所以请遵循建议,有时候事情比看起来的要复杂一些。而且我甚至还没有涉及由AWE和锁定页面特权带来的复杂性...