Sql-Server-2008

已配置最大伺服器記憶體,但它增加了更多配置

  • March 31, 2021

根據我之前寫的一篇文章,我使用以下參數配置了我的伺服器:

配置的實例參數

我將 22497 作為最大伺服器記憶體,禁用 AWE,因為它在 64 位環境中執行並且是生產伺服器。

在重新啟動期間,它從最小配置開始,然後慢慢增加記憶體消耗,直到接近午夜時達到最大記憶體配置。

在那之前,如果我監控記憶體消耗,任務管理器會報告記憶體增加到 25 GB 的 RAM。昨天我們刪除了 AWE,重啟了實例,它開始慢慢增加記憶體直到大約 17:00pm ,它使用了將近 25.2 GB 的 RAM:

下午 17:00 狀態

今天重新啟動後,它現在使用 11GB。

我現在,在之前的文章中說這種記憶體消耗是 SQL Server 的“正常行為”,但是為什麼它突然使用了我設置為最大值的更多最大記憶體?更新 2021-03-31:

至於今天 2021 年 3 月 31 日上午 8:09,我的伺服器正在使用 25.3 GB 的 RAM:

目前記憶體使用情況

使用 Aleksey 腳本 這是 SQL 報告使用的數字:

阿列克謝腳本的數量

資源監視器說 SQL Server 正在使用所有 RAM:

今天的資源監視器

昨天 17:00 使用 13 GB

在此處輸入圖像描述

這就是伺服器的行為,這就是為什麼我要問這是否正常,是什麼讓伺服器使用 25.3 GB,如果它的限制應該是 22.5 GB(根據我的計算四捨五入)。這就是問題所在。

我知道微軟的文獻說了很多東西,但我不知道為什麼會出現這種行為,我已經檢查過儲存過程、索引、作業等。我看不出是什麼使 SQL Server使用更多分配的最大伺服器記憶體。

我禁用了 AWE,因為此實例在 Hyper V、64 位環境中的虛擬機中執行,(Windows 2008 R2 64 位,Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48: 46 版權所有 (c) Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor) 上的 Microsoft Corporation Enterprise Edition(64 位),我不知道這種行為是怎麼回事。

MAX SERVER MEMORY 在 SQL Server 2012 之前的工作方式略有不同:

從 SQL Server 2012 開始,多頁分配和 CLR 分配也包含在由最大伺服器記憶體 (MB) 和最小伺服器記憶體 (MB) 控制的記憶體限制中。

SQL Server 2012 及更高版本中的記憶體配置和大小調整注意事項

當總使用記憶體再次達到超過 25 GB 的 RAM 時,您可以使用 Windows 資源監視器(記憶體選項卡)檢查 SQL Server 消耗了多少 RAM

Windows 資源監視器

其他一些應用程序也可能會消耗您的記憶體,資源監視器可以幫助確認(或以其他方式證明 SQL Server 誇大了限制)


另外,檢查 SQL Server 目前使用了多少記憶體,嘗試儲存過程“MemoryManagerInfo”

https://github.com/aleksey-vitsko/Database-Administrator-Tools/blob/master/Memory%20-%20MemoryManagerInfo.sql

將其部署到任何使用者數據庫並執行。將輸出發佈到問題

它將類似於下圖:

記憶體管理器資訊

此 SP 將有助於確認或反駁您的 SQL Server 消耗超過 22497 MB

查找“目標伺服器記憶體”和“總伺服器記憶體”值

更新:

根據您今天添加到問題中的螢幕截圖 - 1) Windows 任務管理器(您發布的不是資源監視器)說您的 SQL Server 正在使用 23,281,112 KB,即 = 22.2 GB

不是 25.3 GB !其他 3.1 GB 只是其他應用程序

如果您擔心伺服器記憶體不足,請將 SQL Server 中的 Max Server Memory 降低到一個較低的數字(20 GB、19 GB、18 GB 等)。

資源監視器

在此處輸入圖像描述

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