HOWTO: MTS 또는 COM+(Dllhost.exe) 프로세스의 높은 CPU 사용률 문제 해결
MS Windows


2004/05/17 11:42
http://blog.naver.com/nayo5908/100002523375
요약
이 문서는 Microsoft Transaction Server(Mtx.exe) 또는 COM+(Dllhost.exe) 프로세스가 성능 모니터에서 높은 CPU 사용률을 표시하고 CPU 사용률이 100%로 높아지면 프로세스 덤프와 성능 모니터 로그를 캡처하고 프로세스 덤프와 비교하여 문제를 찾아내는 데 도움을 줄 수 있습니다. 덤프를 분석하려면 Microsoft 지원 담당자에게 연락하거나 WinDbg 도구를 사용할 수 있습니다(자세한 내용은 "참조" 절 참조).추가 정보
프로세스 덤프와 성능 모니터 로그를 캡처하려면 다음 단계를 수행하십시오.- 시작 메뉴에서 프로그램, 관리 도구를 가리킨 다음 시스템 성능 모니터를 누릅니다.
- 도구 모음에서 (+) 단추를 누릅니다. 차트에 추가 대화 상자에서 다음 항목을 선택합니다.
개체 = Process
카운터 = % Processor Time
카운터 = ID Process - 인스턴스 목록에서 해당 시스템의 모든 프로세스를 선택하고 추가, 완료를 차례로 누릅니다.
- 대부분의 CPU를 소모하는 프로세스를 선택하려면 Microsoft Windows NT 4를 실행하는 컴퓨터에서는 백스페이스 키를 한 번 누릅니다. Microsoft Windows 2000 기반 컴퓨터의 도구 모음에서는 하이라이트 단추를 누릅니다. 선택한 카운터가 그래프에 흰색으로 나타납니다.
- 화살표 키를 사용하여 대부분의 CPU를 소모하는 프로세스를 찾습니다. 프로세스 이름과 프로세스 ID를 적어 둡니다.
- Delete 키를 눌러 차트에서 관련 없는 다른 카운터를 제거합니다.
- 성능 모니터 도구 모음에서 카운터 추가(+) 단추를 누릅니다. 차트에 추가 대화 상자에서 다음 항목을 선택합니다.
개체 = Thread
카운터 = % Processor Time - 인스턴스 목록에서 적어 둔 프로세스 인스턴스(Windows NT 4에서는 MTX.exe, Windows 2000에서는 Dllhost.exe)에 대해 해당하는 모든 스레드를 누르고 추가를 누른 다음 완료를 누릅니다.
다음과 같은 모습이 됩니다.- dllhost/0 - dllhost/0#1 - dllhost/1 - dllhost/1#1 ...
'/' 다음의 숫자는 스레드 번호입니다. '#' 다음의 숫자는 프로세스 인스턴스 번호입니다(둘 이상의 dllhost를 가질 수 있음). 찾고 있는 스레드의 프로세스 번호는 5단계에서 본 것과 같아야 합니다. - 화살표 키를 사용하여 대부분의 CPU를 소모하는 스레드를 찾고 해당 인스턴스를 적어 둡니다.
- 시스템 성능 모니터 도구 모음에서 카운터 추가(+) 단추를 누릅니다. 차트에 추가 대화 상자에서 다음 항목을 선택합니다.
개체 = Thread
카운터 = ID Thread
인스턴스 = 앞 단계에서 적어 둔 스레드의 인스턴스 - 추가를 누른 다음 완료를 누릅니다.
- 마지막에 있는 ID 스레드를 적어 두고 시스템 성능 모니터를 종료합니다.
- 시스템에 UserDump를 설치합니다.
- 명령 프롬프트에서 다음 명령을 입력하여 폴더를 Userdump 폴더로 변경합니다.
userdump [적어 둔 process ID]
- Windows NT 서비스 팩
- Microsoft Data Access Components(MDAC) 버전(해당되는 경우)
- Microsoft Distributed Transaction Coordinator(MS DTC) 버전
- 높은 CPU 사용률 스레드 ID
- SQL 버전 및 서비스 팩(해당되는 경우)
- Oracle 버전, 클라이언트 버전 및 Net Library 버전(해당되는 경우)
- 현재 사용되는 추가 패치 또는 핫픽스
- 사용자 지정 또는 다른 공급업체 구성 요소의 기호 파일(해당되는 경우)