在 SQL Server 2017 中仍然推荐内存中的锁定页面吗?

Luc*_*ucy 6 sql-server sql-server-2017

我对内存中的锁定页面进行了一些研究,仍然困扰我的问题是(我知道这确实取决于您的规范,但是)是否仍然建议在 SQL Server 2017 中锁定页面,就像在 SQL Server 2005、2008 等中一样.?

spa*_*dba 5

一般来说,我仍然建议在 SQL Server 服务帐户上启用“Lock Pages in Memory”策略。这会指示 SQL Server 忽略 Windows 的请求,以修剪工作集并将其分页到磁盘。

正如 Erik 在评论中指出的那样,当您需要保留 SQL Server 的工作集时确实需要这样做,当同一台 Windows 机器托管其他可能最终与 SQL Server 争夺 RAM 的服务或应用程序时,这是必要的。

要记住的另一件事是虚拟化:现在几乎所有 SQL Server 都安装在虚拟机上,具有多种可能的内存配置,并且经常与许多其他 VM 共享相同的管理程序主机。过度使用内存是司空见惯的,管理程序会尝试使用内存膨胀来平衡 VM 的 RAM 分配。即使您的 SQL Server 没有与其他服务共享同一个 Windows 来宾,您也可能希望启用 LPIM 以使其与内存膨胀配合良好,并避免生产工作负载上不必要的内存调整。

这是Microsoft 的一份白皮书,描述了如何配置 Hyper-V 和 SQL Server。

也就是说,如果这是一个测试实例,您可能不太关心内存修剪对性能的影响。

  • 锁定的页面永远不会被分页到磁盘。它们完全绕过 Windows 虚拟内存管理器,将虚拟地址范围直接映射到 RAM。所以SQL Server只会配合释放内存来应对内存压力。Windows 无法像虚拟内存分配那样简单地从 RAM 中删除锁定的页面。 (2认同)