Exchange Server 2003의 메모리 사용 최적화

 

마지막으로 수정된 항목: 2006-08-16

이 항목에는 서버 메모리 사용량 모니터링 및 최적화에 대한 정보가 나와 있습니다.

메모리 사용량 모니터링

이벤트 뷰어 응용 프로그램 로그와 성능 로그 및 경고(관리 도구 하위 메뉴의 성능)에서 가상 메모리 문제가 있는지 모니터링할 수 있습니다. 응용 프로그램 로그에서는 사용 가능한 가상 메모리 블록 중 가장 큰 블록이 32MB로 줄어들면 9582 경고가 표시됩니다. 이 경고가 표시되면 다음 번에 Exchange 저장소 프로세스를 다시 시작해야 합니다. 사용 가능한 가장 큰 블록이 16MB로 줄어들면 9582 오류가 다시 표시됩니다. 이 오류는 서버에 오류가 발생할 수 있으므로 처음 발생했을 때 서버를 다시 시작해야 한다는 의미입니다. 이러한 이벤트에 대해 조치를 취하지 않으면 메일이 제때 배달되지 않고 IMAIL 변환이 수행되지 않습니다(12800 이벤트).

성능 로그 및 경고에서 다음 카운터를 모니터링합니다.

  • MSExchangeIS 개체의 VM Largest Block Size 카운터 정상적인 서버에서는 사용 가능한 가장 큰 블록의 크기가 200,000,000바이트(200MB)를 넘습니다. 값이 더 작으면 서버를 자세히 모니터링해야 합니다.
  • Memory 개체의 Pool Pages Bytes 카운터 백업이 실행 중인 경우를 제외하고 크기가 200MB보다 크면 문제가 있음을 나타냅니다. 백업 중에는 풀 페이지에 의해 캐시 관리자의 각 페이지가 백업됩니다.
  • Memory 개체의 Pool Nonpaged Bytes 카운터 크기가 100MB보다 크면 문제가 있음을 나타냅니다.
  • Memory 개체의 Free System Page Table Entries 카운터 크기가 3000 이하이면 문제가 있음을 나타냅니다.
  • Process 개체의 Working Set 카운터 Working Set이 계속 증가하면 메모리 누수의 가능성을 나타냅니다.

서버에 가상 주소 공간이 부족하다는 신호가 있을 경우 다음 설정을 조정해야 합니다. 이러한 설정이 Microsoft® Exchange에 맞게 최적화되지 않으면 이벤트 뷰어에 이벤트 9665가 표시됩니다.

  • 서버에서 Windows® 2000 Advanced Server나 Windows Server™ 2003을 실행 중이고 실제 메모리가 1GB 이상이면 Boot.ini 파일에서 /3GB 스위치를 설정합니다.
  • 서버에서 Windows Server 2003(모든 버전)을 실행 중이면 아래와 같이 /USERVA 스위치와 SystemPages 레지스트리 키를 구성합니다. 서버에서 Windows 2000을 실행 중이면 Windows 2000 SP3 이상이 설치되어 있는지 확인합니다.
  • 서버의 실제 메모리가 1GB 이상이면 아래와 같이 HeapDeCommitFreeBlockThreshold 레지스트리 매개 변수를 설정합니다.
  • 필요하면 아래와 같이 저장소 데이터베이스 캐시 크기를 조정합니다.

이벤트 9665

저장소 프로세스가 시작되면 Exchange에서 메모리가 최적으로 구성되어 있는지 검사합니다. 메모리 설정이 최적화되지 않으면 이벤트 뷰어에 이벤트 9665가 나타납니다. 이 메시지는 다음과 같은 경우에 표시됩니다.

  • 서버에서 Windows 2000을 실행 중이고 레지스트리의 SystemPages 값이 24000에서 31000까지의 범위를 벗어났습니다.
  • 서버에 1GB 이상의 메모리가 있고 /3GB 스위치가 없습니다.
  • 서버에서 Windows Server 2003을 실행 중이고 메모리가 1GB 이상이며 /3GB 스위치가 설정되어 있지만 /USERVA 설정이 없거나 3030으로 설정되어 있지 않습니다.

