Exchange Server 2010 성능 모니터링

어떤 시스템에 대한 성능을 모니터링하고 평가한다는 것이 정말 쉬운 일은 아닙니다. 특별히 서로 다른 역할을 분담하는 Exchange Server 2010의 성능을 모니터링을 하려면 어떤 서버에서 어떤 카운터를 보아야 하는지 그냥 결정할 수는 없죠.

모든 시스템에 천편 일률적인 성능 기준치를 들이 밀수는 없겠지만, 그래도 Exchange 서버는 서버 역할에 따라 주의 깊게 보아야 할 성능 카운터를 정해두고, 또한 각 카운터의 임계값도  가이드를 하고 있습니다.

그럼 HUB/CAS/MBX 서버에서 각각 어떤 카운터를 모니터링 해 보면 좋을지 하나씩 살펴 보겠습니다.

1. 공통으로 보아야 할 카운터-모든 서버 역할에서 다 보아야 할 카운터

카운터

임계값

Processor(_Total)\% Processor Time

% Processor Time은 프로세서에서 응용 프로그램 또는 운영 체제 프로세스를 실행하는 시간을 백분율로 나타냅니다. 프로세서가 유휴 상태가 아닌 경우에 해당합니다.

평균 75%보다 작아야 함

Memory\Pages/Sec Pages/sec는 하드 페이지 폴트를 해결하기 위해 디스크에서 읽거나 디스크로 쓴 페이지의 비율입니다. 이 카운터는 시스템 전반적으로 지연을 일으키는 이러한 부재 오류의 주요 표시기입니다. 이것은 Memory\\Pages Input/sec과 Memory\\Pages Output/sec의 합입니다. 이것은 페이지 수로 계산되므로 Memory: Page Faults/sec 등과 같은 다른 페이지 수와 변환 없이 비교할 수 있습니다. 이것은 파일 시스템 캐시(일반적으로 응용 프로그램이 요청한) 및 비 캐시의 매핑된 메모리 파일에서 부재를 해결하기 위해 검색된 페이지를 포함합니다.

평균 1,000 보다 낮아야 함

Network Interface(*)\Bytes Total/sec

네트워크 어댑터가 데이터 바이트를 처리하고 있는 속도를 나타냅니다. 이 카운터에는 모든 응용 프로그램 및 파일 데이터를 비롯하여 패킷 헤더 등의 프로토콜 정보가 포함됩니다.

100MBps 네트워크 어댑터: 6-7MBps

1000Mbps 네트워크 어댑터: 60-70Mbps 미만

2. CAS서버에서 보아야 할 카운터

카운터

임계값

MSExchange RpcClientAccess\RPC Averaged Latency

이전 1,024개 패킷에 대한 평균 대기 시간(밀리초)을 나타냅니다.

250밀리초 이하

MSExchange RpcClientAccess\RPC Operations/sec

초당 RPC 작업이 발생하는 속도를 나타냅니다.

MSExchange RpcClientAccess\RPC Requests

RPC 클라이언트 액세스 서비스에 의해 처리되고 있는 클라이언트 요청 수를 나타냅니다.

40개를 넘을 수 없음

3. Hub서버에서 보아야 할 카운터

카운터

임계값

Logical/Physical Disk(*)\Avg. Disk sec/Read

디스크에서 데이터를 읽은 평균 시간을 초 단위로 나타냅니다.

평균 : 20밀리초 미만

최대값: 50밀리초 이하

Logical/Physical Disk(*)\Avg. Disk sec/Write

디스크에 데이터를 작성하는 데 걸리는 평균 시간(초)을 나타냅니다

평균 : 20밀리초 미만

최대값: 50밀리초 이하

\MSExchangeTransport Queues(_total)\Aggregate Delivery Queue Length (All Queues)

모든 큐에서 배달 대기 중인 메시지 수를 표시합니다
3,000 미만이면서 5,000 이하

\MSExchangeTransport Queues(_total)\Submission Queue Length

전송 큐의 메시지 수를 나타냅니다.

100을 초과해서는 안 됨.

값이 지속적으로 높은 경우 Active Directory 및 사서함 서버에 병목 현상이나 성능 관련 문제가 있는지 확인

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Version buckets allocated

할당된 버전 버킷의 총 수입니다. edgetransport.exe.config 파일에 나와 있는 기본 역 압력 값을 표시합니다.

항상 200보다 작아야 함

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Record Stalls/sec

로그 버퍼가 가득 찼기 때문에 로그 버퍼에 추가하지 못하는 초당 로그 레코드 수를 표시합니다. 이 카운터 값이 0이 아닌 경우의 대부분은 로그 버퍼 크기에 병목 현상이 발생했을 수 있습니다.

평균적으로 초당 10 미만.

최대값은 초당 100 이하

MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Threads Waiting

데이터베이스 업데이트를 완료하기 위해 데이터가 로그에 작성되도록 기다리는 스레드 수를 나타냅니다. 이 값이 너무 크면 로그에 병목 현상이 발생했을 수 있습니다.

평균적으로 기다리는 스레드 수: 10 미만

4. MBX 서버에서 보아야 할 카운터 

카운터

임계값

Logical/Physical Disk(*)\Avg. Disk sec/Read

디스크에서 데이터를 읽은 평균 시간을 초 단위로 나타냅니다.

평균 : 20밀리초 미만

