연습 1.2: 스레드 데이터 수집
시작하기 전에 연습 1.1: 필수 자원 가져오기를
완료해야 합니다.
시나리오: 조사할 프로그램이 잠깐 실행된 후 갑자기 정지합니다.
프로그램을 실행할 때마다 이런 현상이 발생합니다. 이러한 작동은 전형적인 스레드 교착 상태로,
이 프로그램의 스레드가 상호 작용하는 방법을
조사해야 합니다.
스레드 교착 상태를 찾으려면 먼저 스레드 데이터를 수집한 다음 프로파일링
및 로깅 Perspective에서 스레드 보기를 사용하여 데이터를 분석합니다.
스레드 데이터를 수집하면 어플리케이션 실패의 원인으로 교착 상태를 식별하거나
스레드를 제외시킬 수 있습니다.
스레드 데이터 수집 준비
스레드 데이터를 수집하려면 프로파일링 및 로깅 Perspective에 있어야 합니다.
Perspective로 전환하려면 다음을 수행하십시오.
- Software Development Platform 메뉴 표시줄에서 창 > Perspective 열기 >
기타...를 선택하십시오. Perspective 선택 대화 상자가 열립니다.
- 대화 상자의 왼쪽 하단에서 모두 표시를 누르십시오. 선택란이 선택되어 표시됩니다.
- Perspective 목록에서 프로파일링 및 로깅을
선택하고 확인을 누르십시오.
- 인에이블먼트 확인 대화 상자가 열리면 기능 항상 사용 및 이 메시지를 다시 표시
안함을 누른 다음 확인을 누르십시오.
- Software Development Platform이 프로파일링 및 로깅 Perspective로 전환됩니다.
philosopher 어플리케이션에 대한 스레드 데이터 수집
데이터를 수집하려면 다음을 수행하십시오.
- Software Development Platform 메뉴 표시줄에서 창 > 보기 표시 > 콘솔을
선택하여 콘솔 보기를 여십시오. 콘솔 보기를 통해 처리되는 대로 어플리케이션을 따라갈 수 있습니다.
- 프로파일링 형상을 작성하려면 다음을 수행하십시오.
- 메뉴 표시줄에서 실행 > 프로파일...을 선택하십시오. 프로파일 대화 상자가 열립니다.
- 형상 목록에서 Java 어플리케이션 항목을 두 번 누르십시오.
New_configuration 항목이 표시됩니다.
- 이름 필드에 PhilosopherThreads를 입력하십시오.
- 기본 탭에서 philosopher가 프로젝트 필드에 입력되어
있지 않으면 다음을 수행하십시오.
- 프로젝트 필드의 옆의 찾아보기를 누르십시오. 프로젝트 선택 대화 상자가 열립니다.
- philosopher를 선택한 후 확인을 누르십시오.
- 기본 클래스 필드의 옆의 검색을 누르십시오.
- 기본 유형 선택 대화 상자에서 MaitreDHote를 선택한 후
확인을 누르십시오.
- IBM JVM(Java Virtual Machine)을 사용할 경우 다음을 수행하십시오.
- 프로파일 대화 상자에서 인수 탭을 누르십시오.
- VM 인수 아래에 -Xj9를 입력하여 올바른 JVM 버전을 지정하십시오.
- 프로파일 대화 상자에서 프로파일링 탭을 누르십시오.
- 개요 하위 탭에서 스레드 분석 프로파일링 세트의 선택란을 선택하십시오.
(프로파일링 세트(profiling set)가 실행하기 위해 수집할 프로파일링 데이터의 유형을 정의합니다.)
- 프로파일을 누르십시오. 어플리케이션이 실행되고 디스플레이가
다음과 같이 변경됩니다.
- 프로파일링 자원이 프로파일링 모니터에 표시됩니다.
- 콘솔 보기에 실행에 대한 출력이 표시됩니다.
참고: 에이전트 제어기를 사용할 수 없다는 보안 메시지가 나타나면
데이터를 수집할 수 없는 경우를 읽으십시오.
어플리케이션이 특정 위치에 도달하면 처리를 중지합니다. 출력이 다음과 같이 표시됩니다.
. . .
philo#3: waiting for right fork#3
philo#2: waiting for right fork#2
philo#1: waiting for right fork#1
philo#0: waiting for right fork#0
HeadWaiter: all philosophers are locked for 6 times.
exiting application.
이것은 프로그램이 중지한 위치입니다. 그러나 이 실행과 관련하여 스레드 데이터를 수집했으므로
중지한 이유를 분석할 수 있습니다.
데이터를 수집할 수 없는 경우
프로파일링 데이터를 수집하려면 에이전트 제어기가 실행 중이어야 합니다.
에이전트 제어기를 사용할 수 없다는 메시지를 받은 경우 에이전트 제어기가 설치되었는지
확인하고 수동으로 시작한 후 다시 시도하십시오. 지시사항은 설치 안내서를 참조하십시오.
설치 안내서는 런치패드를 사용하여 액세스하거나 제품 CD의 disk1/install.html에서
찾을 수 있습니다.
데이터를 수집했으면 연습 1.3: 스레드 병목현상 식별을
시작할 수 있습니다.