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

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

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

http://support.microsoft.com/kb/274750/

Microsoft SQL Server 7.0 및 Microsoft SQL Server 2000은 필요할 때 메모리를 동적으로 얻고 해제합니다. 컴퓨터에서 SQL Server의 여러 인스턴스를 실행하면 각 인스턴스는 메모리를 동적으로 얻고 해제하여 인스턴스의 작업 로드에서 변경 사항을 조정합니다.

SQL Server 2000 Enterprise Edition에서는 Microsoft Windows 2000 AWE(Address Windowing Extensions)의 사용을 지원하여 Microsoft Windows 2000 Advanced Server에서 실행되는 인스턴스에 대해 약 8GB의 메모리와 Microsoft Windows 2000 Datacenter에서 실행되는 인스턴스에 대해 약 32GB의 메모리를 주소 지정합니다. SQL Server는 AWE를 사용하여 다른 응용 프로그램과 운영 체제에 사용되고 있지 않은 메모리를 예약할 수 있습니다. 그러나 이 메모리를 사용하는 각 인스턴스는 필요한 메모리를 정적으로 할당해야 합니다. SQL Server는 데이터 캐시에 대해서만 이 AWE 할당 메모리를 사용할 수 있으며 실행 파일, 드라이버, DLL 등에는 사용할 수 없습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
283037  (http://support.microsoft.com/kb/283037/ ) Windows 2000 및 Windows Server 2003에서 대형 메모리 지원 기능을 사용할 수 있다
확장 메모리 크기 옵션은 EMA(Enterprise Memory Architecture) 기능을 지원하는 운영 체제와 하드웨어에서 Microsoft SQL Server 7.0 Enterprise Edition에 대해서만 사용할 수 있습니다. 특정 시스템 구성에서 EMA 기능을 사용하도록 시스템을 구성하는 방법에 대한 자세한 내용은 Microsoft Windows NT 설명서를 참조하십시오.

일부 시스템 공급업체는 SQL Server 7.0 Enterprise Edition에서 확장 메모리 크기 옵션을 사용할 수 있도록 Microsoft Windows NT 버전 4.0 이상에 대한 제품을 제공합니다. Intel 플랫폼에서 SQL Server 7.0은 PSE36이라고 알려진 기능을 사용할 수 있습니다. Alpha 플랫폼에서 확장 메모리 옵션을 사용할 수 있는 기능은 VLM(Very Large Memory)입니다. 이러한 제품의 사용 가능 여부, 설치 및 구성에 대한 자세한 내용은 시스템 공급업체에 문의하십시오.

참고: AWE(Address Windowing Extensions) 메모리를 사용하려면 메모리 관리 자격 증명에서 Windows 잠금 페이지에 할당된 Windows 계정 아래에서 SQL Server 2000 데이터베이스 엔진을 실행해야 합니다.

참고 2GB가 넘는 실제 메모리를 사용하도록 SQL Server 2005를 구성하는 경우에는 SQL Server 2005 온라인 설명서의 다음 항목을 참조하십시오.
  • 메모리 아키텍처
  • 서버 메모리 옵션
  • AWE 사용
  • 4GB 이상의 실제 메모리 지원 설정
  • SQL Server에 대한 AWE 메모리 활성화

운영 체제 버전 지원

Windows 2000 Server

SQL Server 2000

일반적으로 SQL Server 2000 Enterprise Edition과 SQL Server 2000 Developer Edition에서는 최대 2GB의 실제 메모리를 사용할 수 있습니다. AWE 활성화 옵션을 사용하면 SQL Server에서 최대 4GB의 실제 메모리를 사용할 수 있습니다.

참고 Microsoft Windows 2000 Server에서는 PAE(실제 주소 확장)를 사용할 수 없기 때문에 4GB가 넘는 실제 메모리를 Windows 2000 Server의 응용 프로그램에 할당할 수 없습니다. 또한 Windows 2000 Server의 Boot.ini 파일에서는 3GB 스위치를 사용할 수 없지만 Microsoft Windows 2000 Advanced Server 또는 Microsoft Windows Datacenter 버전의 Boot.ini 파일에서는 3GB 스위치를 사용할 수 있습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
291988  (http://support.microsoft.com/kb/291988/ ) 4GB RAM 조정 기능 및 PAE(실제 주소 확장) 스위치에 대한 설명

SQL Server 7.0

SQL Server 7.0 버전에서는 최대 2GB의 실제 메모리를 사용할 수 있습니다.

참고 SQL Server 7.0의 확장 메모리 옵션은 Windows 2000에서 사용할 수 없습니다.


Windows 2000 Advanced Server, Windows 2000 Datacenter 또는 Windows Server 2003

32비트 주소 지정 모드가 주소 지정할 수 있는 실제 메모리의 최대 크기는 4GB입니다. Intel Pentium Pro로 시작하는 IA-32 아키텍처 기반의 모든 프로세서는 PAE(실제 주소 확장)라고 하는 새로운 36비트 실제 주소 지정 모드를 지원합니다. PAE를 사용하면 Windows 2000 Advanced Server에서 최대 8GB의 실제 메모리와 Windows 2000 Datacenter Server에서 최대 32GB의 실제 메모리를 사용할 수 있습니다. 그 이유는 Windows 2000 Datacenter Server에서 테스트된 메모리 제한이 32GB이기 때문입니다. PAE 모드 커널은 Intel 아키텍처 프로세서, Pentium Pro 이상과 Windows 2000 Advanced Server 또는 Windows 2000 Datacenter를 필요로 합니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
268230  (http://support.microsoft.com/kb/268230/ ) Intel PAE(실제 주소 확장)를 사용한 메모리 확장(Scaling Out) 및 노드 수 확장(Scaling Up) 비교


참고 Windows Server 2003에서 지원할 수 있는 최대 메모리 양은 4GB입니다. 그러나 Windows Server 2003 Enterprise Edition에서는 32GB의 실제 RAM을 지원합니다. Windows Server 2003 Datacenter Edition에서는 PAE(실제 주소 확장) 기능을 사용하여 64GB의 실제 RAM을 지원합니다. Microsoft Windows Server 2003, Microsoft Windows Server 2003 Enterprise Edition 또는 Microsoft Windows Server 2003 Datacenter Edition에서는 Boot.ini 파일에 있는 3GB 스위치를 사용할 수 있습니다.

SQL Server 2000

SQL Server 2000 Enterprise Edition 및 SQL Server 2000 Developer Edition에서는 다음 옵션을 사용할 수 있습니다.
  • SQL Server에서 Boot.ini의 /PAE 스위치와 AWE 활성화 옵션을 사용하면 SQL Server 2000에서는 4GB가 넘는 메모리를 사용할 수 있습니다. /PAE 스위치가 없으면 SQL Server에서 최대 3GB의 메모리만 이용할 수 있습니다.

    참고 Windows 2000 Data Center에서 16GB가 넘는 메모리 범위를 사용할 수 있도록 AWE를 설정하려면 Boot.ini 파일에 /3GB 스위치가 없도록 하십시오. /3GB 스위치가 Boot.ini 파일에 있는 경우 Windows 2000에서 16GB가 넘는 메모리를 올바르게 주소 지정하지 못할 수 있습니다.

    32GB 시스템에서 SQL Server AWE 메모리를 할당하면 Windows 2000에서 AWE를 관리하는 데 적어도 1GB의 메모리가 필요할 수 있습니다.

    예제

    다음 예제는 AWE를 활성화하고 max server memory 옵션에 6GB 제한을 구성하는 방법을 보여 줍니다.
    sp_configure 'show advanced options', 1
    RECONFIGURE
    GO
    sp_configure 'awe enabled', 1
    RECONFIGURE
    GO
    sp_configure 'max server memory', 6144
    RECONFIGURE
    GO
    						

  • Boot.ini 파일에서 /3GB 스위치를 사용하면 SQL Server 2000에서 최대 3GB의 메모리를 사용할 수 있습니다.

SQL Server 7.0

SQL Server 7.0 Enterprise Edition에서 최대 3GB의 사용 가능한 메모리를 주소 지정하려면 Boot.ini에 /3GB 스위치가 있어야 합니다.

참고 SQL Server 7.0의 확장 메모리 옵션은 Windows 2000 Advanced Server 또는 Windows Datacenter에서 사용할 수 없습니다.

Microsoft Windows NT 4.0 Enterprise Edition

SQL Server 2000

SQL Server 2000 Enterprise 및 Developer Edition에서 최대 3GB의 사용 가능한 메모리를 주소 지정하려면 Boot.ini 파일에 /3GB 스위치가 있어야 합니다.

참고 Windows NT 4.0 Enterprise Edition은 AWE 메모리 아키텍처 모델을 지원하지 않으므로 AWE 지원은 사용할 수 없습니다.

SQL Server 7.0

SQL Server 7.0 Enterprise Edition에서 최대 3GB의 사용 가능한 메모리를 주소 지정하려면 Boot.ini 파일에 /3GB 스위치가 있어야 합니다.
반응형

+ Recent posts

반응형