數據庫機器上的記憶體消耗
我的數據庫伺服器正在消耗71% - 75%的RAM 記憶體,我可以從 perfMonitor 日誌中看到 SQL_Service 正在消耗65% - 69% 的 RAM 記憶體。
我們執行了不同的操作來降低記憶體消耗,例如:
- 我們清除了大部分數據庫以減小磁碟大小。
- 我們使用 SQL Server 重新啟動處於活動狀態的不同應用程序服務。
伺服器 RAM 記憶體總共為 65 GB。
期待專家意見。如何降低記憶體消耗?
看起來您正在一台伺服器上同時執行 SQL Server 和應用程序。
SQL Server 將按設計消耗所有記憶體。(SQL Server 中的預設 MAX 記憶體設置為 2147483647 MB。)
如果您將預設 MAX 記憶體設置更改為其他值,則 SQL Server 將在重新啟動後開始為數據記憶體、查詢計劃記憶體和其他 SQL Server 相關組件消耗記憶體。
在某個時間點,SQL Server 將通過 MIN 記憶體設置。SQL Server 不會通過此設置將記憶體釋放回作業系統。
稍後 SQL Server 實例可能會達到 MAX 記憶體設置。SQL Server 不會通過此行進行數據記憶體和計劃記憶體。但是,SQL Server 程序可以使用超過 MAX 記憶體伺服器設置,因為某些對像在 MAX 記憶體設置之外執行(取決於版本)並且 SQL Server 可能會過度使用記憶體。這將在下面的文章中討論
SQL Server 2012 及更高版本中的記憶體配置和大小調整注意事項
您的 SQL Server 現在將在 MIN 和 MAX 記憶體設置之間消耗記憶體,直到您重新啟動 SQL Server 實例。
注意:降低正在執行的 SQL Server 實例的 MAX 記憶體設置將清除記憶體中的數據記憶體並導致性能下降。
如果您的 SQL Server 實例是在應用程序伺服器上執行而不是單獨執行,那麼您可能必須減少 SQL Server 的 MAX memory 設置,以允許應用程序共享一些記憶體。
如果您的 SQL Server 實例獨立執行,請嘗試根據以下建議配置 MAX 記憶體設置:
…為作業系統預留 1 GB RAM,從 4–16 GB 安裝的每 4 GB RAM 預留 1 GB,然後在 16 GB RAM 以上安裝的每 8 GB RAM 預留 1 GB…
參考:我的 SQL Server 實際需要多少記憶體?(SQLSkills.com)
還有其他一些很好的文章解釋了 SQL Server 如何使用 RAM。
- Microsoft SQL Server 記憶體系統管理員指南(BrentOzar.com)
- 伺服器記憶體伺服器配置選項(Microsoft.com)
- 我的 SQL Server 實際需要多少記憶體?(SQLSkills.com)