服务器内存使用报告不正确?

Server memory usage reporting incorrect?

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

我习惯于看到 SQL 服务器使用大量内存(我们将此内存限制为 96GB),但我看到任务管理器中奇怪地报告了这一点。我看到 75% 的内存使用率,但针对 SQL 服务器只有 755.5MB。虽然后台还有其他服务 运行,但总容量还不到 128GB 的​​ 75%。

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

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

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;

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

非常感谢。

Taskmanager 仅显示通过 VirtualAlloc 分配内存的进程。当在 SQL 服务器中设置锁定页面时,AllocateUserPhysicalPages 用于分配,这不会显示在 TaskManager 中。所以你不能依赖 TaskManager SQL 内存使用。