AWE (Address Windowing Extensions)

-- MSSQL 2011. 3. 21. 16:44
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

4GB이상의 물리적인 메모리를 사용하고 있는 DB서버에서 AWE옵션을 사용하면 SQL에 보다 많은 메모리를 할당할 수 있다. 쿼리 시 메모리 부족현상을 개선하므로 성능의 이득을 볼 수 있으며, 특히 AWE옵션은 Locked Page를 할당받기 때문에 SQL Server이 사용하는 메모리를 운영체제에서 강제로 Page Out시키지 않는 이득도 있다.

SQL Server는 보통 128M이하의 메모리를 제외한 나머지 사용 가능한 메모리를 예약하므로, AWE설정 시에는 Max Server Memory 또한 같이 설정하는 것이 권장되며, Max Server Memory를 지정하지 않고 AWE를 설정할 경우 SQL Server 구동 시 인스턴스가 실행 가능한 메모리는 128M이하로 축소되므로 주의해야 한다.

1. AWE를 설정하기 위해서는 먼저 boot.ini에 /PAE옵션이 설정되어 있어야 한다. PAE옵션이 설정되어 있지 않았다면, 설정 후 재부팅을 해야 설정된다. 보통 /3GB /PAE를 같이 주기도 하는데, /3GB는 제외하고 /PAE만 설정해주는 것이 맞는 것 같다.

2. 또한, AWE는 Locked Page를 하기 때문에 로컬 보안 정책에서 SQL Server 서비스 계정으로 지정된 윈도우 사용자 계정을 추가해야 권한문제 없이 AWE가 적용된다. 자세한 계정추가방법은 http://www.volkit.com/583에서 확인하기 바란다.

(gpedit.msc > Windows 설정 > 로컬정책 > 사용자권한할당 > 메모리의 페이지 잠그기)

3. AWE는 UI를 통해 지정하거나 아래와 같이 스크립트로 실행해도 된다.

sp_configure 'show advanced options', 1
RECONFIGURE
GO
 
sp_configure 'awe enabled', 1
RECONFIGURE
GO

4. Min/Max 메모리의 지정은 AWE와 마찬가지로 UI를 통해 지정하거나, 아래와 같이 스크립트로 실행해도 되며, Max메모리의 경우 개인적으로는 보통 물리적메모리에서 2GB를 뺀 크기를 지정한다.

sp_configure 'min server memory', 1024
RECONFIGURE
GO
 
sp_configure 'max server memory', 6144  -- 6G
RECONFIGURE
GO

5. AWE를 설정하고나서 적용을 하려면 SQL Server 인스턴스를 재시작해야 하며, AWE가 적용이 되었는지 확인하는 방법은 아래와 같이 확인이 가능하다.

1) SQL Server 로그에 “Address Windowing Extensions is enabled.”를 확인한다.

2) 아래의 성능카운터의 수치가 올라가고 있는지 확인한다.
- AWE lookup maps/sec
- AWE stolen maps/sec
- AWE unmap calls/sec
- AWE unmap pages/sec
- AWE write maps/sec

3) sp_configure로 해당 설정들이 제대로 반영되었는지 확인한다.

추가) 2012.07.03

MSSQL2012에서는 AWE기능을 지원하지 않는다고 한다.
이 말은 OS를 64비트를 써야 제대로 운영이 가능한 것 같다.
또한, MSSQL2012부터 MaxServerMemory을 지정하는 나름대로의 공식이 변경되었다고 하니 운영 시 확인이 필요할 듯 하다.

posted by 어린왕자악꿍