32 位元版本的 SQL Server 2005。
32 位元版本的 SQL Server 2008。
作業系統:Windows Server 2008 R2,目前僅提供 64 位元的版本。
但先前的 Windows Server 2008 等作業系統,是同時提供 64 與 32 位元的版本。
以下整理了幾個情境作為參考:
情境 | 可能的作法 |
1. 32 位元作業系統 + 記憶體 1 GB | 考量: 設定 SQL Server 最大可以用記憶體小於 1 GB。 |
2. 32 位元作業系統 + 記憶體 2 GB | 考量: 設定 SQL Server 最大可以用記憶體小於 2 GB。 約可用到 1.7 GB。 |
3. 32 位元作業系統 + 記憶體 4 GB | 考量: (1) 選項:可以考慮在作業系統檔案:Boot.ini,設定加入 /3GB,重新啟動作業系統來發揮作用。 (2) 設定 SQL Server 最大可以用記憶體小於 3 GB。 約可用到 2.7 GB。 |
4. 32 位元作業系統 + 記憶體 8 GB | 考量: (1) 在作業系統檔案:Boot.ini,設定使用 /PAE 參數,才能使用超過 4 GB 的記憶體。 (2) 選項:考慮在作業系統檔案:Boot.ini,設定加入 /3GB,重新啟動作業系統來發揮作用。 (3) 設定:啟用「鎖定記憶體分頁(Lock Pages in Memory)」選項: http://technet.microsoft.com/zh-tw/library/ms190730.aspx (4) 設定 SQL Server 設定啟用 AWE ,組態最大可以用記憶體小於 7 GB。 |
5. 32 位元作業系統 + 記憶體 24 GB | 考量: (1) 在作業系統檔案:Boot.ini,設定使用 /PAE 參數,才能使用超過 4 GB 的記憶體。並確認作業系統檔案:Boot.ini 中沒有 /3GB 參數。 (2) 設定:啟用「鎖定記憶體分頁(Lock Pages in Memory)」選項:http://technet.microsoft.com/zh-tw/library/ms190730.aspx (3) 設定 SQL Server 設定啟用 AWE ,組態最大可以用記憶體小於 22 GB。 |
認識 AWE(Address Windowing Extensions)
未來的 Microsoft SQL Server 版本將移除這項功能。
請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。
SQL Server 會使用 Microsoft Windows Address Windowing Extensions (AWE) API 支援超大容量的實體記憶體。
SQL Server 在 Microsoft Windows 2000 Server 和 Microsoft Windows Server 2003 上最多可以存取 64 GB 的記憶體。
只有在 SQL Server Enterprise、Standard 和 Developer Edition 中才支援 AWE,而且這項支援只適用於 32 位元版本的 SQL Server。Analysis Services 無法使用 AWE 對應的記憶體。
如果可用的實體記憶體低於使用者模式的虛擬位址空間,則無法啟用 AWE。
標準的 32 位元位址,最大可以對應 4 GB 的記憶體。因此會將 32 位元處理序的標準位址空間限制為 4 GB。
根據預設,在 32 位元 Microsoft Windows 作業系統上,會保留 2 GB 供作業系統使用,而另外 2 GB 則供應用程式使用。
如果您在 Windows 2000 Advanced Server 的 Boot.ini 檔中指定 /3gb 參數,則作業系統僅會保留 1 GB 的位址空間,而應用程式最多可以存取 3 GB。
AWE 是一組 Windows 記憶體管理功能的延伸,該功能允許應用程式配置 2-3 GB 以上、可透過標準 32 位元定址取得的記憶體。
AWE 能讓應用程式擷取實體記憶體,然後將非分頁記憶體的檢視,動態對應到 32 位元的位址空間。
雖然 32 位元的位址空間被限制為 4 GB,但非分頁記憶體可以設定成更大。
這讓大量使用記憶體的應用程式,例如大型資料庫系統,配置比 32 位元位址空間所能支援更多的記憶體。
設定作業系統使用 AWE 之前,請考慮下列項目:
(1) AWE 允許在 32 位元架構上配置超過 4 GB 的實體記憶體。應只有在可用的實體記憶體大於使用者模式虛擬位址空間時,才使用 AWE。
(2) 若要在 32 位元作業系統上支援超過 4 GB 的實體記憶體,則必須將 /pae 參數加入 Boot.ini 檔案中,然後重新啟動電腦。
(3) 如果電腦的可用實體記憶體超過 16 GB,作業系統需要 2 GB 的虛擬位址空間用於系統,因此只能支援 2 GB 的使用者模式虛擬位址空間。
請確定 Boot.ini 檔案中沒有 /3gb 參數,如此作業系統就能使用超過 16 GB 的記憶體。如果有的話,則該作業系統無法使用超過 16 GB 的實體記憶體。
--
SQL Server 緩衝集區可完全使用 AWE 對應記憶體,不過,只有資料庫頁面可以對 SQL Server 的虛擬位址空間動態產生對應與取消對應,並充分運用透過 AWE 所配置的記憶體。
AWE 不會直接支援永久存在於虛擬位址空間內的其他使用者、執行緒、資料庫、查詢和其他物件。
--
在 Microsoft SQL Server 2000 中啟用 AWE 記憶體雖然允許 SQL Server 使用超過 2 GB 或 /3 GB 限制的記憶體,但是額外的記憶體只能用來執行資料快取。
提供鎖定、快取程序計劃、使用者連線與資料指標使用的記憶體只能放在非 AWE 的記憶體區域。
在 SQL Server 2000 中啟用 AWE 記憶體的結果是:SQL Server 會在啟動處理時保留並認可記憶體,而不是根據需求動態地增加記憶體。
因而導致 SQL Server 保留住記憶體,一直到處理終止為止。這種記憶體也無法執行分頁作業。
-- 使用 SSMS 設定使用 AWE
-- 使用 T-SQL 設定使用 AWE
下列範例,顯示如何啟動 AWE,以及將 min server memory 設定為 1 GB 的限制並將 max server memory 設定為 6 GB。
--01 首先,請設定 AWE: USE master GO sp_configure 'show advanced options', 1 RECONFIGURE GO sp_configure 'awe enabled', 1 RECONFIGURE GO --02 重新啟動 SQL Server 之後,下列訊息會寫入 SQL Server 錯誤記錄:「已啟用 Address Windowing Extensions」。 --03 USE master GO sp_configure 'min server memory', 1024 RECONFIGURE GO sp_configure 'max server memory', 6144 RECONFIGURE GO
認識「鎖定記憶體分頁(Lock Pages in Memory)」
此原則決定哪些帳戶可以使用處理序將資料保留在實體記憶體中,以防止系統將資料傳送到磁碟上的虛擬記憶體。
SQL Server 中的 [鎖定記憶體分頁] 選項預設會設為 OFF。
如果您具有系統管理員權限,則可使用「Windows 群組原則」工具 (gpedit.msc) 手動啟用此選項,並將此權限指派給執行 SQL Server 的帳戶。
雖然非必要,不過我們建議在使用 64 位元作業系統時在記憶體中鎖定分頁。
對於 32 位元作業系統,您必須先授與 Lock pages in memory 權限,再針對 SQL Server 設定 AWE。
建議:32 位元與 64 位元也是要設定 Lock pages in memory。
預設會停用 Windows 原則鎖定記憶體分頁選項。必須啟用這個權限,才可設定 Address Windowing Extensions (AWE)。
此原則決定哪些帳戶可以使用處理序將資料保留在實體記憶體中,以防止系統將資料傳送到磁碟上的虛擬記憶體。
在 32 位元作業系統上,如果在未使用 AWE 時設定這個權限,則會明顯降低系統效能。
64 位元作業系統不需要鎖定記憶體分頁。
請使用 Windows 群組原則工具 (gpedit.msc),以針對 SQL Server 所使用的帳戶啟用這個原則。
您必須是系統管理員,才可變更這個原則。
若要啟用鎖定記憶體分頁選項:
(1) 在 [開始] 功能表上,按一下 [執行]。在 [開啟舊檔] 方塊中,輸入 gpedit.msc。
此時會開啟 [群組原則] 對話方塊。
(2) 在 [群組原則] 主控台中,依序展開 [電腦設定] 和 [Windows 設定]。
(3) 展開 [安全性設定],然後展開 [本機原則]。
(4) 選取 [使用者權限指派] 資料夾。
這些原則會顯示在詳細資料窗格中。
(5)在窗格中連按兩下 [鎖定記憶體分頁]。
(6)在 [本機安全性原則設定] 對話方塊中按一下 [新增]。
(7)在 [選擇使用者或群組] 對話方塊中加入一個具有執行 sqlservr.exe 權限的帳戶。
認識 Boot.ini 的 PAE 與 3GB 參數
1. 認識 3GB 參數
單獨使用 /3GB 參數會配置 1 GB 核心空間,以及 3 GB 的使用者模式空間。
Windows Server 2003 提供啟動參數的支援,可讓您調整記憶體及記憶體位址空間的使用配置。
不管系統中的實體記憶體數量為何,Windows 32位元版本,都會使用 4 GB 的虛擬地址空間,其中 2 GB 配置給使用者模式處理程序 (例如,應用程式),而另外 2 GB 則配置給核心模式處理程序 (例如,作業系統及核心模式驅動程式)。
在擁有 1 GB 或更多實體記憶體的系統上,可以調整啟動參數可用來將較多的記憶體配置給應用程式 (3 GB),而配置給作業系統較少的記憶體 (1 GB)。
以下以 在 Windows Server 2003 中設定 /3GB 啟動參數為例:
1. 在 [我的電腦] 上按一下滑鼠右鍵,然後選取 [內容]。[系統內容] 對話方塊就會出現。
2. 按一下 [進階] 索引標籤。
3. 在 [啟動及修復] 區域中,按一下 [設定]。[啟動及修復] 對話方塊就會出現。
4. 在 [系統啟動] 區域中,按一下 [編輯]。這樣會以 [記事本] 開啟 Windows boot.ini 檔案。
5. 在 [Operating Systems] 區段中,在含有 /fastdetect 參數的啟動行結尾加上下列參數: /3GB
6. 儲存變更並關閉 [記事本]。
7. 按兩次 [確定] 關閉開啟的對話方塊,然後重新啟動電腦以使變更生效。
但有一個例外狀況,就是同時使用 /3GB 參數及 /PAE 參數的情況。
在這樣的情況下,作業系統不會使用超過 16 GB 的記憶體。
2. 認識 userva 參數
您可以使用 /userva=xxxx 參數,在 Windows Server 2003 系列中更精準地調整使用者與核心虛擬記憶體空間。
在 Boot.ini 檔中搭配 /3GB 參數使用這個新參數,即可將使用者模式空間調整成介於 2 與 3 GB 之間的值,而將其間的差異 (3,072 減去 xxxx) 傳回給核心模式。
請注意,xxxx 是以 MB 表示。
下面的範例 Boot.ini 檔說明如何使用新的參數調整電腦,以配置 2,900 MB 的使用者模式虛擬記憶體和 1,196 MB 的核心模式虛擬記憶體。
這樣會增加 172 MB 的可用核心空間:
[Boot Loader] Timeout=30 Default=multi(0)disk(0)rdisk(0)partition(2)\WINNT [Operating Systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows Server 2003" /fastdetect /3GB /Userva=2900
--
userva=xxxx 參數的設計,讓需要 2 GB 以上使用者模式空間,但不需要單獨使用 /3GB 調整參數所提供之全部空間的程式製造商,可以更精準地調整使用者模式位址空間。
使用這個參數會減少下列系統集區中可用的記憶體:
(1) 未分頁集區
(2) 分頁集區
(3) System Page Table Entries (PTE)
3. 認識 PAE(Physical Address Extension)
PAE 是 IA32 處理器新增的功能,可以定址 4 GB 以上的實體記憶體。其記憶體的定址能力為2的36次方 (64GB)。
下列範例是已加入 PAE 參數的 Boot.ini 檔:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE
參考資料:
如何設定 SQL Server 使用超過 2 GB 的實體記憶體
http://support.microsoft.com/kb/274750/zh-tw
Windows Server 2003 和 Windows 2000 提供大型記憶體支援
http://support.microsoft.com/kb/283037/zh-tw
如何搭配 /3GB 參數使用 /userva 參數,將使用者模式空間調整成介於 2 GB 與 3 GB 之間的值
http://support.microsoft.com/kb/316739/zh-tw
如何在 Windows 中設定 /3GB 啟動參數
http://technet.microsoft.com/zh-tw/library/bb124810(EXCHG.65).aspx
使用 / 3GB 切換在 Exchange Server 2003 Windows Server 2003 為基礎的系統上
http://support.microsoft.com/?kbid=823440
如何搭配 /3GB 參數使用 /userva 參數,將使用者模式空間調整成介於 2 GB 與 3 GB 之間的值
http://support.microsoft.com/kb/316739/zh-tw
4 GB RAM 調整功能與實體位址擴充參數的說明
http://support.microsoft.com/kb/291988/zh-tw
如何在 Windows Server 2003 中編輯 Boot.ini 檔案
http://support.microsoft.com/kb/317526
--
使用 AWE
http://technet.microsoft.com/zh-tw/library/ms175581.aspx
記憶體架構
http://technet.microsoft.com/zh-tw/library/ms187499.aspx
針對 4 GB 以上的實體記憶體啟用記憶體支援
http://technet.microsoft.com/zh-tw/library/ms179301.aspx
針對 SQL Server 啟用 AWE 記憶體
http://msdn.microsoft.com/zh-tw/library/ms190673.aspx
針對 SQL Server 啟用 AWE 記憶體 -- 2005 版本
http://msdn.microsoft.com/zh-tw/library/ms190673(v=sql.90).aspx
處理位址空間
http://msdn.microsoft.com/zh-tw/library/ms189334.aspx
管理大型資料庫的記憶體
http://technet.microsoft.com/zh-tw/library/ms191481.aspx
如何:啟用鎖定記憶體分頁選項 (Windows)
http://technet.microsoft.com/zh-tw/library/ms190730.aspx
沒有留言:
張貼留言