SQL Server 2005에서의 메모리 구성에 관하여 참고사항을 소개하고자 합니다.
1. max server memory 설정
SQL Server는 버퍼 풀 외에 SQL Server가 추가로 메모리를 필요로 한다는 것을 염두에 두고 ‘max server memory’를 적절하게 구성하여야 한답니다. 특히 IA64의 경우에는 thread stack size가 4MB이기 때문에 ‘max worker threads’의 값이 크면 버퍼 풀 외에 SQL Server가 추가로 필요로 하는 메모리의 양이 많이 커지므로 유의하시기 바랍니다.
SQL Server max server memory 계산 식:
max server memory = 전체 시스템 메모리 - max worker threads X thread stack size - 운영 체제/다른 응용 프로그램이 사용하는 메모리 (대략 2-4 GB) |
Thread Stack Size:
|
Thread Stack Size |
32 bit |
512 K |
X64 |
2 MB |
IA64 |
4 MB |
예를 들어 IA64 64GB RAM 시스템에서 max worker threads가 1024라면 SQL Server ‘max server memory’는 다음과 같이 계산될 수 있습니다. 만일 실제 메모리가 64 GB인데 SQL Server 전용 시스템이라고 하여 운영 체제를 위하여 2 GB를 남겨 두고, SQL Server ‘max server memory’를 62 GB로 구성하면 Thread Memory가 부족하게 되는 문제가 발생하게 됩니다.
64GB - 1024 X 4 MB - 4 GB (운영 체제/다른 응용 프로그램) = 56 GB
이런 공식을 사용하여 얻은 결과를 구성값에 적용하고, 모니터링을 통해 Available Physical Memory가 1GB 정도 남을 수 있도록 다시 max server size를 변경해 주는 것이 좋다고 합니다. 이 내용은 MS 기술지원엔지니어로부터 들은 이야기입니다.
2. AWE
64 bit SQL Server 2005에서는 디폴트로 시스템이 AWE를 활성화해 줍니다.
참고로 다음 내용도 한번 읽어 보시기 바랍니다.
Address Windowing Extensions and Microsoft Windows 2000 Datacenter Server:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dngenlib/html/awewindata.asp
3. min server memory
64 bit SQL Server 2000에서는 'min server memory' 구성값을 설정하면 SQL Server 서비스가 시작될 때 'min server memory'에 지정된 만큼의 메모리를 확보하였지만, 64 bit SQL Server 2005에서는 최소로 필요한 메모리만 확보하고 서비스를 시작하는 것으로 변경되었습니다.
4. 메모리 DMV
SQL Server 2005에서는 다양한 메모리 DMV가 지원됩니다. 이 DMV들이 문제를 해결하거나 시스템을 진단하는데 있어서 유용한 정보를 제공해 줄 것으로 기대됩니다.
- Memory Nodes
- Memory Clerks
- Page allocators
- Memory Objects
- Resource Monitor
- Memory Broker
각각의 구성 요소에 대해서는 좀 더 깊이있는 공부가 필요할 것 같습니다.
'연구개발 > SQL2005' 카테고리의 다른 글
[SQL 2005 GUIDE] DBCC SHOWCONTIG 에 대한 질문 (0) | 2009.07.24 |
---|---|
[SQL 2005 GUIDE] 캐시와 풀 (0) | 2009.07.24 |
[SQL 2005 GUIDE] 큰 값 데이터 형식과 문자열 함수 (0) | 2009.07.24 |
[SQL 2005 GUIDE] varchar(max) 열이 행 내에 저장되는지 확인하는 스크립트 (0) | 2009.07.24 |
[SQL 2005 GUIDE] xml 데이터 유형을 활용하세요 (0) | 2009.07.23 |