設置 SQL Server 2005 以使用 32 位 Windows Server 2003 中的所有可用記憶體 - 並對其進行驗證
沿著這條線有許多問題 - 但它們有時相互矛盾,或者沒有展示如何正確驗證一切都在實際工作 - 希望這可以是全面的……
我在 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 使用的全部記憶體,所以我不確定是否信任它)
所以——我的問題…
- 我的最大值應該在 7Gb 左右嗎?如果不是,應該是什麼?
- 為什麼在分配 5G 時,總伺服器記憶體為 3.5G?
- 分配給 SQL Server 的記憶體量的正確度量是什麼?工作集似乎有點大……
- 我可能錯過了設置中的任何步驟嗎?
- 現在開始調整記憶體系統有什麼推薦的資源嗎?
謝謝
您將無法在 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 部署(這確實是唯一明智的選擇)。