최대값: 50밀리초 이하

Logical/Physical Disk(*)\Avg. Disk sec/Write

디스크에 데이터를 작성하는 데 걸리는 평균 시간(초)을 나타냅니다

평균 : 20밀리초 미만

최대값: 50밀리초

MSExchangeIS\RPC Averaged Latency

최근 1,024개 패킷에서 이루어진 모든 작업의 평균 RPC 대기 시간을 밀리초 단위로 나타냅니다.

평균: 100밀리초 전체 RPC 대기 시간이 특정 프로토콜에 의해 발생되는지 확인하려면 MSExchangeIS Client (*)\RPC Average Latency를 모니터링하여 클라이언트 프로토콜을 바탕으로 대기 시간을 구분

MSExchangeIS Mailbox(_Total)\Messages Queued for Submission

전송된 메시지 중 전송 계층에서 아직 처리하지 않은 현재 메시지 수를 나타냅니다

항상 50미만 이 값이 크다면 이는 전송 서버에 대한 연결 문제를 나타낼 수 있음.

MSExchange Database(Information Store)\Log Record Stalls/sec

로그 버퍼가 가득 찼기 때문에 로그 버퍼에 추가하지 못하는 초당 로그 레코드 수를 나타냅니다. 오랜 시간 동안 이 카운터가 0이 아닌 경우 로그 버퍼 크기에 병목 현상이 발생했을 수 있습니다.

평균: 초당 10 미만 최대값: 초당 100 이하

성능 카운터에 대한 더 자세한 내용은 다음 URL을 참고하세요.

https://technet.microsoft.com/en-us/library/ff367871(v=exchg.141).aspx

 

그럼 이제 이 카운터를 어떻게 추가해서 보면 좋을까요? 물론 성능모니터를 이용해야 겠죠. 하지만 Windows성능모니터를 열고 해당하는 카운터를 하나씩 추가하는 것은 성능을 모니터링 하는 것 만큼이나 힘든 일입니다. 기본적으로 Exchange가 제공하는 기능을 이용하면 좋겠죠?

1. Exchange 관리콘솔을 엽니다.

2. Microsoft Exchange-Microsoft Exchange  온-프레미스를 확장한 다음 [도구 상자]를 누릅니다.

3. 맨 하단부 성능 도구 쪽에 [성능 모니터]가 있습니다. 더블클릭 하여 실행합니다. 위에서 주로 보아야 한다고 소개한  대부분의 카운터가 역할별로 보일 것입니다.

image

4. 실시간 모니터가 아닌 성능 로그를 수집하기 위해 아래 작업을 계속 진행합니다.

5. 그래프 영역에 마우스 오른쪽을 누르고 [설정을 다른 이름으로 저장]을 선택합니다.

6. 파일 이름을 지정하여 .htm 또는 .html형태로 저장합니다.

7. 성능도구에서 [성능 로그 및 경고]를 확장하고 [데이터 수집기 집합]-[사용자 정의]를 마우스 오른쪽으로 누른 다음 새로 만들기-[데이터 수집기 집합]을 선택합니다.

image

8. 데이터 수집기 집합 이름을 적절히 입력하고 [탬플릿으로 부터 만들기(권장)]을 선택한 다음 [다음]을 누릅니다.

image

9. 탬플릿을 선택하기 위해 [찾아보기]를 누릅니다.  열기 창에서 파일 확장명을 *.*으로 변경하고 6번에서 저장했던 파일을 선택합니다. 다음을 누릅니다.

image 

9.  성능 데이터를 저장할 경로(기본적으로 %systemdrive%\PerfLogs\Admin\Exchange Perf)를 지정하고 다음을 누릅니다.

10. 저장 후 닫기가 선택되어 있습니다. [마침]을 누릅니다.

11. 사용자 정의 하위에 생긴 데이터 수집기 집합을 누른 다음 오른쪽에서 [DataCollector01]을 마우스 오른쪽으로 누르고 [속성]을 누릅니다.

image

12. 추가된 Exchange관련 카운터를 확인합니다. 혹시 부족한 부분이 있으면 카운터를 추가 할 수 있습니다. 확인을 눌러 창을 닫습니다.

image

12. 사용자 정의된 성능 집합을 선택하고 데이터 수집기 집합을 시작합니다.

image

13. 일정시간 모니터링하고 난 다음 수집기 집합을 종료합니다.

14. 보고서-사용자 정의를 확장한 다음 데이터 수집기 집합의 이름을 확장합니다. DataCollector01.blg와 같은 파일을 선택하면 로그 분석 결과를 확인할 수 있습니다. 위에 제시된 기준치와 비교하여 이상유무를 판단합니다.

image

 

만약 Exchange 서버가 역할 별로 나눠져서 로그가 여러 개 수집 되었다면, 다음과 같은 방법으로 로그를 하나의 결과 파일로 만든 다음 보실 수도 있습니다.

1. Command창을 실행합니다.

2. 두 개의 Log파일을 저장한 폴더로 이동합니다.

3. Relog 명령어에 원본 로그 파일이름을 연속적으로 입력하고 -o 옵션을 이용하여 결과물이 될 파일 이름을 입력합니다.

Relog SeparateLog1.blg SeparateLog2.blg -o CombinedLog.blg

4. 결과 파일을 더블 클릭하여 성능 결과를 확인 할 수 있습니다.