【问题标题】:Server memory usage reporting incorrect?服务器内存使用报告不正确?
【发布时间】:2019-06-01 23:22:12
【问题描述】:

我有一个运行 SQL Server 2016 的 Windows 2016 Server (128GB Ram),我在内存使用报告中看到了一些不寻常的数字。

我习惯于看到 SQL Server 使用大量内存(我们将这个限制为 96GB),但我在任务管理器中看到了这种奇怪的报告。我看到 75% 的内存使用率,但只有 755.5MB 与 SQL Server 相比。虽然还有其他服务在后台运行,但总量远不及 128GB 的​​ 75%。

正如我所料,75% 反映在性能管理器中,96% 致力于 SQL。

在 sql server 内部,我从内部报告中得到了类似的数据。

SELECT  (physical_memory_in_use_kb / 1024)          Phy_Memory_usedby_Sqlserver_MB
,       (locked_page_allocations_kb / 1024)         Locked_pages_used_Sqlserver_MB
,       (virtual_address_space_committed_kb / 1024) Total_Memory_UsedBySQLServer_MB
,       process_physical_memory_low
,       process_virtual_memory_low
  FROM  sys.dm_os_process_memory;

我被要求调查为什么任务管理器显示出如此低的使用率,而我们预计它会高得多。如果我在这里有一般性的误解,请告诉我。如果我可以执行任何进一步的测试来帮助追踪这一点,那么我很乐意这样做。

非常感谢。

【问题讨论】:

    标签: memory sql-server-2016 windows-server-2016


    【解决方案1】:

    Taskmanager 只显示通过 VirtualAlloc 分配内存的进程。在 SQL Server 中设置 Lock Pages 时,使用 AllocateUserPhysicalPages 进行分配,这不会显示在 TaskManager 中。所以你不能依赖 TaskManager 来使用 SQL 内存。

    【讨论】:

    • 应该使用性能监视器来监视 SQL Server 内存。请参阅 [本文档]。 SQL Server: Memory Manager: Total Server Memory (KB) 计数器报告 SQL Server 使用的内存。
    • 嗨,丹。您能否再次发布该文档的链接?它没有通过。
    • 您好 Jan。我已经检查过了,是的,您是对的,已在此服务器上设置了锁定页面。从我所见,这是必须由某人手动设置的设置?我查看了我们的其他几台服务器,但似乎在其他任何地方都没有启用它。
    • 您可以在组策略中设置锁定页面。此外,您还可以获得更好的性能来保持锁定页面。见:docs.microsoft.com/en-us/sql/database-engine/configure-windows/…
    猜你喜欢
    • 2010-09-13
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    相关资源
    最近更新 更多