Windows-Server-2003

設置 SQL Server 2005 以使用 32 位 Windows Server 2003 中的所有可用記憶體 - 並對其進行驗證

  • May 4, 2010

沿著這條線有許多問題 - 但它們有時相互矛盾,或者沒有展示如何正確驗證一切都在實際工作 - 希望這可以是全面的……

我在 Windows Server 2003 R2 Standard 上執行 SQL Server 2005 SP3 Standard。我的伺服器安裝了 8GB 記憶體 - 我的系統幾乎完全用作數據庫伺服器 - 上面執行了一些服務,但 OS + 服務可以在 1Gb 的 RAM 內執行。

我做了什麼(如果我做錯了請告訴我):

  • /3GB 在 boot.ini 中。(增加可用的使用者空間記憶體量 - info
  • /PAE 在 boot.ini 中。(不知何故,即使沒有這個開關,Windows 也聲稱正在執行 PAE。)
  • 在 SQL Server 中啟用 AWE。
  • 為使用者系統和本地服務啟用記憶體選項中的鎖定頁面。(資訊)。SQL Server Standard 似乎直到 Cumulative Update 4 才使用這個,它沒有安裝在我的伺服器上。(資料)
  • 將最小/最大記憶體設置為:1024Mb/5112Mb

完成上述所有操作後,我們肯定看到了一定程度的改進——但我現在想驗證我的設置,確保我充分利用了可用記憶體。(當 max = 7Gb 時似乎出現了放緩,所以我從那個值逐漸下降,但它可能只是感性的。)

為了驗證,我檢查了 PerfMon 中的以下級別:

  • 程序(sqlserv):工作集:76386304
  • SQL Server(記憶體管理器):總伺服器記憶體:3538944(我看到一個文件指出這不是 SQL Server 使用的全部記憶體,所以我不確定是否信任它)

所以——我的問題…

  1. 我的最大值應該在 7Gb 左右嗎?如果不是,應該是什麼?
  2. 為什麼在分配 5G 時,總伺服器記憶體為 3.5G?
  3. 分配給 SQL Server 的記憶體量的正確度量是什麼?工作集似乎有點大……
  4. 我可能錯過了設置中的任何步驟嗎?
  5. 現在開始調整記憶體系統有什麼推薦的資源嗎?

謝謝

您將無法在 Windows 2003 Standard 中使用 AWE。您需要 Enterprise,請參閱Windows Server 2003 和 Windows 2000 中提供大記憶體支持

PAE 是 IA32 處理器增加的處理超過 4 GB 物理記憶體的能力。以下作業系統可以使用 PAE 來利用超過 4 GB 的物理記憶體:

* Microsoft Windows 2000 Advanced Server
* Microsoft Windows 2000 Datacenter Server
* Microsoft Windows Server 2003, Enterprise Edition
* Microsoft Windows Server 2003, Datacenter Edition

要啟用 PAE,請使用 Boot.ini 文件中的 /PAE 開關。

您看到的工作集是 7MB,而不是 7GB。這是程序的正常工作集,因為工作集不測量分配給程序的記憶體量,而只測量總是小得多的工作集:

顯示此程序的工作集中的目前字節數。工作集是程序中的執行緒最近接觸的記憶體頁集。如果電腦中的可用記憶體高於某個門檻值,則即使頁面未被使用,頁面也會留在程序的工作集中。當可用記憶體低於某個門檻值時,將從工作集中修剪頁面。如果需要它們,則在它們離開主記憶體儲器之前將它們軟故障返回到工作集中。

您需要查看Process\Virtual Bytes

顯示程序正在使用的虛擬地址空間的目前大小(以字節為單位)。使用虛擬地址空間並不一定意味著相應使用磁碟或主記憶體頁面。虛擬空間是有限的,如果使用太多,程序會限制其載入庫的能力。

SQL Server 記憶體為 3GB,這是它在帶有 /3GB 開關的 Windows Standard 上可以分配的全部記憶體。

因此,您需要購買 Enterprise Windows 許可證,或者只是遷移到 64 位作業系統和 64 位 SQL 部署(這確實是唯一明智的選擇)。

引用自:https://serverfault.com/questions/132936