SQLSERVER中的AWE功能


SQLSERVER中的AWE功能

由於32位Windows用戶進程有4GB的虛擬地址空間。其中2GB給核心態,剩下2GB給用戶態。這兩部分嚴格分開。Windows不會因為其中某一塊

內存地址空間用盡而將另外一塊的空間讓出。

 

由於SQLSERVER的絕大部分指令都運行在用戶態下,就是說SQLSERVER的內存基本上使用用戶態地址空間資源。現在的情況是2GB地址空間資源

對於SQLSERVER來說嚴重阻礙了SQLSERVER有效利用硬件資源

 

所以SQLSERVER引入了AWE address windowsing extensions(地址空間擴展)。這是允許32位應用程序分配64GB物理內存,並把視圖或窗口

映射到2GB虛擬地址空間的機制。

使用AWE,使得一個應用程序能夠訪問最多達64GB的物理內存!!!

 在SQL2000的企業版,SQL2005/2008的企業版和標准版都支持這個技術,也能夠享受這個技術帶來的好處

開啟這個功能的語句,執行完之后,重啟SQLSERVER服務即可

1 EXEC sys.sp_configure @configname = 'AWE Enabled', -- varchar(35)
2     @configvalue = 1 -- int
3 RECONFIGURE
4 GO

 

AWE具體實現圖

 有幾點需要注意的:

(1)開啟這個功能需要SQLSERVER啟動帳戶在Windows上的lock pages in memory權限。沒有這個權限,AWE就不能成功被開啟。

啟動的SQLSERVER這時候只能使用2GB的地址空間。

所以DBA要確認一下SQLSERVER的errorlog里有沒有相關的信息
成功開啟:server  Address Windowing Extensions enabled
消息
Address Windowing Extensions is enabled. This is an informational message only; no user action is required.
開啟失敗:Cannot use Address Windowing Extensions because lock memory privilege was not granted

(2)這個功能是在應用層面有意識地使用,而不是在Windows層面實施的。也就是說SQLSERVER在申請內存時,通過特殊API調用申請到的,

如果SQLSERVER不調用這個功能,就還會在普通的2GB虛擬地址空間申請內存。在SQLSERVER中不是所有的內存申請都會調用AWE技術,

只有先reserve,再commit的內存調用,SQLSERVER才使用AWE讓他們使用到擴展的內存。其他方式申請的內存只能使用普通的2GB地址空間。

 

正因為這樣,AWE不能稱為解決SQLSERVER地址空間不足的最終解決方案。使用64位的服務器,虛擬地址空間可以達到8TB,

大於現在絕大多數的單個服務器的物理內存數。在64位下運行的SQLSERVER,其性能往往比在32位上有比較明顯的提高。 

 

最后附上各個版本Windows上支持的最大內存數
            配置                                                          應用虛擬地址空間大小        最大物理內存數         是否支持AWE/locked pages support
32位SQLSERVER                                                             2GB                            64GB                       YES
32位SQLSERVER   + /3GB boot.ini參數                              3GB                            16GB                       YES
32位SQLSERVER  應用在x64位操作系統(WOW)                  4GB                            64GB                       YES
32位SQLSERVER  應用在IA64操作系統(WOW)                    2GB                             2GB                       NO
64位SQLSERVER  應用在x64操作系統                                   8TB                             2TB                        YES
64位SQLSERVER  應用在IA64操作系統                                 7TB                              2TB                        YES

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM