PostRank

2009/08/20

如何設定 SQL Server 使用超過 2 GB 的實體記憶體

如何設定 SQL Server 使用超過 2 GB 的實體記憶體

SQL Server 2000 Enterprise 和 SQL Server 2000 Developer Editions 都可以使用下列選項:
‧ 使用 Boot.ini 的 /PAE 參數和 SQL Server 的 AWE 啟用選項,可以讓 SQL Server 2000 使用超過 4 GB 的記憶體。如果沒有使用 /PAE 參數,則 SQL Server 最多只能使用 3 GB 記憶體。

注意 如果要讓 AWE 在 Windows 2000 Data Center 中能夠使用 16 GB 以上的記憶體範圍,請確定 Boot.ini 檔案中沒有 /3GB 參數。如果在 Boot.ini 檔案中有 /3GB 參數,Windows 2000 可能就無法正確定址 16 GB 以上的任何記憶體。

當您在 32 GB 系統上配置 SQL Server AWE 記憶體時,Windows 2000 可能需要至少 1 GB 記憶體來管理 AWE。

下列範例顯示如何啟用 AWE 以及如何為 [最大伺服器記憶體] 選項設定 6 GB 的限制:

sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO

 

32bit OS 的只能定址到 4GB 的實體記憶體,這也是為什麼當你實體記憶體超過 4GB 時預設是無法使用 4GB 以上的實體記憶體(因為定址不到)。Intel 在 Pentium Pro 後加上了 PAE(Physical Address Extension) 增加 4bit 來讓定址能到 32GB。所以以你的例子來說要在 boot.ini 中加上 /PAE 參處才能定址到所有的記憶體。

Windows 所有作業系統開啟 PAE 後支援的最大實際記憶體容量如下表所示: 

作業系統 支援 PAE 後的最大記憶體容量

Windows 2000 Advanced Server

8 GB 的實體 RAM

Windows 2000 Datacenter Server

32 GB 的實體 RAM

Windows XP (所有版本)

4 GB 的實體 RAM*

Windows Server 2003 (and SP1) Standard Edition

4 GB 的實體 RAM*

Windows Server 2003 Enterprise Edition

32 GB 的實體 RAM

Windows Server 2003 Datacenter Edition

64 GB 的實體 RAM

Windows Server 2003 SP1 Enterprise Edition

64 GB 的實體 RAM

Windows Server 2003 SP1 Datacenter Edition

128 GB 的實體 RAM


/3GB 參數與實體記憶體無關,就算你實體記憶體只有 2G 或更少也可以開啟 3GB 參數。這個參數影響的是每個應用程式能定址到的記憶體容量。32Bit 應用程式啟動的時候都是直接給他 4GB 的空間。預設值是 App 2GB/ System 2GB,透過 /3GB 參數可以把分配改成 App 3GB/System 1GB。當然分配歸分配,你的應用程式使用到的記憶體才會被分配,這時候可以分配到實體的記憶體位置,也可以分配到虛擬記憶體上(Pagefile)。所以如果你沒有開啟 3GB 參數,當你的應用程式要使用超過 2GB 的記憶體時,系統會告訴他 Out of Memory,即使你實體記憶體有 8GB 也沒用。
當您的應用程式會使用超過 2GB 的話還能夠繼續抓到記憶體就表示你的 3GB 設定生效了。當然如果您的應用程式需要的記憶體不只 3GB,您就必須要使用 AWE 方式來使用超過 3GB 的記憶體。
 
/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 參數。
 
AWE (Address Windowing Extensions) 允許 32 位元的作業系統存取大量的記憶體。AWE 是由作業系統所公開,而且在 Microsoft Windows 2000 Server 與 Windows Server 2003 中的實作方式稍微不同。AWE 是使用 awe enabled 選項 所啟用的。
 

詳細資訊,請參閱< 管理大型資料庫的記憶體>。

在 Windows Server 2003 上,SQL Server 支援 AWE 記憶體的動態配置。在啟動期間,SQL Server 只保留一小部分的 AWE 對應記憶體。如果需要額外的 AWE 對應記憶體,作業系統會將它動態配置到 SQL Server。同樣地,如果需要較少的資源,SQL Server 可以將 AWE 對應記憶體傳回作業系統,供其他處理序或應用程式使用。如需有關 awe enabled 組態選項的詳細資訊,請參閱< awe enabled 選項>。

在 Windows Server 2003 系列之後,已增加了可支援的實體記憶體量。AWE 可存取的實體記憶體將視您使用的作業系統而有所不同。下列清單中提供每個 Windows Server 2003 作業系統在寫入時,可以存取的實體記憶體上限。

  • Windows Server 2003 Standard Edition 最高支援 4 GB 的實體記憶體。
  • Windows Server 2003 Enterprise Edition 最高支援 32 GB 的實體記憶體。
  • Windows Server 2003 Datacenter Edition 最高支援 64 GB 的實體記憶體。

設定記憶體選項

搭配任何 Windows Server 2003 作業系統版本執行時,SQL Server 會動態配置 AWE 對應記憶體。換句話說,緩衝集區可以動態管理 AWE 對應記憶體 (在 min server memory max server memory 選項的條件約束內),以平衡與整體系統需求搭配使用的 SQL Server 記憶體。

啟用 AWE 時,SQL Server 一定會嘗試使用 AWE 對應記憶體。這個動作會套用至所有記憶體組態,包括設定為提供小於 3 GB 使用者模式位址空間給應用程式的電腦。

簡單來說是

  • /PAE 是給作業系統用的,目的是要存取超過 4GB 的實體記憶體
  • /3GB 是給應用程式用的,目的是要讓應用程式可以使用超過 2GB 的記憶體(最大 3GB)。例如 Exchange Server
  • 如果您的應用程式需要超過 3GB 的記憶體,您要使用 AWE(Address Windows Extension)才能使用超過 3GB 的記憶體。例如 SQL Server

 

參考資料:

 
 

如何編輯 Boot.ini 檔案,以添加 /3GB /PAE參數

如果要檢視及編輯 Boot.ini 檔案,請依照下列步驟執行:
  1. 按一下 [開始],指向 [設定],然後按一下 [控制台]
  2. 在 [控制台] 中,按兩下 [系統]
  3. 按一下 [進階] 索引標籤,然後按一下 [啟動及修復] 下的 [設定]
  4.  [系統啟動] 下方,按一下 [編輯]
注意:在多重開機作業系統設定中,藉由在 [預設作業系統] 清單中按一下所需的作業系統,以選取要啟動的預設作業系統。

沒有留言: