2009. 1. 13. 10:46
MSSQL 2005 메모리 확장 : AWE (Address Windowing Extensions) Work/SQL Server2009. 1. 13. 10:46
MSSQL 2005 AWE(Address Windowing Extensions) 정리
AWE란 SQL Server 2005 Enterprise Edition에서 32비트 버전의 Microsoft Windows 운영 체제에서 실제 메모리를 4GB 이상 사용할 수 있도록 하는 기능입니다.
SQL Server 2005에서는 AWE(Address Windowing Extensions) API를 사용하여 구성된 가상 메모리에 설정된 한계보다 더 큰 실제 메모리 액세스를 제공할 수 있으며, 사용할 수 있는 메모리 양은 하드웨어 구성과 운영 체제 지원에 따라 달라집니다. Windows Server 2003 운영 체제부터 지원하는 실제 메모리 용량이 늘어났으며, AWE에서 액세스할 수 있는 실제 메모리 용량은 사용 중인 운영 체제에 따라 달라집니다.
운영 체제 / AWE에서 액세스 가능한 실제 메모리 크기
Windows Server 2003 Standard Edition / 4GB
Windows Server 2003 Enterprise Edition / 32GB
Windows Server 2003 Datacenter Edition / 64GB
MSSQL 2005 Edition / 사용가능 메모리 크기
MSSQL 2005 Express / 1G
MSSQL 2005 WorkGroup / 2G
MSSQL 2005 Standard / 무제한
MSSQL 2005 Enterprise / 무제한
AWE는 Enterprise Edition과 Developer Edition에서만 지원되며 32비트 운영 체제에만 적용됩니다. 64 bit 플랫폼의 경우에는 디폴트로 AWE가 활성화되기 때문에 /pae 옵션을 사용할 필요도 없으며 'awe enabled' 구성 옵션을 설정할 필요도 없습니다. SQL Server 2000과 달라진 점 중 하나입니다.
32 bit SQL Server 2005에서 4GB 이상의 실제 메모리를 지원하려면 다음과 같은 작업이 필요합니다.
1. /pae 매개 변수를 boot.ini 파일에 추가하고 컴퓨터를 다시 부팅합니다.
설정은 아래와 같은 기준으로 하면 될 듯 합니다.
4GB RAM: /3GB (AWE support is not used)
8GB RAM: /3GB /PAE
16GB RAM: /3GB /PAE
16GB + RAM: /PAE
--Windows의 boot.ini 에 추가할 옵션
4 GB : 0 (Disabled) /3GB Dynamic (default)
8 GB : 1 (Enabled) /3GB /PAE 6.5 GB
16 GB : 1 (Enabled) /3GB /PAE 14.5 GB
16 GB↑ : 1 (Enabled) /PAE ~
*32 GB : 1 (Enabled) /PAE 29.5 GB
32 GB↑ : 1 (Enabled) /2GB /PAE
-------------------------------------------------
64bit SQL Ignored N/A dynamic
------------------------------------------------------------------------------------------------------------------
-- sample begin
------------------------------------------------------------------------------------------------------------------
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /3GB /PAE
------------------------------------------------------------------------------------------------------------------
-- sample end
------------------------------------------------------------------------------------------------------------------
2. "메모리의 페이지 잠그기(LOCK PAGE IN MEMORY)" 로컬 보안 정책에 SQL Server 서비스 계정으로 지정된 윈도우 사용자 계정을 추가합니다.
------------------------------------------------------------------------------------------------------------------
-- sample begin
------------------------------------------------------------------------------------------------------------------
실행 > gpedit.msc 실행 > 로컬 컴퓨터 정책/컴퓨터 구성/Windows 설정/보안 설정/로컬 정책/사용자 권한 할당/메모리의 페이지 잠그기(LOCK PAGE IN MEMORY) 에 SQL Server Service Account 추가
------------------------------------------------------------------------------------------------------------------
-- sample end
------------------------------------------------------------------------------------------------------------------
3. sp_configure를 사용하여 ‘awe enabled’ 옵션을 1로 설정합니다. ‘awe enabled’ 옵션은 고급 옵션으로서 ‘show advanced options’를 1로 설정해야만 변경할 수 있습니다. AWE를 적용하려면 SQL Server 인스턴스를 다시 시작해야 합니다.
------------------------------------------------------------------------------------------------------------------
-- sample begin
------------------------------------------------------------------------------------------------------------------
sp_configure 'show advanced options', 1;
RECONFIGURE
GO
------------------------------------------------------------------------------------------------------------------
-- sample end
------------------------------------------------------------------------------------------------------------------
4. AWE를 구성한 다음에는 성능 모니터에서 SQL Server 인스턴스에게 할당된 메모리의 크기를 확인합니다.
------------------------------------------------------------------------------------------------------------------
-- sample begin
------------------------------------------------------------------------------------------------------------------
sp_configure 'awe enabled', 1
RECONFIGURE
GO
------------------------------------------------------------------------------------------------------------------
-- sample end
------------------------------------------------------------------------------------------------------------------
SQL Server 버전과 운영 체제에 따라 동작이 달라지므로 AWE를 사용하기 전에 SQL Server 온라인 설명서에 기술되어 있는 운영 체제별 지침을 확인하기 바랍니다.
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.ko/udb9/html/d308d9cb-bb85-46f6-93c6-e2ddd0fa01c3.htm
AWE를 활성화하는 경우에는 ‘max server memory’ 값을 설정하는 것을 권고합니다. Windows 2000의 경우 ‘max server memory’ 옵션에 값을 지정하지 않으면 실제 메모리를 128 MB 이하만 남겨 두고 대부분의 사용 가능한 메모리를 예약합니다. ‘max server memory’를 잘못 구성하면 심각한 문제가 발생할 수 있으며 다른 응용 프로그램에 지장을 줄 수 있으므로 ‘max server memory’ 구성 옵션의 설정은 신중하며 계획적으로 이루어져야 합니다. ‘max server memory’ 옵션 설정에 대해서는 별도로 다룰 예정입니다.
다양한 시스템들을 컨설팅하다 보면 실제 메모리를 증설하고서 AWE 구성을 하지 않아서 제대로 메모리 자원을 사용하지 못하는 경우를 볼 수 있습니다. 예를 들어, 실제 메모리는 8GB이고 사용자는 SQL Server가 실제 메모리를 잘 사용하고 있다고 생각하고 있는데, 실제로 확인해 보면 SQL Server는 약 2GB미만의 메모리만 사용하는 경우들이 있습니다. 이런 문제는 대부분 boot.ini 파일에 /pae 옵션을 지정하지 않거나 ‘awe enabled’ 옵션을 활성화하지 않아서 발생하며, 아주 드물지만 Enterprise Edition을 사용해야 하는데 Standard Edition을 사용함으로 인하여 서버에 장착된 실제 메모리를 제대로 사용하지 못하는 경우도 있습니다. 하드웨어 구성에 적합한 Edition을 구입해야 하며, 하드웨어 리소스를 충분히 활용할 수 있도록 환경을 구성해야 합니다.
다음은 AWE를 구성하는 예제 스크립트입니다.
1. ‘awe enabled’ 구성 옵션을 활성화합니다.
sp_configure 'show advanced options', 1;
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
2. SQL Server를 다시 시작합니다. ‘awe enabled’ 구성 옵션이 활성화되면 SQL Server 오류 로그 파일에 다음과 같은 메시지가 기록됩니다.
Address Windowing Extensions enabled
3. ‘max server memory’와 ‘min server memory’ 구성 옵션을 시스템에 적절하게 구성합니다. 다음 예는 ‘min server memory’는 1GB로, ‘max server memory’는 6GB로 구성한 예제입니다.
sp_configure 'min server memory', 1024;
RECONFIGURE
GO
sp_configure 'max server memory', 6144;
RECONFIGURE
GO
<reference>
p.s. 붙여놓고 보니.. 2000 과 다른게 별루 없네요.... ㅜㅜ