2009년 3월 23일 월요일

Exchange Server 2003에서 메모리 사용을 최적화하는 방법

기술 자료 ID: 815372 - 마지막 검토: 2007년 12월 3일 월요일 - 수정: 14.2

Exchange Server 2003에서 메모리 사용을 최적화하는 방법

중요 이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 레지스트리를 백업하는 것이 좋습니다. 문제가 발생하는 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 레지스트리 백업, 복원 및 수정 방법은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

256986 (http://support.microsoft.com/kb/256986/ ) Microsoft Windows 레지스트리 설명

경고 레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 문제를 해결하기 위해 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 레지스트리 편집기를 잘못 사용하여 발생한 문제에 대해 해결을 보증하지 않습니다. 레지스트리의 수정에 따른 모든 책임은 사용자에게 있습니다.이 문서에서는 Exchange Server 2003을 실행하는 컴퓨터의 메모리 사용 최적화 방법에 대해 설명합니다.

Microsoft Exchange Server 2003을 실행 중인 서버에 설치된 실제 메모리(RAM)가 1GB 이상인 경우 Exchange 2003에서 해당 메모리를 효율적으로 사용할 수 있도록 해야 합니다.

참고 Exchange 2003은 저장소 프로세스가 시작될 때 메모리가 최적 상태로 구성되었는지 확인합니다. 메모리 설정이 최적의 상태가 아니면 이벤트 뷰어에 이벤트 9665가 나타납니다. 이 메시지는 다음과 같은 경우에 나타납니다.

  • 서버가 Microsoft Windows 2000 Server의 한 버전을 실행 중이고 레지스트리에서 SystemPages에 설정된 값이 24000 - 31000 범위를 벗어나는 경우
    참고
    • SystemPages 하위 키는 다음 위치에 있습니다.
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SystemPages
    • SystemPages 하위 키에는 다음 항목만 사용할 수 있습니다.
      • 시스템에서 계산한 값(180,000보다 큼)
      • 영(0)
      • 0xFFFFFFFF
      다른 값은 현재 작동되지만 사용되지는 않습니다. /3GB 스위치가 있을 경우 SystemPages 하위 키의 값을 0xFFFFFFFF로 설정해야 합니다.
  • Microsoft Windows 2000 Advanced Server 또는 Microsoft Windows 2000 Datacenter Server를 실행하는 서버에 1GB 이상의 실제 메모리가 있지만 boot.ini 파일에는 /3GB 스위치가 설정되어 있는 경우
  • 서버가 Microsoft Windows Server 2003 Standard, Microsoft Windows Server 2003 Enterprise 또는 Microsoft Windows Server 2003 Datacenter 버전을 실행하고 있고 레지스트리에 있는 SystemPages 값이 0이 아닌 값으로 설정되어 있는 경우
  • 서버가 Microsoft Windows Server 2003 Standard Edition, Microsoft Windows Server 2003 Enterprise Edition 또는 Microsoft Windows Server 2003 Datacenter Edition을 실행하고 있고 실제 메모리가 1GB 이상이며 /3GB 스위치가 설정되었지만 boot.ini 파일에 /USERVA 설정이 없는 경우
  • 서버가 Microsoft Windows 2000 Server 또는 Microsoft Windows Server 2003의 한 버전을 실행하고 있고 레지스트리에 있는 HeapDeCommitFreeBlockThreshold 값이 0x00040000이 아닌 값으로 설정되어 있는 경우

Microsoft Small Business Server를 실행하는 서버에서는 메모리 구성이 확인되지 않습니다. 9665 이벤트가 발생할 때 DWORD는 추가 데이터로 이벤트 로그에 쓰여집니다.

메모리 구성 확인을 해제하려고 하는 경우 다음 레지스트리 키를 만들 수 있습니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem

매개 변수: Suppress Memory Configuration Notification
종류: REG_DWORD
설정: 1

참고

  • 사서함이나 공용 폴더(예: 메일 게이트웨이)가 포함되어 있지 않은 Exchange Server 컴퓨터의 경우 설치된 실제 메모리 크기와 별도로 boot.ini에 /3GB 스위치를 설정하지 않는 것이 좋습니다.
  • Exchange Server 컴퓨터가 Active Directory 도메인 컨트롤러나 글로벌 카탈로그 서버 역할도 동시에 하는 경우 boot.ini에 /3GB 스위치를 설정하지 않는 것이 좋습니다. 전용 Active Directory 도메인 컨트롤러나 글로벌 카탈로그 서버를 사용하는 것이 좋습니다.
  • Microsoft Small Business Server는 통합 도메인 컨트롤러와 Exchange 서버로 설치되므로 Small Business Server 환경에서 Exchange Server 2003을 실행하는 경우에는 /3GB 스위치를 설정하지 않는 것이 좋습니다. 그러나 이 문서에 설명된 다른 개념과 설정은 Microsoft Small Business Server 환경의 Exchange Server 2003에도 동일하게 적용됩니다.
이 문서의 다음 절에는 이러한 각 설정에 대한 권장 사항이 포함되어 있습니다.

가상 주소 공간 개념

서버의 하드웨어 구성, 데이터베이스 수 및 사용자 수와는 별도로 Exchange 2003의 Exchange 정보 저장소(Information Store, Store.exe) 프로세스에는 주소를 지정할 수 있는 한정된 메모리 양이 있습니다. 이러한 메모리 양을 가상 주소 공간이라고 합니다. 대부분의 경우 정보 저장소에 사용하는 이러한 가상 주소 공간은 Exchange Server 2003 사서함 서버의 전반적인 성능 및 확장성에 영향을 미칩니다. 중소 규모 서버의 경우 Exchange Server 2003에서 이러한 요소 간의 균형을 최상의 상태로 자동 조정합니다. 그러나 대규모 서버의 경우 사용자가 일부 조정 매개 변수를 수동으로 조정하려는 경우가 있습니다.

Exchange Server 2003 컴퓨터에 1GB 이상의 메모리가 설치되어 있고 해당 컴퓨터가 사서함이나 공용 폴더의 홈인 경우 서버의 Boot.ini 파일에 /3GB 스위치를 추가해야 합니다. 메일 게이트웨이와 같이 서버에 사서함이나 공용 폴더가 없는 경우에는 /3GB 스위치를 사용하지 마십시오. 기본적으로 Microsoft Windows 2000 Advanced Server 및 Windows Server 2003 운영 체제는 커널 모드용으로 2GB, 사용자 모드용으로 2GB의 가상 주소 공간을 예약합니다. 특정 프로세스의 가상 주소 공간은 프로세스가 시작될 때 할당되며 실행하는 동안 메모리 사용량이 늘어남에 따라 점점 증가합니다. 일반적으로 프로세스의 실제 메모리 사용량(작업 집합)은 프로세스에 할당된 주소 공간보다 훨씬 적습니다. Exchange Server 2003을 실행하는 메모리 1GB 이상의 컴퓨터에서 3GB의 사용자 모드 메모리 공간을 사용할 수 있도록 Windows 2000 Advanced Server 및 Windows Server 2003 운영 체제를 수정해야 합니다. 이렇게 하려면 Boot.ini 파일에서 /3GB 스위치를 사용합니다. Windows 2000 Advanced Server 기반 컴퓨터에서 이 설정을 사용하려면 다음 레지스트리 하위 키에 SystemPages 레지스트리도 구성해야 합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SystemPages

SystemPages 레지스트리 항목을 DWORD 값 0xFFFFFFFF(16진수)로 설정합니다. Windows 2003 기반 서버에서는 뒷부분의 절에서 설명하는 Userva 스위치를 사용하여 이 기능을 수행할 수 있으므로 이 레지스트리를 변경할 필요가 없으며 권장되지도 않습니다.

Windows 2000 Server Standard Edition을 실행하는 경우 /3GB 스위치를 설정하지 마십시오. Windows 2000 Server Standard Edition에서는 이 메모리 조정 스위치가 지원되지 않습니다. 이 스위치를 설정할 경우 서버에서 오류 메시지가 생성되지는 않지만 이로 인해 잘못된 메모리 주소 공간이 존재하게 됩니다. 프로세스에서 더 큰 주소 공간에 액세스하려고 하면 블루 스크린에 중지 오류 메시지가 나타나고 서버 응답이 중지됩니다.

참고 /3GB 조정 스위치는 Windows Server 2003 Standard Edition을 비롯한 모든 릴리스의 Windows Server 2003에서 지원됩니다. /3GB 스위치를 설정하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

266096 (http://support.microsoft.com/kb/266096/ ) XGEN: 1GB 이상의 실제(Physical) RAM을 가진 Exchange 2000 서버에서 /3GB 스위치가 필요하다

Windows Server 2003 기반 컴퓨터에서 Exchange 2003을 실행하고 있고 /3GB 스위치가 설정된 경우 Boot.ini 파일에서 /USERVA=3030 매개 변수를 설정하는 것이 좋습니다. 이렇게 하면 서버에서 더 많은 시스템 PTE(Page Table Enties)를 사용할 수 있습니다. /USERVA 스위치에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

810371 (http://support.microsoft.com/kb/810371/ ) XADM: Windows 2003 Server 기반 Exchange Server에서 /Userva 스위치 사용

Store.exe 프로세스를 실행할 때 가상 주소 공간이 부족하지 않도록 해야 합니다. 가상 주소 공간을 모두 써버리면 사용할 수 있는 실제 RAM이 충분한 경우에도 메모리 할당에 실패합니다. 이 문제를 해결하려면 정보 저장소 서비스를 다시 시작해야 합니다. 예를 들어, 실제 RAM이 2GB이고 Boot.ini 파일에 /3GB 스위치가 설정되지 않은 서버는 Store.exe 프로세스의 가상 주소 공간이 2GB에 도달할 때 메모리가 부족하게 됩니다. 이 경우 Windows 작업 관리자에는 실제로 약 1.5GB의 메모리만 사용 중인 것으로 나타날 수 있습니다. 그러나 서버의 메모리가 부족하므로 정보 저장소 서비스를 다시 시작해야 합니다.

Store.exe 프로세스의 가상 메모리가 얼마 남지 않은 상태가 되면 Exchange Server 2003 서버의 성능이 크게 저하될 수 있습니다. 가상 메모리의 사용 가능한 최대 블록이 32MB로 줄어들면 이벤트 뷰어의 응용 프로그램 로그에 이벤트 ID 9582 경고 이벤트가 생성됩니다. 이 이벤트가 나타나면 적절한 다음 기회에 Store.exe 프로세스를 다시 시작하는 것이 좋습니다. 메모리의 최대 블록이 16MB 수준으로 더 줄어들면 이벤트 뷰어의 응용 프로그램 로그에 이벤트 ID 9582 오류 이벤트가 생성됩니다. 이 이벤트가 발생하면 서버가 심각한 운영 상태에 도달하므로 다음 기회에 서버를 다시 시작해야 합니다. 이 오류가 발생한 후 몇 시간 내에 메모리가 소모될 수 있습니다. 이 이벤트에 대해 적절한 조치를 취하지 않으면 다음과 같은 문제가 발생할 수 있습니다.

  • 일시적인 메시지 배달 오류
  • 이벤트 ID 12800으로 표시되는 IMAIL(인터넷 메일) 변환 프로세스의 일시적인 오류
  • 일부 Exchange 인식 바이러스 백신 프로그램에서 오류 메시지나 이벤트 생성

가상 주소 공간 최대화

큰 사서함 서버에서는 정보 저장소의 가상 주소 공간을 모니터링하여 성능 및 안정성이 저하되지 않게 하는 것이 좋습니다. 가장 쉬운 모니터링 방법은 성능 유틸리티에서 MSExchangeIS 성능 개체의 VM Largest Block Size 카운터를 모니터링하는 것입니다. 이 값은 바이트 단위로 표시됩니다. 컴퓨터를 시작하면 일반적으로 최대 가상 메모리 블록 크기가 현저하게 감소합니다. 그러나 하루나 이틀 정도 운영하면 해당 값이 정상적인 작동 수준에 도달합니다. 사용 가능한 최대 가상 메모리 블록의 값이 200,000,000바이트(약 200MB)를 넘으면 이는 정상 서버를 나타냅니다. 이보다 값이 작으면 서버를 좀 더 자세히 모니터링하십시오. 가상 주소 공간이 작으면 다음과 같이 하십시오.
  1. 1GB 이상의 실제 메모리가 설치된 경우 서버에서 다음 조건에 해당하면 Boot.ini 파일에 /3GB 스위치를 설정해야 합니다.
    • 서버가 사서함이나 공용 폴더의 홈입니다.
    • 운영 체제가 Windows 2000 Advanced Server 또는 Windows Server 2003입니다.
    메일 게이트웨이와 같이 서버에 사서함이나 공용 폴더가 없는 경우에는 /3GB 스위치를 사용하지 마십시오.
  2. Windows Server 2003 기반 서버에 Exchange Server 2003이 설치되어 있고 /3GB 스위치가 설정된 경우 Boot.ini 파일에 /USERVA=3030 스위치를 설정해야 합니다. Windows 2000 기반 서버에 Exchange Server 2003을 설치한 경우 서버에서 Windows 2000 서비스 팩 3(SP3) 이상을 실행해야 합니다.
  3. 1GB 이상의 실제 메모리를 설치한 경우 다음 레지스트리 키에서 HeapDeCommitFreeBlockThreshold 레지스트리 값을 구성한 다음 서버를 다시 시작합니다.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
    값 이름: HeapDeCommitFreeBlockThreshold
    값 종류: REG_DWORD
    값 데이터: 0x00040000(권장)
    기본값: 없음

    이 레지스트리 값을 사용하고 구성하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

    315407 (http://support.microsoft.com/kb/315407/ ) "HeapDecommitFreeBlockThreshold" 레지스트리 키

일반적으로 이전 단계를 수행하면 가상 주소 공간 소모 문제가 해결됩니다. 그러나 보다 큰 서버에서는 저장소 데이터베이스 캐시 크기도 조정하여 성능과 확장성 간의 균형을 다시 조정해야 합니다.

저장소 데이터베이스 캐시 크기

저장소 데이터베이스 캐시는 ESE 버퍼라고도 하며 데이터베이스 트랜잭션이 저장소에 커밋되기 전에 사용되는 큰 캐싱 영역을 제공합니다. 기본적으로 Exchange Server 2003에서는 로컬 컴퓨터의 메모리 구성을 조회한 다음 Boot.ini 파일에 /3GB 스위치가 설정되어 있으면 896MB의 RAM을 할당하고 /3GB 스위치가 설정되어 있지 않으면 576MB의 RAM을 할당합니다. 서버의 로드가 지나치게 많거나 디스크 성능이 최적의 상태가 아닌 경우 대형 ESE 버퍼를 사용하면 시스템 성능이 전반적으로 향상됩니다. 사용자의 구성에 따라 전반적으로 최상의 성능을 얻으려면 이러한 버퍼의 크기를 늘리거나 줄여야 할 수 있습니다.

다른 서버 측 프로그램과 공존하는 환경에서 Exchange Server 2003을 사용하는 경우에는 사용 가능한 메모리 리소스를 독점할 수 있습니다. DBA(동적 버퍼 할당) 알고리즘은 다른 프로그램에서 메모리가 필요한 경우 운영 체제에 메모리를 반환합니다. 그러나 ESE 버퍼를 줄여 Exchange Server 2003이 사용하는 메모리를 수동으로 제한할 수 있습니다.

메모리 크기가 2GB보다 큰 서버에서는 ESE 버퍼의 크기를 늘리는 것이 도움이 될 수 있습니다. 가상 주소 공간은 제한되어 있으므로 이 값을 1,200MB보다 크게 설정해서는 안 됩니다.

최대 버퍼 크기를 늘리기 전에 Windows 성능 유틸리티를 사용하여 일반적인 작업 로드 상태에서 서버의 메모리를 모니터링하는 것이 좋습니다. 이렇게 하려면 다음 성능 개체 및 값을 모니터링합니다.

성능 개체: Process
성능 카운터: Virtual Bytes
인스턴스: STORE

성능 모니터링으로 수집된 정보를 통해 Store.exe 프로세스가 할당한 가상 주소 공간의 정확한 값을 알 수 있습니다. Boot.ini 파일에 /3GB 스위치가 설정되어 있는 서버에서 성능 유틸리티에 표시된 값은 대개 2.8GB보다 작습니다. Boot.ini 파일에 /3GB 스위치가 설정되지 않은 서버에서 이 값은 대개 1.8GB보다 작습니다. 1GB 이상의 메모리가 설치된 서버에서는 Boot.ini 파일에 /3GB 스위치를 추가하는 것이 좋습니다. 앞에서 설명한 것보다 큰 값이 나타나면 둘 중 어느 구성에서도 최대 버퍼 크기를 늘리지 마십시오. 앞에서 설명한 것보다 작은 값이 나타나면 두 구성 모두에서 데이터베이스의 최대 버퍼 크기를 늘릴 수 있습니다.

예를 들어, Boot.ini 파일에서 /3GB 스위치를 사용하도록 구성된 서버가 있고, 서버의 로드가 매우 클 때 성능 모니터의 Virtual Bytes 카운터가 2.5GB이면 최대 버퍼 크기를 약 300MB까지 늘려 총 크기가 1,200MB가 되도록 할 수 있습니다.

버퍼 크기를 늘리면 서버 성능이 저하될 수 있습니다. 버퍼가 커질수록 가상 주소 공간이 많이 소모됩니다. 따라서 서버에 가상 메모리 주소 공간 제약 조건이 발생한 경우 버퍼 크기를 늘리면 운영 체제가 불안정해질 수 있습니다. 매우 큰 사서함 서버에서는 시스템이 불안정해지지 않도록 기본 버퍼 크기를 줄여야 합니다.

ESE 버퍼 크기를 수정하는 방법
msExchESEParamCacheSizeMax 매개 변수는 ESE 버퍼 크기를 제어합니다. 해당 값은 페이지 카운트로 표현되며 효율성을 최대화하기 위해 다음과 같이 정확히 8192의 배수로 설정되어야 합니다.
  • /3GB 스위치가 설정된 서버에서의 기본 크기: 229376(896MB)
  • /3GB 스위치가 설정되지 않은 서버에서의 기본 크기: 147456(576MB)
  • /3GB 스위치가 설정된 상태에서 권장되는 최대값: 311296(1.2GB)
    참고 이 값을 기본값보다 높게 늘리기 전에 먼저 이 문서 앞부분에서 설명한 저장소 프로세스의 가상 바이트를 모니터링해야 합니다.
  • /3GB 스위치를 설정하지 않은 상태에서 권장되는 최대값: 196608(768MB)
    참고 이 값을 기본값보다 높게 늘리기 전에 먼저 이 문서 앞부분에서 설명한 저장소 프로세스의 가상 바이트를 모니터링해야 합니다.

참고 ESE 버퍼의 크기가 크게 설정되면 트랜잭션 로그의 재생이 상당히 빨라집니다. 재해 복구 시나리오에서 임시로 ESE 버퍼 크기를 311296 값으로 늘릴 수 있습니다.

Exchange 5.5 Server 컴퓨터를 현재 위치에서 직접 Exchange 2000 Server로 업그레이드하면 msExchESEParamCacheSizeMax 매개 변수에 할당된 값이 너무 커집니다. 일부 서버에서는 2,048MB에 해당하는 값이 할당됩니다. 이 경우 이 매개 변수를 제거하거나 좀 더 적절한 값으로 다시 설정하십시오. 저장소 데이터베이스 캐시 크기를 수정하려면 다음과 같이 하십시오.

  1. ADSI(Active Directory Service Interfaces) Edit 유틸리티를 시작합니다. ADSI Edit 유틸리티는 Windows 2000 또는 Windows Server 2003 CD-ROM의 Support\Tools 폴더에 있는 Windows 지원 도구에 포함되어 있습니다.
  2. Configuration Container [servername.example.com](여기서 servername.example.com은 해당 서버의 정규화된 도메인 이름 FQDN)에서 CN=Configuration, DC=example, DC=com을 확장합니다.
  3. CN=Services, CN=Microsoft Exchange, CN=OrganizationName(여기서 OrganizationName은 해당 조직의 이름), CN=Administrative Groups, CN=First Administrative Group(여기서 First Administrative Group은 해당 관리 그룹의 이름), CN=Servers, CN=servername을 차례로 확장합니다.
  4. CN=servername에서 CN=InformationStore를 마우스 오른쪽 단추로 누른 다음 속성을 누릅니다.
  5. Select which properties to view 목록에서 Both를 누릅니다.
  6. Select a property to view 목록에서 msExchESEParamCacheSizeMax를 누릅니다.
    참고 msExchESEParamCacheSizeMax 속성 이름의 길이는 Select a property to view 목록의 너비를 초과하므로 화면에 완전히 표시되지 않습니다. 이 속성 대신 msExchESEParamCacheSizeMin 속성을 잘못 누르지 않도록 주의하십시오.
  7. Edit Attribute 상자에서 이 특성에 할당할 값을 입력합니다.
    참고 8,192의 배수 값을 입력해야 합니다.
  8. Set을 누르고 OK를 누릅니다.
  9. ADSI Edit 유틸리티를 종료합니다. 그런 다음 이 값이 Active Directory 포리스트에 복제될 때까지 충분히 기다립니다.
  10. Exchange 서버에서 Microsoft Exchange 정보 저장소 서비스를 다시 시작합니다.
Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹 (http://support.microsoft.com/newsgroups/default.aspx) 에 참여하시기 바랍니다.
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
키워드:  kbinfo KB815372

====================

출처: http://support.microsoft.com/kb/815372

댓글 없음: