SQL Server에 대한 AWE 메모리 활성화
AWE(Address Windowing Extensions)를 사용하면 32비트 운영 체제에서 대량의 메모리에 액세스할 수 있습니다. AWE는 운영 체제에서 사용되며 구현 방식이 MicrosoftMicrosoft Windows 2000 Server와 Windows Server 2003에서 약간의 차이가 있습니다. AWE는 awe enabled 옵션을 사용하여 설정됩니다.
Windows 2000 Server에서 AWE로 매핑된 메모리 사용
Windows 2000에서 실행하는 MicrosoftSQL Server 인스턴스는 SQL Server 시작 중에 다음 조건에 따라 메모리를 할당합니다.
사용 가능한 실제 메모리가 사용자 모드 가상 주소 공간보다 작은 경우 AWE를 활성화할 수 없습니다. 이 경우 SQL Server는 awe enabled 옵션 설정과 관계없이 AWE가 아닌 모드로 실행됩니다.
사용 가능한 실제 메모리가 사용자 모드 가상 주소 공간보다 크면 AWE를 활성화할 수 있습니다.
사용 가능한 실제 메모리가 max server memory 옵션의 값보다 클 경우 SQL Server 인스턴스는 max server memory에 지정된 만큼 메모리 양을 잠급니다.
사용 가능한 실제 메모리가 max server memory 옵션의 값보다 작거나 max server memory 옵션이 설정되지 않은 경우 SQL Server 인스턴스는 256MB를 제외한 모든 사용 가능 메모리를 잠급니다.
할당된 후에는 SQL Server를 종료하기 전까지 AWE로 매핑된 메모리를 해제할 수 없습니다.
메모리 옵션 구성
AWE를 활성화할 때마다 max server memory 값을 설정하는 것이 좋습니다. awe enabled가 1로 설정되고 사용 가능한 실제 메모리가 사용자 모드 프로세스 공간보다 큰 경우, Windows 2000에서 실행되는 SQL Server 인스턴스는 서버를 시작할 때 사용 가능한 거의 모든 메모리(또는 max server memory 옵션이 설정된 경우 해당 값)를 잠급니다. max server memory가 설정되지 않은 경우 다른 응용 프로그램이나 SQL Server 인스턴스의 사용 가능한 실제 메모리는 128MB보다 작아집니다.
AWE로 매핑된 메모리 풀은 페이징 시스템 파일로 스와핑할 수 없습니다. 사용할 수 있는 실제 메모리가 더 필요한 경우 Windows는 다른 응용 프로그램을 스와핑해야 하며 이 때 이러한 응용 프로그램의 성능이 저하될 수 있습니다.
다른 응용 프로그램의 성능 저하를 방지하려면 추가 메모리 여유 공간을 남기도록 max server memory를 구성하여 다른 응용 프로그램 및 운영 체제의 다양한 요구에 부응할 수 있도록 하십시오. 컴퓨터에서 사용할 다른 응용 프로그램들을 모두 시작한 후에 사용할 수 있는 메모리 양을 파악하여 SQL Server 인스턴스에 안전하게 할당할 수 있는 메모리 양을 결정할 수 있습니다.
[!참고]
Windows 2000 Server의 경우 SQL Server AWE의 min server memory 설정이 무시됩니다.
SQL Server 성능 모니터의 Total Server Memory (KB) 카운터를 사용하여 AWE 모드로 실행되는 SQL Server 인스턴스에서 할당할 메모리 크기를 결정하거나 sysperfinfo에서 메모리 사용량을 선택하십시오.
자세한 내용은 메모리 사용 모니터링을 참조하십시오.
AWE를 사용하는 여러 개의 SQL Server 인스턴스 실행
Windows 2000에서 서버를 실행 중인 경우 각 인스턴스에 max server memory 설정이 필요합니다. Windows 2000 운영 체제에서 실행하는 SQL Server는 AWE로 매핑된 메모리의 동적 할당을 지원하지 않으므로 각 인스턴스에 대해 max server memory 옵션을 설정하는 것이 좋습니다.
모든 인스턴스에 대한 max server memory 값의 합계가 컴퓨터의 총 실제 메모리보다 작아야 합니다. 합계가 총 실제 메모리보다 큰 경우 일부 인스턴스가 시작되지 않거나 max server memory 설정에 지정한 것보다 작은 메모리에 액세스하게 됩니다. 예를 들어 컴퓨터의 실제 메모리가 16GB이고 설치된 SQL Server 인스턴스가 3개라고 가정합니다. 또한 max server memory가 각 인스턴스에 대해 8GB로 설정되어 있습니다. 세 인스턴스를 모두 중지하고 다시 시작할 경우 메모리 할당은 다음과 같습니다.
첫 번째 인스턴스는 8GB의 실제 메모리에 액세스합니다.
두 번째 인스턴스는 8GB보다 약간(최대 128MB까지) 작은 실제 메모리에 액세스하여 시작됩니다.
세 번째 인스턴스는 동적 메모리 모드에서 시작되며 256MB 이하의 실제 메모리에 액세스합니다.
자세한 내용은 큰 데이터베이스의 메모리 관리를 참조하십시오.
Windows Server 2003에서 AWE로 매핑된 메모리 사용
SQL Server는 Windows Server 2003에서 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에서는 실제 메모리를 4GB까지 지원합니다.
Windows Server 2003 Enterprise Edition에서는 실제 메모리를 32GB까지 지원합니다.
Windows Server 2003 Datacenter Edition에서는 실제 메모리를 64GB까지 지원합니다.
메모리 옵션 구성
SQL Server는 Windows Server 2003 운영 체제의 모든 버전에서 실행할 때 AWE로 매핑된 메모리를 동적으로 할당합니다. 따라서 버퍼 풀이 AWE로 매핑된 메모리를 동적으로 관리하여(min server memory 및 max server memory 옵션의 제약을 받음) 전체 시스템 요구 사항에 따라 SQL Server 메모리 사용량을 조절할 수 있습니다.
AWE가 설정되면 SQL Server는 항상 AWE로 매핑된 메모리를 사용하려고 시도합니다. 이는 응용 프로그램에 3GB 미만의 사용자 모드 주소 공간을 제공하도록 구성된 컴퓨터를 포함하여 모든 메모리 구성에 적용됩니다.
- Windows Server 2003에서 실행하는 SQL Server의 기본 메모리 모드로 AWE를 설정하는 것이 좋습니다. Hot Add 메모리 기능을 사용하려면 SQL Server 시작 과정에서 AWE를 설정해야 합니다. 자세한 내용은 Hot Add 메모리를 참조하십시오.
[!참고]
AWE는 필요하지 않으며 64비트 운영 체제에서 구성할 수 없습니다.
AWE로 매핑된 메모리는 3GB 미만까지만 지원되므로 min server memory 및 max server memory 값을 실제 메모리 범위 내에서 정의하거나 두 옵션의 기본값을 사용하십시오.
컴퓨터에서 실행되는 다른 응용 프로그램에 대한 추가 메모리를 보장하기 위해 SQL Server에 대한 max server memory를 설정할 수도 있습니다. SQL Server는 AWE로 매핑된 메모리를 동적으로 해제할 수 있지만 현재 할당된 AWE로 매핑된 메모리 양을 페이징 파일로 스와핑할 수는 없습니다.
SQL Server 인스턴스에서 AWE를 사용하려면 sp_configure를 사용하여 awe enabled 옵션을 1로 설정한 다음 SQL Server를 다시 시작하십시오.
min server memory와 max server memory에 대한 자세한 내용은 서버 메모리 옵션을 참조하십시오.
AWE를 설정하기 전에 Lock Pages in Memory 정책을 구성해야 합니다. 자세한 내용은 방법: Lock Pages in Memory 옵션 설정(Windows)을 참조하십시오.
예
다음 예에서는 AWE를 활성화하고 min server memory 제한을 1GB로, max server memory 제한을 6GB로 구성하는 방법을 보여 줍니다.
먼저 AWE를 구성합니다.
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
SQL Server를 다시 시작한 후 SQL Server 오류 로그에 다음 메시지가 기록됩니다. "Address Windowing Extensions이 설정되어 있습니다."
다음으로 메모리를 구성합니다.
sp_configure 'min server memory', 1024
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO
이 예에서는 버퍼 풀이 AWE로 매핑된 메모리를 1GB에서 6GB 사이에서 동적으로 할당하도록 메모리를 설정합니다. 다른 응용 프로그램에 추가 메모리가 필요한 경우 SQL Server에서 필요하지 않은 AWE로 매핑된 할당 메모리를 해제할 수 있습니다. 이 예에서는 AWE로 매핑된 메모리를 최대 1GB까지만 해제할 수 있습니다.
Hot Add 메모리를 지원하는 컴퓨터에 메모리가 추가된 경우 SQL Server에서 동적 AWE 메모리를 통해 메모리를 늘릴 수도 있습니다. Windows Server 2003 Enterprise 및 Datacenter Edition에서 사용 가능한 Hot Add 메모리를 통해 컴퓨터를 실행하는 동안 메모리를 추가할 수 있습니다. 예를 들어 Windows Server 2003 Enterprise Edition에서 실행되는 SQL Server를 실제 메모리가 16GB인 컴퓨터에서 시작한다고 가정합니다. 운영 체제는 응용 프로그램의 가상 메모리 주소 공간을 2GB로 제한하도록 구성되고 SQL Server에서 AWE가 활성화됩니다. 이후 시스템 관리자가 컴퓨터를 실행하는 동안 16GB의 메모리를 추가하면 SQL Server는 즉시 추가 메모리를 인식하고 필요한 경우 이를 활용합니다.
AWE를 사용하는 방법은 Windows Server 2003 설명서를 참조하십시오.
AWE를 사용하는 여러 개의 SQL Server 인스턴스 실행
같은 컴퓨터에서 여러 개의 SQL Server 인스턴스를 실행 중이며 각 인스턴스가 AWE로 매핑된 메모리를 사용하는 경우 인스턴스가 예상대로 작동하는지 확인해야 합니다.
서버에서 Windows Server 2003을 실행하는 경우 각 인스턴스에 min server memory 설정이 필요합니다. Windows Server 2003에서 실행하는 SQL Server는 AWE로 매핑된 메모리의 동적 관리를 지원하므로 각 인스턴스에 대해 min server memory 옵션을 설정하는 것이 좋습니다. AWE로 매핑된 메모리는 페이징 파일로 스와핑할 수 없으므로 모든 인스턴스에 대한 min server memory 값의 합계가 컴퓨터의 총 실제 메모리보다 작아야 합니다.
min server memory 옵션을 설정해도 SQL Server가 시작 시 최소 메모리를 확보하지는 않습니다. 메모리는 데이터베이스 작업을 기준으로 필요에 따라 할당됩니다. 그러나 min server memory 임계값에 도달한 후에는 SQL Server의 메모리 크기가 이보다 작은 경우 SQL Server가 메모리를 해제하지 않습니다. 각 인스턴스에 최소한 min server memory 값과 같은 메모리를 할당하기 위해 시작 직후 데이터베이스 서버 로드를 실행하는 것이 좋습니다. 일상적인 서버 작업 중에는 인스턴스별로 사용 가능한 메모리가 달라지지만 각 인스턴스에 설정된 min server memory 값보다 작아지지는 않습니다.
max server memory를 설정하거나 이 옵션의 기본 설정을 유지할 수 있습니다. max server memory를 기본값으로 유지하면 SQL Server 인스턴스 간 메모리 확보 경쟁이 생길 수 있습니다.
AWE와 장애 조치(Failover) 클러스터링 사용
SQL Server 장애 조치 클러스터링 및 AWE 메모리를 사용할 경우 모든 인스턴스에 대한 max server memory 설정의 합계가 장애 조치 클러스터의 서버에서 사용 가능한 최소 실제 메모리보다 작은지 확인해야 합니다. 원본 노드보다 장애 조치 노드의 실제 메모리가 작으면 SQL Server 인스턴스를 시작할 수 없거나 원본 노드에서 가졌던 메모리보다 작은 메모리를 가지고 시작하게 됩니다.