Sql-Server

了解 2 個應用數據庫伺服器之間的被盜和外來記憶體使用情況

  • May 31, 2019

下面是更多關於如何解釋來自我的性能計數器的數據的更多資訊,用於 2 個具有不同應用程序結構但工作量類似的數據庫伺服器

伺服器 A 共有 1 TB RAM,數據庫約為 10 TB,通過 4 個 NUMA 節點配置具有以下指標

在此處輸入圖像描述

伺服器 B 共有 1 TB RAM,數據庫約為 16 TB,通過 4 個 NUMA 節點配置具有以下指標

在此處輸入圖像描述

由於數據庫的大小很大,伺服器 B 分配了更多的 MAX 記憶體。是的,我知道 MAX 記憶體設置可以改進一點點,但如果我能更好地理解上述數字以用於被盜和外來記憶體,我會計劃稍後。

這些數字告訴我什麼,因為我看到一台伺服器的外來記憶體似乎約為 50 GB,而在另一台伺服器上被盜的記憶體為 150 GB,而外來似乎只有 5 GB。

對不起,我在這裡缺乏知識,但有人可以指導更好的方法來解釋這些數據以及人們可以想到在這裡調整哪些可能的變化?

被盜記憶體是指用於緩衝區以外的其他內容的記憶體,如果它不用於其他內容,則可以用於緩衝區。看看為什麼 SQL Server 2012 仍然需要“Stolen Server Memory (KB)”。為了最大限度地減少被盜記憶體的數量,需要優化查詢,使它們使用盡可能少的記憶體。例如,如果有不必要的排序,這可能會使用一些記憶體。如果它是一個報告伺服器,我猜你只需要考慮一些被盜的記憶體。

外部記憶體是指遠端 NUMA 節點上的工作記憶體。請參閱它的工作原理:SQL Server(NUMA 本地、外部和離開記憶體塊)。當記憶體是外來的時,訪問它需要更長的時間,並且影響取決於您的系統和組件的速度。為了最小化,您需要確保正確設置了 NUMA 配置和最大並行度。

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