반응형
서버 메모리 구성값을 설정하는데 있어서 가장 중요하게 고려해야 할 사항은 페이징이 발생하지 않도록 해야 한다는 것입니다. 그러기 위해서는, 모든 어플리케이션이 사용하는 메모리의 크기의 합이 전체 시스템 메모리보다 작도록 구성해야 합니다.

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들이 문제를 해결하거나 시스템을 진단하는데 있어서 유용한 정보를 제공해 줄 것으로 기대됩니다.


5. SQL Server 2005의 메모리 관리자 구성 요소

- Memory Nodes
- Memory Clerks
- Page allocators
- Memory Objects
- Resource Monitor
- Memory Broker

각각의 구성 요소에 대해서는 좀 더 깊이있는 공부가 필요할 것 같습니다.
반응형

+ Recent posts