이 이벤트가 표시되면 레지스트리의 SystemPages 및 HeapDeCommitFreeBlockThreshold 설정과 Boot.ini 파일의 /3GB 스위치 및 /USERVA 설정을 확인하십시오. 다음 섹션에는 이러한 각 설정에 대한 권장 사항이 있습니다.

참고

이벤트 9665 로깅을 해제하려는 경우에는 다음 표에 표시된 레지스트리 키를 만들 수 있습니다.

메모리 구성 검사를 끄는 레지스트리 키

경로

HKLM\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\

매개 변수

Suppress Memory Configuration Notification

종류

REG_DWORD

설정

1

참고

Microsoft® Small Business Server를 실행하는 서버에서는 메모리 구성을 검사하지 않습니다.

/3GB 스위치 설정

기본적으로 Windows 2000 Advanced Server와 Windows Server 2003에서는 Store.exe와 같은 사용자 모드 프로세스에 2GB의 가상 주소 공간을 할당합니다. 서버에 1GB 이상의 실제 메모리가 있으면 Boot.ini 파일에서 /3GB 스위치를 설정하여 가상 주소 공간을 늘리십시오.

다음 기준을 충족하는 서버에만 /3GB 스위치를 설정하면 됩니다.

  • Exchange 2003 사서함 또는 공용 폴더를 호스팅하는 서버
  • 실제 메모리가 1GB 이상인 서버

공용 폴더나 사서함 저장소가 없는 Exchange 서버에는 이 스위치를 설정하지 않는 것이 좋습니다.

