Performance

64 位 Windows 2008 Server Standard 上的 32 位 Enterprise SQL 2005。記憶體配置

  • March 26, 2019

在一個項目上工作,我們需要先穩定然後升級。

我們在 64 位 Windows 2008 標準伺服器上安裝了 32 位企業版 SQL Server 2005。

伺服器安裝了 64GB RAM,但是在 taskmgr 中只有 32GB 可用。我相信這是標準 Windows Server 限制,只是想確認一下。

在此處輸入圖像描述

另一方面,我們在 perfmon 上檢查了 SQL Server 記憶體計數器,我們得到的目標記憶體和總記憶體的​​值大約是 3.500.000,所以我猜 SQL Server 正在使用大約 3.5GB?

在此處輸入圖像描述

我想問一下我們需要進行哪些配置才能使 SQL Server 使用盡可能多的記憶體,希望 28 GB,為作業系統留出 4 GB,因為我們在這台機器上沒有其他服務。

這是我到目前為止的計劃,但由於它是一個生產環境,理想情況下我會嘗試一次嘗試,因為不想多次停止服務:

  • 服務帳戶是本地系統,但我在 SQL Server 日誌中看不到“使用鎖定頁面作為緩衝池”。我是否需要切換到另一個使用者帳戶才能利用“在記憶體中鎖定頁面”策略?我在 SQL Server 日誌中看到的是:“使用動態鎖分配。每個節點初始分配 2500 個鎖塊和 5000 個鎖所有者塊。這只是一條資訊性消息。不需要使用者操作。”
  • Max server memory 屬性設置為 10240;我認為在記憶體中啟用鎖定頁面後,我需要將其增加到 28000
  • 由於這是 64 位作業系統,因此無需啟用 AWE。但是,在 SQL 伺服器日誌中,我可以看到此消息:“在配置參數中將 AWE Enabled 設置為 1,以允許使用更多記憶體。”

為了為 SQL Server 啟用更多記憶體,我還需要考慮其他什麼?

伺服器安裝了 64GB RAM,但是在 taskmgr 中只有 32GB 可用。我相信這是標準 Windows Server 限制,只是想確認一下。

您是正確的 Windows Server 2008 Standard 的最大記憶體限制為 32 GB。這在Windows Server Machines 的記憶體限制中有所提及。

另一方面,我們在 perfmon 上檢查了 SQL Server 記憶體計數器,我們得到的目標記憶體和總記憶體的​​值約為 3.500.000,

當 32 位 SQL Server 安裝在 64 位機器上時,它被稱為WOW System. 為此,虛擬地址空間限制為 4GB。在正常和預設配置中,SQL Server 無法看到/使用超過 VAS 限制的記憶體,因此您在 Perfmon 計數器中看到 3.5 GB。

服務帳戶是本地系統,但我在 SQL Server 日誌中看不到“使用鎖定頁面作為緩衝池”

由於您使用的是 32 位系統,因此您不應查找此消息,而是查找“地址視窗擴展已啟用”,如果您看到此消息,則表示已啟用。如果您有 64 位系統,那麼消息“使用鎖定頁面用於緩衝池”是有意義的。實際上,這就是 AWE 分別在 32 位和 64 位中的工作方式。

由於這是 64 位作業系統,因此無需啟用 AWE。

不,這適用於 64 位 SQL Server,而不是如果您有 32 位 SQL Server。

現在,為了讓 SQL Server 看到更多記憶體,您必須啟用 AWE,以便 SQL Server數據和索引頁面可以看到超過 4 GB 的記憶體。由於您的視窗可以看到超過 4 GB(在您的情況下為 32 GB)AWE 將幫助 SQl Server 數據和索引頁面訪問更大的記憶體部分。請注意我提到了數據和索引頁面,除此之外沒有其他記憶體使用者可以看到這些額外的記憶體。

**PS:**在撰寫答案時,大多數blogs.msdn連結都沒有打開,因為它們正在遷移到新平台,我會在它們開始工作後立即添加答案中的連結,以便您有一些閱讀參考

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