본문으로 건너뛰기

Thread Dump

Thread Dump 화면에서는 WAS의 스레드 덤프를 수집하고, 수집된 덤프를 선택해 스레드별 상태와 스택 트레이스를 확인할 수 있습니다. Thread dump Analyzer 탭에서는 스레드 상태 분포, CPU Hotspot 분석, 진단 리포트를 통해 응답 지연·락 경합·스레드 풀 문제를 빠르게 파악할 수 있습니다.

좌측 메뉴에서 애플리케이션 > 성능 분석 > Thread Dump를 선택하세요.

Thread Dump 전체 화면

화면은 상단 조회 조건 영역과, 그 아래 세 개의 패널(WAS List, Thread dump List, Selected Thread dump List)로 구성됩니다. 패널 하단에는 Thread dump DetailThread dump Analyzer 탭이 있습니다.

조회 조건 설정하기

화면 상단의 조건 영역에서 조회 범위를 설정합니다.

조회 조건 영역

  • Period: 스레드 덤프를 조회할 기간을 설정합니다. 최소 1일에서 최대 30일까지 설정할 수 있으며, 날짜 단위로만 지정됩니다.
  • Group: 조회할 WAS 그룹을 선택합니다.
  • List: 그룹 내에서 조회할 WAS 인스턴스를 선택합니다. All을 선택하면 그룹 전체 인스턴스를 조회합니다.

설정을 완료하면 [Search] 버튼을 클릭해 조회합니다.

Thread dump List에서 덤프 선택하기

조회 결과는 화면 왼쪽의 WAS List와 가운데의 Thread dump List에 표시됩니다.

Thread dump List

  • WAS List: 조회 기간 내 스레드 덤프가 수집된 WAS 인스턴스 목록입니다. No, WAS 이름, Dump Count가 표시됩니다. WAS를 선택하면 해당 WAS의 스레드 덤프만 Thread dump List에 표시됩니다.
  • Thread dump List: 선택한 WAS에서 수집된 스레드 덤프 목록입니다. Time 컬럼에 수집 시각이 표시됩니다.

Thread dump List 우측 상단의 [Get] 버튼을 클릭하면 현재 시점의 스레드 덤프를 즉시 수집합니다.

주의

[Get] 버튼으로 스레드 덤프를 수집하면 JVM이 일시적으로 멈출 수 있으며, 서비스 지연이 발생할 수 있습니다.

분석할 덤프 선택하고 적용하기

Thread dump Detail 탭과 Thread dump Analyzer 탭에서 분석할 덤프는 Selected Thread dump List에 등록해야 합니다. 최대 5개까지 선택할 수 있습니다.

체크 후 적용 전 상태

  1. Thread dump List에서 분석할 스레드 덤프의 체크박스를 선택합니다.
  2. 가운데 > 화살표 버튼을 클릭해 선택한 항목을 Selected Thread dump List로 이동합니다.

Selected Thread dump List

  1. Selected Thread dump List에서 적용할 항목을 확인한 뒤 [Apply Selected Items] 버튼을 클릭합니다.

적용이 완료되면 하단 탭에 선택된 덤프의 분석 결과가 표시됩니다.

Thread dump Detail 탭

Thread dump Detail 탭에서는 선택한 스레드 덤프의 모든 스레드를 목록으로 확인할 수 있습니다.

Thread dump Detail 탭

목록 상단의 필터 입력창에서 스레드 이름으로 검색할 수 있습니다.

그리드 컬럼 중 특이사항이 있는 항목은 다음과 같습니다.

  • Status: 스레드 상태를 배지로 표시합니다. Runnable, Waiting, Blocked, Timed Waiting 등의 상태가 색상으로 구분됩니다.
  • CPU Time (sec): 스레드가 사용한 CPU 시간(초)입니다.

각 행 왼쪽의 > 버튼을 클릭하면 해당 스레드의 상세 정보가 행 아래에 펼쳐집니다.

스레드 상세 정보 확인하기

