db2top の概要と特徴

db2top は Linux/UNIX 環境向けの DB2 リアルタイム監視ツールです。Unix の top コマンドと同様のインタラクティブな UI で、接続セッション・SQL・バッファプール・テーブルスペース・ロックなどを一定間隔で更新しながら表示します。

主な特徴

  • インタラクティブな UI でリアルタイムに状態を把握
  • 画面をキー操作で切り替えて各種統計を確認
  • デルタモード(前回表示との差分)で変化量を把握できる
  • 問題が発生中の状況を即時に視覚化するのに最適
  • Linux/UNIX 環境のみ対応(Windows 環境では使用不可)

実行権限

SYSADM / SYSCTRL / SYSMAINT / SYSMON いずれかの権限が必要です。

制限事項

db2top はリアルタイムのスナップショットのみを表示します。履歴データの保存・差分分析には対応していません。過去の情報を分析したい場合は MON_GET_* 関数(PART 04)を使用してください。

起動方法

基本起動

# データベース名を指定して起動
db2top -d SAMPLE

# ユーザ・パスワードを指定する場合
db2top -d SAMPLE -u db2admin -p password

# 更新間隔を秒で指定(デフォルト 2 秒)
db2top -d SAMPLE -i 5

# バッチモード(非インタラクティブ)でファイルに出力
db2top -d SAMPLE -b D > /tmp/db2top_$(date +%Y%m%d_%H%M%S).txt

バッチモードのオプション

-b オプションに続けて画面タイプ文字を指定します。

# 主なバッチモードタイプ
# D = Database summary
# A = Application (Sessions)
# S = Dynamic SQL
# B = Buffer pools
# T = Tablespaces
# L = Locks

db2top -d SAMPLE -b A -c 5 > /tmp/sessions.txt  # 5回分取得して終了

キー操作一覧

キー 画面・操作 Oracle AWR 対応セクション
d Database summary 画面 Report Summary / Load Profile
a Applications(接続セッション)画面 Report Summary(接続情報)
s Dynamic SQL 画面 SQL Statistics(Top SQL)
b Buffer pools 画面 Buffer Pool Statistics
t Tablespaces 画面 IO Stats(Tablespace)
l Locks 画面 Wait Statistics / Enqueue Activity
u Utilities(ユーティリティ実行状況) (DB2 固有)
q db2top を終了
+ / - 更新間隔を増加 / 減少
z デルタモード ON/OFF(差分表示の切り替え) AWR スナップショット差分に相当
f ソートキーの切り替え
h ヘルプ画面

各画面のセクション定義

① Database Summary 画面(d キー)

Oracle AWR の Report Summary に相当します。データベース全体の主要指標をリアルタイムで確認できます。

表示項目 何を表すか 読み方・異常値の目安
Applications 現在の接続アプリケーション数 MAXAPPLS に近い場合は接続制限に注意
Sort Overflows ソートオーバーフロー回数(デルタ) 増加傾向は SORTHEAP 不足のサイン
Deadlocks デッドロック発生数(デルタ) 1 以上で即時調査。Event Monitor で詳細確認
Lock Escalations ロックエスカレーション回数(デルタ) 頻発時は LOCKLIST / MAXLOCKS を増加
Buffer Pool Hit Ratio バッファプール全体のヒット率 90% 未満は要注意。バッファプールサイズを確認

② Applications 画面(a キー)

Oracle AWR の Report Summary(セッション情報)に相当します。接続中のセッションの状態を一覧で確認できます。

表示項目 何を表すか 読み方・異常値の目安
Appl Handle アプリケーション識別子 ロック調査時の保有者・待機者の識別に使用
Appl Status アプリケーションの状態 Lock-wait が続く場合は競合発生中
Time 現在の状態になってからの経過時間 数分以上の Lock-wait は要調査
Rows Read 読み取り行数(デルタ or 累積) 突出して多いセッションは非効率な SQL を実行している可能性
Agent CPU このセッションの CPU 使用量 高い値が続くセッションは CPU バウンドな処理を疑う

③ Dynamic SQL 画面(s キー)

Oracle AWR の SQL Statistics(Top SQL)に相当します。キャッシュ内の SQL を各種指標でソートして確認できます。

表示項目 何を表すか 読み方・異常値の目安
Executions 実行回数 f キーでソートキー変更。最も実行回数の多い SQL を確認
Exec Time 累積実行時間 実行時間でソートするとスロークエリを特定できる
Avg Exec Time 平均実行時間 1 秒を超える SQL は実行計画を確認する
Rows Read 読み取り行数 高い値は全表スキャン・非効率なインデックス利用を示す場合がある
SQL Text SQL テキスト(先頭部分) Enter キーで完全テキストを表示(バージョンにより異なる)

④ Buffer Pools 画面(b キー)

Oracle AWR の Buffer Pool Statistics に相当します。バッファプールのリアルタイムな状態を確認できます。

表示項目 何を表すか 読み方・異常値の目安
BP Name バッファプール名 複数 BP 構成の場合は個別に確認
Hit Ratio バッファプールヒット率(%) 90% 未満は要注意。95% 以上が理想
Logical Reads 論理読み込み回数(デルタ) 増加傾向はクエリ量の増大を示す
Physical Reads 物理読み込み回数(デルタ) 急増はバッファ不足・大量スキャンのサイン

⑤ Locks 画面(l キー)

Oracle AWR の Wait Statistics / Enqueue Activity に相当します。現在のロック状況をリアルタイムで確認できます。

表示項目 何を表すか 読み方・異常値の目安
Lock Hold ロックを保有しているアプリケーション数 長時間の保有はコミット漏れ・バッチ処理の滞留を示す場合がある
Lock Wait ロック待機中のアプリケーション数 1 以上で競合発生中。保有者・待機者の Application Handle を確認
Lock Type ロックの種類(S / X / IS / IX 等) X ロックの長時間保有と待機は要注意
Wait Time ロック待機時間 長時間待機が続く場合は保有者の処理完了を待つか強制切断を検討

注意事項

  • Linux/UNIX 専用: db2top は Linux/UNIX 環境でのみ動作します。Windows 環境では使用できません。Windows で同等の情報を取得するには db2pd や MON_GET_* 関数を使用してください。
  • リアルタイムのみ: db2top はリアルタイム表示のみです。過去のパフォーマンス問題の調査には使用できません。過去データの分析には MON_GET_* 関数でスナップショットを保存する方法(PART 04)を使用してください。
  • デルタモード: z キーでデルタモードに切り替えると、前回更新間隔との差分を表示します。問題発生中の変化量をリアルタイムで追うのに有効です。
  • 端末サイズ: db2top は端末(ターミナル)のサイズに依存します。十分な幅(最低 180 文字程度)を確保してください。
  • DB2 バージョン: db2top は DB2 V9.1 以降で利用可能ですが、画面構成やオプションはバージョンにより異なります。