시작하기: 스레드 병목 현상 발견

경합 및 교착 상태와 같은 스레드 병목 현상은 어플리케이션의 속도를 떨어뜨리거나 정지하도록 할 수 있습니다. 프로파일링 및 로깅 Perspective에는 이러한 스레드 문제점의 발견 및 해결에 도움이 되는 보기 및 툴이 포함되어 있습니다.

스레드 병목 현상을 발견하는 데 다음 보기를 사용할 수 있습니다.

Probekit에서 설계하는 사용자 정의 프로브를 사용하여 스레드 병목 현상을 조사할 수도 있습니다.

상위 주제: 런타임 문제점 판별 시작하기

스레드 병목 현상 발견을 위한 데이터 수집

전제조건:

데이터를 수집하려면 다음을 수행하십시오.
  1. 프로파일 대화 상자의 프로파일링 탭에서 스레드 분석 프로파일링 세트를 선택하십시오.
  2. 프로파일을 눌러서 어플리케이션을 시작하십시오.
  3. 스레드 병목 현상이 발생된다고 생각되는 어플리케이션의 파트를 실행하십시오. 스레드 데이터가 스레드 분석 프로파일링 자원에서 수집되고 기록되며, 이는 프로파일링 네비게이터에 표시됩니다. 이제 어플리케이션을 종료할 수 있습니다.

스레드 병목 현상 발견에 스레드 보기 및 UML2 순서 다이어그램 보기 사용

스레드 보기는 어플리케이션의 모든 스레드에 대한 스레드 실행 히스토리를 표시하며, 교착 상태 및 경합 상황을 명시적으로 표시합니다. UML2 객체 상호 작용 보기는 프로파일링 실행 중에 호출의 순서를 표시합니다.

스레드 병목 현상을 발견하려면 다음을 수행하십시오.
  1. 스레드 보기 표시: 수집한 데이터에 대한 프로파일링 자원을 마우스 오른쪽 단추로 누르고 팝업 메뉴에서 열기 도구 > 스레드 보기를 선택하십시오.
  2. 스레드 보기에서 스레드 간의 수직 화살표 잠금 요청을 표시하는 화살표를 찾으십시오. 화살표는 잠금을 요청하는 스레드에서 잠금을 보유한 스레드를 가리킵니다. 하나의 화살표는 스레드 경합을 표시합니다. 하나의 스레드는 다른 스레드가 잠금을 해제할 때까지 대기합니다. 다중 화살표는 순환 잠금 요청 패턴을 표시하는 경우 교착 상태를 나타내며, 여기서 스레드는 서로의 잠금이 해제되기를 대기 중이므로 서로 실행되는 것을 막습니다.
  3. 병목 현상 시점에 호출된 메소드를 식별하십시오. 메소드를 식별하려면 다음 단계를 수행하십시오.
    1. 스레드에서 대기 중인 잠금 이름을 찾으십시오. 스레드 보기에서 잠금을 대기 중인 위치에 있는 스레드 위에 커서를 두십시오. 잠금을 보유 중인 잠금 스레드 이름은 물론, 잠금 이름이 툴팁에 표시됩니다.
    2. 스레드 분석 프로파일링 자원을 마우스 오른쪽 단추로 누르고 팝업 메뉴에서 열기 도구 > UML2 객체 상호 작용을 선택하십시오.
    3. 스레드의 스레드 보기 목록에서 조사하고자 하는 잠금을 보유 중인 스레드를 선택하십시오. UML2 객체 상호 작용 보기는 잠금 및 잠금 요청을 포함하여 선택된 스레드의 객체 상호 작용을 표시합니다.
    4. 조사할 요청에 대해 화살표 위에 현재 시간 표시기를 위치하십시오. 이는 UML2 객체 상호 작용 보기 및 프로파일링 모니터의 호출 스택 프로파일링 자원을 모두 동기화합니다. 현재 시간 표시기는 기본적으로 스레드 보기 그래프의 왼쪽 모서리에 있습니다. 이를 이동하려면 마우스로 잡으십시오.
  4. 사용 가능한 경우 잠금 보유를 담당한 소스 코드를 표시하십시오. 이를 수행하려면 잠금을 보유 중인 스레드에 대한 호출 스택에서 최신 호출을 마우스 오른쪽 단추로 누른 후 팝업 메뉴에서 소스 열기를 선택하십시오. 소스 코드는 Java Perspective에서 현재 열려 있는 Java™ 프로젝트를 프로파일하는 경우에만 사용 가능합니다. 이제 코드를 변경하여 병목 현상을 해결할 수 있습니다.
  5. 병목 현상을 해결했는지 확인하려면 어플리케이션을 다시 프로파일하십시오.

자세한 정보를 보려면 스레드 병목 현상 발견을 읽으십시오.

실행 플로우 및 실행 플로우 테이블 보기 사용

이 보기는 스레드 보기가 기반으로 하는 원시 데이터를 다른 형식으로 표시합니다.

이 보기를 사용하려면 다음을 수행하십시오.
  1. 실행 플로우 또는 실행 플로우 테이블 보기를 표시하려면 > 보기 표시 > 기타. . .를 선택하고 보기 표시 대화 상자에서 프로파일링 및 로깅 항목을 펼친 후에 표시하고자 하는 보기를 선택하십시오.
  2. 실행 플로우 및 실행 플로우 테이블 보기의 팝업 메뉴에서 상쇄 시간을 선택함으로써 프로파일에 의한 시간을 제외할 수 있습니다.

이용약관 | 피드백
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.