/3GB 스위치에 대한 자세한 내용은 Microsoft 기술 자료 문서 266096, "1GB 이상의 실제 RAM을 가진 Exchange 2000 서버에서 /3GB 스위치가 필요하다"(https://go.microsoft.com/fwlink/?linkid=3052&kbid=266096)를 참조하십시오.

중요

/3GB 스위치는 Windows 2000 Advanced Server와 모든 버전의 Windows Server 2003에 사용하도록 설계되었습니다. Windows 2000 Standard Edition에서는 /3GB 스위치를 설정하지 마십시오.

/USERVA 및 SystemPages 구성

서버에서 Windows 2000을 실행 중이면 SystemPages 레지스트리 키를 24000에서 31000 사이의 값으로 설정해야 합니다. SystemPages 레지스트리 키는 다음 경로에 있습니다.

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

서버에서 Windows Server 2003을 실행 중이면 SystemPages 값을 0으로 설정하고 Boot.ini 파일에서 /USERVA=3030 매개 변수를 설정합니다. 이러한 설정은 서버의 시스템 페이지 테이블 항목을 늘어나게 하여 시스템 확장에 중요한 영향을 미칩니다.

자세한 내용은 Microsoft 기술 자료 문서 810371, "Windows 2003 Server 기반 Exchange Server에서 /Userva 스위치 사용"(https://go.microsoft.com/fwlink/?linkid=3052&kbid=810371)을 참조하십시오.

HeapDeCommitFreeBlockThreshold 레지스트리 키 설정

HeapDeCommitFreeBlockThreshold 레지스트리 키는 힙 관리자가 메모리 커밋을 취소(또는 해제)하기 전에 필요한 여유 공간을 제어합니다. 기본값은 0이며 이 값을 사용하면 힙 관리자가 사용 가능하게 되는 4KB 페이지마다 커밋을 취소합니다. 시간이 지나면 가상 주소 공간이 조각날 수 있습니다. 실제 메모리가 1GB 이상인 서버에서는 레지스트리 키를 더 큰 값으로 설정하여 조각화를 줄이거나 제거할 수 있습니다. 다음 표에 표시된 것처럼 레지스트리 키를 설정한 다음 서버를 다시 시작하십시오. HeapDeCommitFreeBlockThreshold 레지스트리 키에 대한 자세한 내용은 Microsoft 기술 자료 문서 315407, "XADM: The 'HeapDeCommitFreeBlockThreshold' Registry Key"(https://go.microsoft.com/fwlink/?linkid=3052&kbid=315407)를 참조하십시오.

HeapDeCommitFreeBlockThreshold 레지스트리 키 설정

경로

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager

매개 변수

HeapDeCommitFreeBlockThreshold

종류

REG_DWORD

기본값

0

권장 설정*

262144

* 이 값은 십진수 단위의 블록 수입니다. 권장 값은 16진수 값 0x00040000에 해당하는 262144입니다.

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

ESE(확장 가능한 저장소 엔진) 버퍼라고도 하는 저장소 데이터베이스 캐시는 데이터베이스로 커밋되기 전에 데이터베이스 트랜잭션을 캐시합니다. 기본적으로 Exchange 2003은 서버에 /3GB 스위치가 설정되어 있으면 896MB를 할당하고 /3GB 옵션이 설정되어 있지 않으면 576MB를 할당합니다. 다음과 같은 경우 최대 버퍼 크기를 조정하면 성능을 향상시킬 수 있습니다.

  • 서버에서 Exchange 2003과 다른 서버 쪽 응용 프로그램을 실행 중이면 버퍼를 줄여 Exchange의 메모리 사용을 제한합니다.
  • 2 GB 보다 많은 메모리가 있는 서버에서는 버퍼 크기를 최대 1200 MB까지 늘립니다.

최대 버퍼 크기를 늘리기 전에 보통 로드 상태에서 성능 로그 및 경고를 사용하여 Process 개체에 있는 Virtual Bytes 카운터의 저장소 인스턴스를 모니터링합니다. Virtual Bytes 카운터는 Store.exe 프로세스에서 사용하는 가상 주소 공간의 현재 크기를 바이트로 표시합니다. /3GB 스위치가 설정된 경우에는 값이 2.8GB 미만이고 /3GB 스위치가 설정되지 않은 경우에는 값이 1.8GB 미만이어야 합니다. 값이 더 클 경우 최대 버퍼 크기를 늘리지 마십시오. 값이 더 작을 경우 최대 버퍼 크기를 1,200MB까지 늘릴 수 있습니다. 예를 들어 /3GB 스위치가 설정되어 있고 서버 사용량이 많은 상태에서 가상 바이트 수가 2.5GB일 경우 최대 버퍼 크기를 약 300MB까지 늘릴 수 있습니다.

주소 공간 조각화 문제가 있는 서버에서 버퍼 크기를 늘리면 서버 성능이 저하될 수 있습니다. 버퍼 크기가 클수록 가상 주소 공간이 더 많이 사용되므로 버퍼 크기를 늘리면 시스템이 불안정해질 수 있습니다.

최대 버퍼 크기를 조정하려면 ADSI(Active Directory Service Interface) 편집을 사용하여 msExchESEParamCacheSizeMax 값을 수정합니다. msExchESEParamCacheSizeMax 값을 수정하는 방법에 대한 자세한 내용은 Microsoft 기술 자료 문서 266768, "XSTR: How to Modify the Store Database Maximum Cache Size"(https://go.microsoft.com/fwlink/?linkid=3052&kbid=266768)를 참조하십시오. 값을 설정한 후에 Active Directory® 디렉터리 서비스에서 전체 포리스트로 값을 복제할 때까지 기다리십시오. 그런 다음 Microsoft Exchange Information Store 서비스를 다시 시작합니다.

중요

msExchESEParamCacheSizeMin 값을 선택하지 마십시오.

다음 표에서는 최대 버퍼 크기 기본값과 권장 사항을 요약합니다. 값은 페이지 수로 표시되며 최대의 효과를 위해 8192의 정확한 배수로 설정됩니다.

버퍼 크기 기본값 및 권장 사항

/3GB 서버의 기본 크기

229376(896MB)

/3GB 서버가 아닌 경우의 기본 크기

147456(576MB)

권장 최댓값

311296(1.2GB)

주소 공간이 제약된 대용량 서버

196608(768MB)