Sql-Server

SQL Server 實例僅使用幾百 MB。遠低於最低伺服器記憶體設置

  • October 27, 2020

資源監視器的螢幕抓取

我有兩個 SQL Server 2012 實例在具有 32GB RAM 的伺服器上執行並且幾乎沒有其他執行。

一個實例表現正常。它的工作集記憶體執行接近其送出,這也接近 SQL Server 中的最大伺服器記憶體設置。

另一個實例(在圖像中突出顯示)的行為與我預期的不同。無論我如何配置它的最小和最大記憶體設置,我都無法獲得超過幾百 MB 的工作集記憶體,即使伺服器上有足夠的可用 RAM。

這對其性能具有非常不利的影響,尤其是在重負載下。數據庫使用得很好,當這個實例正常工作時*它會很快填滿最大伺服器記憶體設置 20GB。

伺服器已重新啟動。實例已重新啟動。我嘗試更改為各種最小/最大設置並停止執行正常的實例 - 只是為了檢查它是否不會以某種方式乾擾。問題仍然存在,雖然一個實例似乎對最小和最大記憶體設置做出了正常響應,而另一個則沒有。

*我不知道發生了什麼變化,否則我會把它改回來。

  • 作業系統和 SQL Server 都是 64 位的。
  • sys.configurations的內容在兩個實例上是相同的。
  • “低”伺服器上的數據庫總數為 10 GB。
  • 我有信心在伺服器上放置了足夠的負載,它應該使用更多的記憶體。在過去,它過去常常很快地填滿它的記憶體分配。
  • 我已經對應該將數據拉入記憶體的表進行了一些大型查詢。
  • 這是一個專門的數據庫伺服器,它上面沒有執行其他任何東西,並且自從這個問題開始以來它的執行速度明顯變慢。
  • sys.dm_os_sys_memoryperfmon與資源監視器一致。
  • 目標伺服器記憶體 (KB) = 10240008;伺服器總記憶體 (KB) = 5237744

任務管理器或資源監視器中的記憶體計數器不是確定 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 中還有各種其他有用的記憶體使用資訊,包括高或低虛擬或物理記憶體指示。這些都在聯機叢書中進行了描述。

好像最近有人將 授予了SeLockMemoryPrivilegeSQL Server 啟動帳戶,或者該帳戶已更改為LocalSystem預設情況下具有此權限

一般來說,在記憶體中鎖定頁面是一件好事

引用自:https://dba.stackexchange.com/questions/66661