연습 1.3: 스레드 병목현상 식별

시작하기 전에 연습 1.2 스레드 데이터 수집을 완료해야 합니다.

스레드 보기를 사용하여 스레드 병목현상 찾기

스레드 보기는 어플리케이션에 있는 모든 스레드의 상태를 표시하며 스레드 교착 상태와 경합을 명시적으로 나타냅니다.

병목현상을 찾으려면 다음을 수행하십시오.

  1. 프로파일링 모니터에서 프로파일링 자원을 마우스 오른쪽 단추로 누른 후 열기 도구 > 스레드 보기를 선택하십시오. 스레드 보기가 열립니다. 다음과 같이 표시됩니다.

    다음 텍스트에 설명된 대로 이 프로파일링 실행의 결과를 보여주는 스레드 보기의 스크린샷

    스레드 사이의 세로 화살표가 관련된 스레드입니다. 화살표는 한 스레드(화살표가 시작되는 스레드)가 다른 스레드(화살표가 가리키는 스레드)에서 잠금을 해제할 때까지 대기한다는 것을 나타냅니다.

  2. 화살표가 너무 가까워서 쉽게 구별할 수 없습니다. 더 잘 확인하려면 압축된 시간 배율로 전환 단추 를 눌러 기본 선형 시간 배율에서 가중 시간 배율로 전환하십시오. 압축된 시간 배율은 중요한 스레드 조치가 발생하지 않는 시간 세그먼트를 압축합니다. 디스플레이가 다음과 같이 변경됩니다.

    시간 배율이 '압축'으로 변경된 후 화살표의 분포를 보여주는 스크린샷

  3. 스레드 보기를 다음과 같이 해석하십시오.
    1. 프로그램이 시작되는 즉시 네 개의 philo* 스레드가 작성됩니다. 모두 실행된 후 일시 정지했다가 다시 잠깐 실행됩니다. 프로그램이 종료되면 모두 잠금 대기 중 상태로 변경됩니다.
      참고: 일부 시스템에서는 고유한 "일시 정지" 상태를 표시할 수 없습니다.
    2. philo* 스레드는 잠금 대기 중인 다른 philo* 스레드의 잠금을 대기 중입니다. 이러한 경우에는 교착 상태가 되어 계속할 수 없습니다.
      참고: 잠금 대기 중인 스레드 세그먼트 위에 커서를 일시정지하여 잠금 요청에 대한 특정 정보를 볼 수 있습니다. 이 정보는 잠금의 이름을 지정하는 툴팁을 표시하고 잠금 보류 중인 스레드("잠금 스레드")를 식별합니다.
  4. 특성 보기에서 스레드 세그먼트에 대한 자세한 정보를 볼 수 있습니다. 보기를 표시하려면 창 > 보기 표시 > 특성을 선택하십시오. 스레드 세그먼트를 선택하여 특성을 표시하십시오.

이제 교착 상태가 발생한 이유를 파악했습니다. 연습 1.4: 스레드 병목현상 해결을 시작할 준비가 되었습니다.

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