SQL Server 的記憶體使用情況
如何在生產框中檢查我的 SQL 伺服器的記憶體使用情況。我正在使用 SQL Server 2016。當我檢查任務管理器時,它顯示在 90% 以上。我認為這不是 sql server 的真實記憶體使用情況。
我有一個 SQL 性能工具 grafana,它顯示的 CPU 使用率比我在任務管理器中看到的要少得多。我檢查了資源監視器,可以看到平均 CPU 值。我對 SQL 伺服器記憶體使用情況感到困惑。我正在嘗試確定記憶體壓力是否是我的某些問題的問題。
有人可以直接給出一個好的/正確的解釋。
有人可以直接給出一個好的/正確的解釋。
我首先要說任務管理器不是衡量 SQL Server 記憶體消耗的正確位置,當 SQL Server 服務帳戶具有記憶體中的鎖定頁 (LPIM) 權限時,它不會告訴您正確的值。這是因為通常任務管理器跟踪
Process Private bytes
可分頁記憶體並通過VirtualAlloc()函式分配,但服務帳戶具有 LPIM 記憶體分配塊是由不可分頁的AWE API完成的,因此任務管理器不跟踪它,這可能導致不正確價值。SQL Server 使用分配給它的記憶體是很正常的,這通常看起來像是在使用高記憶體,但這是很正常的。如果某些工具顯示低 CPU 使用率並且任務管理器顯示高記憶體,請不要驚慌,這可能是正常的。要了解 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
Phy_Memory_usedby_Sqlserver_MB – 以 MB 為單位提供 SQL Server 使用的總物理記憶體 Total_Memory_usedBy_SQLServer_MB- - 以 MB 為單位提供 SQL Server 使用的總記憶體(RAM+頁面文件)
要詳細了解為什麼不應該使用任務管理器,請參閱Fun with Locked Pages、AWE、任務管理器和工作集……