행을 펼치면 Stack 섹션과 Stack Trace 섹션이 표시됩니다.

  • Stack 섹션: Thread ID, Lock Owner ID, Wait Count, Block Count, Waiting Time, Block Count, Waiting Time, Thread CPU Time, Status, Block Time, Thread Name, Lock Name, Lock Owner Name 등 해당 스레드의 상세 속성을 나열합니다.
  • Stack Trace 섹션: 스레드의 스택 트레이스 전문이 표시됩니다. [Full Text] 버튼을 클릭하면 전체 텍스트를 볼 수 있고, 우측 복사 버튼으로 클립보드에 복사할 수 있습니다.

Thread dump Analyzer 탭

Thread dump Analyzer 탭에서는 선택한 스레드 덤프를 자동 분석한 결과를 확인할 수 있습니다.

Thread dump Analyzer 탭

탭은 세 개 영역으로 구성됩니다.

Thread Status Distribution / System Health

화면 상단에는 스레드 상태 분포와 시스템 건강도가 나란히 표시됩니다.

Thread Status Distribution 영역에는 전체 스레드 수와 상태별 수량이 표시됩니다.

  • Total: 전체 스레드 수 (검정)
  • Runnable: 실행 중인 스레드 수 (파랑)
  • Waiting: 대기 중인 스레드 수 (노랑)
  • Blocked: 블록된 스레드 수 (빨강)

System Health 영역에는 종합 점수(게이지)와 6개의 위험 지표가 표시됩니다.

  • Deadlock Occurrence: 데드락 발생 횟수
  • Lock Contention Risk: BLOCKED 비율(%)
  • Thread Pool Risk: WAITING 비율(%)
  • Resource Usage Risk (DB Thread): DB 스레드 리소스 사용 위험도(%)
  • Resource Usage Risk (IO Thread): IO 스레드 리소스 사용 위험도(%)
  • Responsiveness Risk: RUNNABLE 비율(%)

건강도 점수는 80점 이상이면 초록, 60점 이상이면 파랑, 40점 이상이면 노랑, 40점 미만이면 빨강으로 표시됩니다.

CPU Hotspot Analysis

CPU 사용 시간이 500ms 이상인 스레드를 Hotspot으로 식별하여 순위별로 표시합니다.

  • Rank: CPU 사용 시간 기준 순위
  • Thread Name: 스레드 이름
  • Status: 스레드 상태 배지
  • CPU(ms): CPU 사용 시간(밀리초)
  • Pattern: CPU 사용 패턴을 색상 배지로 구분합니다.
    • PERSISTENT — 빨강: 지속적으로 CPU를 많이 사용하는 스레드
    • BURST — 노랑: 짧은 시간 폭발적으로 CPU를 사용하는 스레드
    • INTERMITTENT — 파랑: 간헐적으로 CPU를 사용하는 스레드
    • LOW — 초록: CPU 사용량이 낮은 스레드
  • Recommendation: 해당 스레드에 대한 권고 사항

Diagnostic Report

화면 하단의 Diagnostic Report에서는 분석된 스레드 덤프를 기반으로 문제를 진단하고 권고 사항을 제공합니다.

Diagnostic Report

  • Summary: 탐지된 주요 문제를 요약합니다.
  • Impact Assessment: 문제가 서비스에 미치는 영향도를 평가합니다.
  • Detected Issues: 탐지된 개별 이슈(예: High Lock Contention, Suspected Thread Pool Leak 등)를 나열하며, 각 이슈별로 영향받는 스레드 수와 사용자 영향을 함께 표시합니다.
  • Detailed Description (Root Causes): 각 이슈의 근본 원인과 발생 메커니즘을 설명합니다.

Diagnostic Report는 락 경합·스레드 풀 누수·응답 지연 등 복잡한 장애 원인을 빠르게 좁히는 데 유용합니다. CPU Hotspot Analysis와 함께 참조하면 문제가 되는 스레드와 코드 경로를 효과적으로 특정할 수 있습니다.