メインコンテンツまでスキップ

Thread Dump

Thread Dump画面では、WASのスレッドダンプを収集し、収集したダンプを選択してスレッド別の状態とスタックトレースを確認できます。Thread dump Analyzerタブでは、スレッド状態の分布、CPU Hotspot分析、診断レポートを通じて応答遅延・ロック競合・スレッドプールの問題を素早く把握できます。

左側メニューでアプリケーション > 性能分析 > Thread Dumpを選択してください。

Thread Dump 全体画面

画面は上部の照会条件領域と、その下の3つのパネル(WAS List、Thread dump List、Selected Thread dump List)で構成されます。パネル下部にはThread dump DetailとThread 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 タブ

タブは3つの領域で構成されます。

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と併せて参照すると、問題となっているスレッドとコードパスを効果的に特定できます。