류짱:Beyond MySelf

Windows server 프로세스 덤프 (user dump) 수집 방법 본문

Microsoft/Windows Platform

Windows server 프로세스 덤프 (user dump) 수집 방법

リュちゃん 2011. 6. 21. 10:57

생각보다 user dump를 수집 할 수 있는 방법이 많네요....
userdump.exe / adplus / debug diag / process explorer /
작업 관리자 / procdum.exe ...등 등
..

정리 해 봅니다
.

1. Userdump.exe
도구를 사용하여 덤프 파일을 만드는 방법

http://support.microsoft.com/kb/241215/ko

1. 아래 링크를 통하여 user dump tool을 다운로드 받아 설치합니다.

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e089ca41-6a87-40c8-bf69-28ac08570b7e

2. 더블 클릭하여 실행하면 실행 파일이 C:\kktools\userdump81\ folder에 저장됩니다.

3. C:\kktools\userdump81\x86\setup.exe를 실행하여 setup process실행합니다.

4. 설치 과정에서 “Dump on process termination” 기능을 enable합니다.

5. 설치가 끝나면, 제어판에서 Process dumper 를 실행합니다

6. New 를 클릭하시고, dump를 수집할 process를 입력합니다.

=> 여기에 수집 하고자 하는 process 이름, 예를 들면, explorer.exe 를 입력합니다.

7. 해당 아이템을 Double click 하여 process monitor rule 대화상자를 실행합니다.

8. Use custom rules 을 실행합니다

9. Dump file folder text 상자에 덤프 파일이 저장될 경로를 입력합니다.

10. All Exceptions 를 선택합니다.

11. Minidump type Complete, Save mode Cyclic Saving(5 times) 를 선택합니다.

12. Monitor process exit 을 선택하고 Minidump type Complete 를 선택합니다.

13. 문제 증상을 재현하면, 9번에 설정한 경로에 process덤프가 생성될 것입니다.

** 자료 수집 이후, 덤프 설정을 제거하기 위해서는 제어판/Process dumper/Process Monitoring에서 explorer.exe 를 선택 후, Remove 버튼을 클릭하시면 됩니다.


2. Adplus.vbs 이용한 덤프 수집

ADPlus를 사용하여 "중지" "충돌" 문제를 해결하는 방법
http://support.microsoft.com/kb/286350

adplus를 이용한 process dump 생성

A. cmd 창을 설치하고, windbg가 설치된 폴더(C:\program files\Debugging Tools for Windows )
이동합니다.
B.
작업 관리자에서 덤프를 생성하고자 하는 프로세스의 ID를 확인 합니다
.
cf)
명령 프롬프트를 실행하여 tasklist 명령어를 실행하여 PID Process Name을 확인 하셔도 됩니다
.
C.
아래 명령으로dump 수집을 위한 명령어를 실행합니다
.

1. Crash Dump
수집

adplus
crash p[덤프 수집하고자 하는 프로세스 PID] –o c:\(덤프저장위치)

2.
프로세스 hang 덤프 수집
adplus -hang -pn [
덤프 수집하고자 하는 프로세스 이름] –o c:\(덤프 저장위치)

> adplus crash p 2784
o c:\  // 프로세스 ID 2784의 프로세스에 crash가 발생 할 경우 C:\ 저장




3. Debug diag1.2을 이용한 덤프 수집

Debug Diagnostic Tool v1.2
http://www.microsoft.com/download/en/details.aspx?id=26798

Debug Diagnostics Tool v1.2 is now available

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

4. Process Explorer를 이용한 덤프 수집
Sysinternals
사이트에서 Process Explorer를 다운 로드 후 설치

http://technet.microsoft.com/en-us/sysinternals

A.
프로세스 익스플로러를 실행 후 덤프를 수집 하고자 하는 프로세스를 오른쪽 마우스로 선택 후 create dump => Full dump


5. 작업 관리자를 이용한 덤프 수집(Windows Vista 이상)
How to create a user-mode process dump file in Windows Vista and in Windows 7
http://support.microsoft.com/kb/931673

How to create a user-mode process dump file in Windows Server 2008
http://support.microsoft.com/kb/949180

작업 관리자를 실행 후 덤프를 생성 하고자 하는 프로세스를 오른쪽 마우스로 선택 후 덤프를 생성 합니다.






덤프가 생성 되는 위치를 쉽게 찾아가는 방법은 작업 표시줄 => 시작 => 열기에 [%appdata%]를 입력 후 해당 폴더로 이동 하는 것입니다.

6. Windows debugging tool을 이용한 덤프 수집


7. procdump.exe를 이용한 덤프 수집

http://technet.microsoft.com/en-us/sysinternals/dd996900

덤프 수집 예)

Procdump -64 c 50 ma s 2 n 2 2252 c:\temp
프로세스 id 2252 cpu의 사용률이 2초간 50% 이상 될 경우 c:\temp에 프로세스 full 덤프 수집

옵션 설명
-64: OS
x64버전 일 경우
- c: CPU
의 사용률
- ma: process full dump
- S: C
옵션을 이용해서 지정한 CPU usage의 지속 시간()
- n:
덤프 수집 횟 수

- 2252 : cpu
를 많이 사용한w3wp프로세스 ID
- c:\temp :
덤프 생성 위치



감사합니다^^