5up*_*dan 9 sql-server memory configuration sql-server-2012

我有两个 SQL Server 2012 实例在具有 32GB RAM 的服务器上运行,并且很少运行其他实例。
一个实例表现正常。它的工作集内存运行接近其提交,这也接近 SQL Server 中的最大服务器内存设置。
另一个实例(在图像中突出显示)的行为不符合我的预期。无论我如何配置它的最小和最大内存设置,即使服务器上有足够的可用 RAM,我也无法获得超过几百 MB 的工作集内存。
这对其性能产生了非常不利的影响,尤其是在重负载下。数据库使用得很好,当这个实例正常工作时*它会很快填满20GB的最大服务器内存设置。
服务器已重新启动。实例已重新启动。我尝试更改为各种最小/最大设置并停止运行良好的实例 - 只是为了检查它是否以某种方式干扰。问题仍然存在,而一个实例似乎对最小和最大内存设置正常响应,而另一个则没有。
* 我不知道发生了什么变化,否则我会把它改回来。
任务管理器或资源监视器中的内存计数器不是确定 SQL Server 内存使用情况的好方法。如果 SQL Server 使用锁定页面,则这些不会显示在工作集或专用字节中。
有多种方法可以确定 SQL Server 是否正在使用锁定页面。您可以在错误日志中查找类似以下的消息:
Using locked pages in the memory manager
或者,检查sys.dm_os_process_memoryDMVlocked_page_allocations_kb列。例如,在使用锁定页面的本地测试实例上,我看到:

而资源监视器显示:

请注意,这与sys.dm_os_sys_memory您在问题评论中提到的DMV不同。
DMV 中有各种其他有用的内存使用信息,包括高或低虚拟或物理内存指示。这些都在联机丛书中有所描述。
似乎SeLockMemoryPrivilege最近有人将 授予了SQL Server 启动帐户,或者该帐户已更改为LocalSystem,默认情况下具有此权限。
一般来说,在内存中锁定页面是一件好事。
| 归档时间: |
|
| 查看次数: |
1555 次 |
| 最近记录: |