...

7.メトリック ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 データベース・モニタリング

by user

on
Category: Documents
155

views

Report

Comments

Transcript

7.メトリック ブランク・ページです。 ©日本IBMシステムズ・エンジニアリング(株) Information Management部 データベース・モニタリング
V9.7 New
7.メトリック
お断り:当資料は、DB2 for Linux, UNIX and Windows V9.7をベースに作成されています。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ブランク・ページです。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
2
DB2 for LUW 運用管理ガイド
データベース・モニタリング
内容:7.メトリック (1/2)
V9.7 New
7-1.メトリックとは
メトリックとデータベース構成パラメータ
イベントとデータベース構成パラメータ
新しいモニタリング表関数
7-2.新しいイベント・モニター
ロック・イベント・モニター
シンタックス
ロック・イベント・モニターの考慮点
作業単位イベント・モニター
シンタックス
作業単位イベント・モニターの考慮点
未フォーマット・イベント表に関する考慮点
未フォーマット・イベント表へのアクセス方法
表関数
db2evmonfmt
(参考)ロック/作業単位イベント・モニター作成例
(参考)ロック/差秒単位イベント・モニター出力例
©日本IBMシステムズ・エンジニアリング(株) Information Management部
3
DB2 for LUW 運用管理ガイド
データベース・モニタリング
内容:7.メトリック (2/2) (続き)
7-3.モニタリング機能とWLMの連携
Service Class/Workload単位でのメトリック取得
Workload単位のイベント・モニター取得
取得範囲を指定可能なイベント・タイプ
Workload単位のイベント・モニター設定
(参考)CREATE WORKLOADステートメント
Workload単位のイベント・モニター 設定例
WLM表関数の追加
WLM表関数の使用例
考慮点
©日本IBMシステムズ・エンジニアリング(株) Information Management部
4
V9.7 New
DB2 for LUW 運用管理ガイド
データベース・モニタリング
7-1.メトリックとは (1/2)
新しいシステム・モニタリングのインフラ
メモリに展開された負荷の少ない仕組み
既存のスナップショットやモニター・スイッチとは別の仕組み
取得される情報によって3つレベル・メトリックがある
システム
システム・
・レベル (要求メトリック
要求メトリック)
メトリック)
システムで実行中のすべての作業に関する詳細を提供
アクティビティー・
アクティビティー・レベル (アクティビティー・
アクティビティー・メトリック)
メトリック)
システムで実行中のアクティビティー (特定の処理のサブセット) に関する詳細を
提供
データ・
データ・オブジェクト・
オブジェクト・レベル (データ・
データ・オブジェクト・
オブジェクト・メトリック)
メトリック)
データベース・システムによる特定のデータベース・オブジェクト内での処理に関
する詳細を提供
所要時間モニター・エレメントが拡張
DB内で、要求の処理に費やされた合計時間および合計待ち時間
DB外部で費やされた時間の計算 (client_idle_wait_time)
©日本IBMシステムズ・エンジニアリング(株) Information Management部
5
DB2 for LUW 運用管理ガイド
データベース・モニタリング
7-1.メトリックとは (2/2)
モニター情報収集の制御
DB構成パラメータ
MON_REQ_METRIC、MON_ACT_METRIC、MON_OBJ_METRIC
MON_DEADLOCK、 MON_LOCKWAIT、MON_UOW_DATA etc…
モニター情報の収集
新しい表関数へのSQLステートメント実行
MON_GET_TABLE、MON_GET_WORKLOAD、etc…
新しいイベント・モニター
ロック・イベント・モニター、作業単位イベント・モニター
WLMとも連携され、新しいオプションが追加
COLLECT UNIT OF WORK、COLLECT LOCKTIMEOUT DATA etc
詳細は、「7-3.モニタリング機能とWLMの連携」を参照
©日本IBMシステムズ・エンジニアリング(株) Information Management部
6
DB2 for LUW 運用管理ガイド
データベース・モニタリング
メトリックとデータベース構成パラメータ (1/2)
要求メトリック - MON_REQ_METRICS
DBへの要求に関するメトリックを収集
デフォルト BASE (NONE、EXTENDED)
メトリック情報収集方法
MON_GET_UNIT_OF_WORK
MON_GET_UNIT_OF_WORK_DETAILS
MON_GET_CONNECTION
MON_GET_CONNECTION_DETAILS
MON_GET_SERVICE_SUBCLASS
MON_GET_SERVICE_SUBCLASS_DETAILS
MON_GET_WORKLOAD
MON_GET_WORKLOAD_DETAILS
統計イベントモニター
作業単位イベントモニター
©日本IBMシステムズ・エンジニアリング(株) Information Management部
7
DB2 for LUW 運用管理ガイド
データベース・モニタリング
メトリックとデータベース構成パラメータ (2/2)
アクティビティー・メトリック - MON_ACT_METRICS
DBのアクティビティーに関するメトリックを収集
デフォルト BASE (NONE、EXTENDED)
メトリック情報出力方法
MON_GET_ACTIVITY_DETAILS
MON_GET_PKG_CACHE_STMT
アクティビティー・イベントモニター
オブジェクト・メトリック - MON_OBJ_METRICS
データベース・オブジェクトに関するメトリックを収集
デフォルト BASE (NONE、EXTENDED)
メトリック情報出力方法
MON_GET_BUFFERPOOL
MON_GET_TABLESPACE
MON_GET_CONTAINER
©日本IBMシステムズ・エンジニアリング(株) Information Management部
8
DB2 for LUW 運用管理ガイド
データベース・モニタリング
イベントとデータベース構成パラメータ (1/2)
ロック・イベント
MON_DEADLOCK
デフォルト WITHOUT_HISTORY
– NONE,WITHOUT_HIST,WITH_HIST,HIST_AND_VALUES
データベース・レベルで、デッドロック・イベントの生成を制御する
MON_LOCKTIMEOUT
デフォルト NONE
– NONE,WITHOUT_HIST,WITH_HIST,HIST_AND_VALUES
データベース・レベルで、ロック・タイムアウト・イベントの生成を制御する
すべての DB2 ワークロード定義に影響を及ぼす
MON_LOCKWAIT
デフォルト NONE
– NONE,WITHOUT_HIST,WITH_HISTORY,HIST_AND_VALUES
データベース・レベルで、ロック待機イベントの生成を制御する
MON_LW_THRESH
デフォルト 5000000
– 1000 ... MAX_INT
MON_LOCKWAIT のイベントが生成される前にロック待機に費やされる時間
(マイクロ秒単位で指定)
©日本IBMシステムズ・エンジニアリング(株) Information Management部
9
DB2 for LUW 運用管理ガイド
データベース・モニタリング
イベントとデータベース構成パラメータ (1/2)
作業単位イベント
MON_UOW_DATA
デフォルト NONE
– NONE、BASE
データベース・レベルで、作業単位イベントの生成を制御する
すべての DB2 ワークロード定義に影響を及ぼす
©日本IBMシステムズ・エンジニアリング(株) Information Management部
10
DB2 for LUW 運用管理ガイド
データベース・モニタリング
新しいモニタリング表関数 (1/3)
システム・レベルの情報を収集
データ・サーバーによるアプリケーション要求の実行状況をモニタリング
DB全体または、アプリケーション要求ごとに取得可能
全ての情報を収集するためには要求メトリックを設定
MON_REQ_METRICS
MON_*_DETAILSはXML表関数
MON_REQ_METRICS=BASE or EXTENDED
モニター表関数
モニター表関数
内容
MON_GET_CONNECTIONS
MON_GET_CONNECTIONS_DETAILS
接続単位のメトリック情報
MON_GET_SERVICE_SUBCLASS
MON_GET_SERVICE_SUBCLASS_DETAILS
サービス・サブクラス単位のメトリック情報
MON_GET_UNIT_OF_WORK
MON_GET_UNIT_OF_WORK_DETAILS
作業単位のメトリック情報
MON_GET_WORKLOAD
MON_GET_WORKLOAD_DETAILS
ワークロード単位のメトリック情報
©日本IBMシステムズ・エンジニアリング(株) Information Management部
11
DB2 for LUW 運用管理ガイド
データベース・モニタリング
新しいモニタリング表関数 (2/3)
アクティビティー・レベルの情報を収集
データ・サーバーでのアクティビティーをモニタリング
実行時間が長いアプリケーションについて、原因が所要時間が長いためか、
ウエイト時間(ロックやIO等)が長いためかを調査するのに有効
アクティビティー・メトリックを設定することで収集される
MON_ACT_METRICS
MON_*_DETAILSはXML表関数
MON_ACT_METRICS=BASE or EXTENDED
モニター表関数
モニター表関数
内容
MON_GET_ACTIVITY_DETAILS
実行中のアクティビティのメトリック情報
MON_GET_PKG_CACHE_STMT
SQLステートメント単位のメトリック情報
©日本IBMシステムズ・エンジニアリング(株) Information Management部
12
DB2 for LUW 運用管理ガイド
データベース・モニタリング
新しいモニタリング表関数 (3/3)
データ・オブジェクト・レベルの情報を収集
データ・オブジェクトに対して実行された操作に関する情報を取得
※1 はオブジェクト・メトリックの設定にかかわらず常に収集される
※2 はオブジェクト・メトリックがNONEの場合、情報は収集されない
MON_OBJ_METRICS
MON_OBJ_METRICS=BASE or EXTENDED
モニター表関数
モニター表関数
内容
MON_GET_BUFFERPOOL (※2)
バッファープールの使用状況
MON_GET_CONTAINER (※2)
コンテナーの使用状況
MON_GET_INDEX (※1)
索引の使用状況
MON_GET_TABLE (※1)
表の使用状況
MON_GET_TABLESPACE (※2)
表スペースの使用状況
13
©日本IBMシステムズ・エンジニアリング(株) Information Management部
DB2 for LUW 運用管理ガイド
データベース・モニタリング
出力例
システム・レベルの接続メトリックのデータ収集例
実行時間が長いアプリケーションについて、原因が所要時間が長いためかまたは
ウエイト時間(ロックやIO等)が長いためか調査するために、
MON_GET_CONNECTION表関数を使用します。
SQL
SELECT APPLICATION_HANDLE,
POOL_READ_TIME,POOL_WRITE_TIME,DIRECT_READ_TIME,DIRECT_WRITE_TIME,
IPC_RECV_WAIT_TIME,IPC_SEND_WAIT_TIME,TCPIP_RECV_WAIT_TIME,TCPIP_SEND_WAIT_TIME,
LOCK_WAIT_TIME,LOG_BUFFER_WAIT_TIME,LOG_DISK_WAIT_TIME,TOTAL_APP_RQST_TIME, TOTAL_RQST_TIME
FROM TABLE(MON_GET_CONNECTION(cast(NULL as bigint), -2)) AS t
実行結果
APPLICATION_HANDLE
POOL_READ_TIME
POOL_WRITE_TIME
DIRECT_READ_TIME
DIRECT_WRITE_TIME
-------------------- -------------------- -------------------- -------------------- -------------------32
IPC_RECV_WAIT_TIME
49734
IPC_SEND_WAIT_TIME
1264
2
0
TCPIP_RECV_WAIT_TIME TCPIP_SEND_WAIT_TIME LOCK_WAIT_TIME
-------------------- -------------------- -------------------- -------------------- -------------------0
0
LOG_BUFFER_WAIT_TIME LOG_DISK_WAIT_TIME
0
TOTAL_APP_RQST_TIME
0
TOTAL_RQST_TIME
-------------------- -------------------- -------------------- -------------------78708
210
151247
1 record(s) selected.
ログ・バッファーへの書き込みで待ち状態が発生してい
ることがわかる。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
14
151247
0
DB2 for LUW 運用管理ガイド
データベース・モニタリング
出力例
アクティビティー・レベルから収集例
実行時間が長い照会アプリケーションについて、原因が所要時間が長いためか、
またはウエイト時間(ロックやIO等)が長いためか調査するために、
MON_GET_ACTIVITY_DETAILS表関数を使用します。
まず、活動状況や開始時間をリストするために、
WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIESを調査の開始時に使用します。
この時点で、アクティビティーの詳細を確認したいAPPLICATION_HANDLE、
ACTIVITY_ID、UOW_IDを記録します。
select application_handle,
activity_id,
uow_id,
local_start_time
from table (wlm_get_workload_occurrence_activities(cast(NULL as bigint),-1)) as t
APPLICATION_HANDLE ACTIVITY_ID UOW_ID
LOCAL_START_TIME
-------------------- ----------- ----------- -------------------------6025
1
5 2009-06-30-15.40.21.062359
©日本IBMシステムズ・エンジニアリング(株) Information Management部
15
DB2 for LUW 運用管理ガイド
データベース・モニタリング
出力例
アクティビティー・レベルから収集例 つづき
オカレンス・アクティビティーで確認した実行時間が長い照会アプリケーションについて、
APPLICATION_HANDLE、ACTIVITY_ID、UOW_IDを入力し、 MON_GET_ACTIVITY_DETAILS
表関数を使用して、原因を調査します。所要時間が長いかまたはウエイト時間(ロックやIO
等)が長いかを調査します
SELECT actmetrics.application_handle,
actmetrics.activity_id,
actmetrics.uow_id,
varchar(actmetrics.stmt_text, 50) as stmt_text,
actmetrics.total_act_time,
actmetrics.total_act_wait_time,
CASE WHEN actmetrics.total_act_time > 0
THEN DEC((
オカレンス・アクティビティで確認した値を使用します。
FLOAT(actmetrics.total_act_wait_time) /
FLOAT(actmetrics.total_act_time)) * 100, 5, 2)
ELSE NULL
END AS PERCENTAGE_WAIT_TIME
FROM TABLE(MON_GET_ACTIVITY_DETAILS(6025, 6 , 1, -2)) AS ACTDETAILS,
XMLTABLE (XMLNAMESPACES( DEFAULT 'http://www.ibm.com/xmlns/prod/db2/mon'),
'$actmetrics/db2_activity_details'
PASSING XMLPARSE(DOCUMENT ACTDETAILS.DETAILS) as "actmetrics"
COLUMNS "APPLICATION_HANDLE" INTEGER PATH 'application_handle',
"ACTIVITY_ID" INTEGER PATH 'activity_id',
"UOW_ID" INTEGER PATH 'uow_id',
"STMT_TEXT" VARCHAR(1024) PATH 'stmt_text',
"TOTAL_ACT_TIME" INTEGER PATH 'activity_metrics/total_act_time',
"TOTAL_ACT_WAIT_TIME" INTEGER PATH 'activity_metrics/total_act_wait_time'
) AS ACTMETRICS;
APPLICATION_HANDLE ACTIVITY_ID UOW_ID
STMT_TEXT
TOTAL_ACT_TIME TOTAL_ACT_WAIT_TIME PERCENTAGE_WAIT_TIME
------------------ ----------- ----------- -------------------------------- -------------- ------------------- -------------------6025
1
6 select * from syscat.tables
26
0
0.00
1 record(s) selected.
©日本IBMシステムズ・エンジニアリング(株) Information Management部
16
DB2 for LUW 運用管理ガイド
データベース・モニタリング
出力例
データ・オブジェクトからのデータ収集例
索引の使用状況、表スキャンが発生している表の情報を収集する
MON_GET_TABLE、MON_GET_INDEX表関数を使用
特定の表のみの情報を収集可能
MON_GET_TABLE関数の出力結果
TABSCHEMA TABNAME
TOTAL_TABLE_SCANS
-------------------- -------------------- -------------------------------MONV97
TEST
74
SELECT varchar(tabschema,20) as tabschema,
varchar(tabname,20) as tabname, sum(table_scans) as
total_table_scans FROM TABLE(MON_GET_TABLE('SYSCAT','',-2))
AS t GROUP BY tabschema, tabname ORDER BY total_table_scans
DESC
索引は使われているの?
索引は使われているの?
もしかして表スキャンに
もしかして表スキャンに
なっているのでは・・
なっているのでは・・
MON_GET_INDEX関数の出力結果
INDSCHEMA INDNAME INDEX_SCANS INDEX_ONLY_SCANS
------------------ -------------- -------------------- -------------------------------MONV97
IND2
10
10
MONV97
IND1
3
0
MONV97
IND3
1
0
SELECT VARCHAR(S.INDSCHEMA, 10) AS INDSCHEMA, VARCHAR(S.INDNAME, 10) AS
INDNAME, T.INDEX_SCANS, T.INDEX_ONLY_SCANS FROM
TABLE(MON_GET_INDEX('YANAV97','', -2)) as T, SYSCAT.INDEXES AS S WHERE
T.TABSCHEMA = S.TABSCHEMA AND T.TABNAME = S.TABNAME AND T.IID = S.IID ORDER BY
INDEX_SCANS DESC
©日本IBMシステムズ・エンジニアリング(株) Information Management部
17
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ブランク・ページです。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
18
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)簡易パフォーマンステスト
メトリックによるSELECT時の簡易テストのパフォーマンス結果です
TPCH95 Select
DB2 9.5のデフォルトのモニターリング設定
デフォルトのデータベース・モニター・スイッチ
バッファー・プール
ロック
ソート
ステートメント
表
タイム・スタンプ
作業単位
インスタンスとデータベースの状況をモニター
(DFT_MON_BUFPOOL) =
(DFT_MON_LOCK) =
(DFT_MON_SORT) =
(DFT_MON_STMT) =
(DFT_MON_TABLE) =
(DFT_MON_TIMESTAMP) =
(DFT_MON_UOW) =
(HEALTH_MON)
TPCH97 Select Metrics NONE
OFF
OFF
OFF
OFF
OFF
ON
OFF
= ON
DB2 9.7でデフォルトのモニタースイッチで、メトリックをNONEに設定
モニター収集設定
要求メトリック
(MON_REQ_METRICS) = NONE
アクティビティー・メトリック
(MON_ACT_METRICS) = NONE
オブジェクト・メトリック
(MON_OBJ_METRICS) = NONE
作業単位イベント
(MON_UOW_DATA) = NONE
ロック・タイムアウト・イベント
(MON_LOCKTIMEOUT) = NONE
デッドロック・イベント
(MON_DEADLOCK) = WITHOUT_HIST
ロック待機イベント
(MON_LOCKWAIT) = NONE
ロック待機イベントのしきい値
(MON_LW_THRESH) = 5000000
TPCH97 Select Metrics BASE
DB2 9.7でデフォルトのモニタースイッチで、メトリックスをBASEに設定
モニター収集設定
要求メトリック
(MON_REQ_METRICS) = BASE
アクティビティー・メトリック
(MON_ACT_METRICS) = BASE
オブジェクト・メトリック
(MON_OBJ_METRICS) = BASE
作業単位イベント
(MON_UOW_DATA) = NONE
ロック・タイムアウト・イベント
(MON_LOCKTIMEOUT) = NONE
デッドロック・イベント
(MON_DEADLOCK) = WITHOUT_HIST
ロック待機イベント
(MON_LOCKWAIT) = NONE
ロック待機イベントのしきい値
(MON_LW_THRESH) = 5000000
19
©日本IBMシステムズ・エンジニアリング(株) Information Management部
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)簡易パフォーマンステスト
D F T_M ON OF F
80000
70000
60000
TPS
50000
40000
30000
20000
TPC H 95 Select
TPC H 97 Select M etrics N one
TPC H 97 Select M etrics B as e
10000
300
250
200
150
100
50
0
0
Total U s er
ユーザー数が100を超えるとパフォーマンスの差が現れはじめます
DB2 9.7 ではパフォーマンスが改善されていることから DB2 9.5 よりもTPSが良いことがわかります。
メトリックNONEとBASEでは、NONEの方がTPSが良いですが、いずれの場合もDB2 9.5よりもTPSが良いことがわかります。
メトリックBASEでも、ユーザー数が100未満の環境であれば、さほど影響の違いが無いことがわかります。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
20
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)簡易パフォーマンステスト
モニター・スイッチとメトリックのパフォーマンス結果です
DFTMON
デフォルトのデータベース・モニター・スイッチ
バッファー・プール
ロック
ソート
ステートメント
表
タイム・スタンプ
作業単位
インスタンスとデータベースの状況をモニター
(DFT_MON_BUFPOOL)
(DFT_MON_LOCK)
(DFT_MON_SORT)
(DFT_MON_STMT)
(DFT_MON_TABLE)
(DFT_MON_TIMESTAMP)
(DFT_MON_UOW)
(HEALTH_MON)
=
=
=
=
=
=
=
=
ON
ON
ON
OFF
ON
ON
ON
ON
デフォルトのデータベース・モニター・スイッチ
バッファー・プール
ロック
ソート
ステートメント
表
タイム・スタンプ
作業単位
インスタンスとデータベースの状況をモニター
(DFT_MON_BUFPOOL)
(DFT_MON_LOCK)
(DFT_MON_SORT)
(DFT_MON_STMT)
(DFT_MON_TABLE)
(DFT_MON_TIMESTAMP)
(DFT_MON_UOW)
(HEALTH_MON)
=
=
=
=
=
=
=
=
ON
ON
ON
OFF
OFF
ON
OFF
ON
DFTMON2
21
©日本IBMシステムズ・エンジニアリング(株) Information Management部
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)簡易パフォーマンステスト
DFTMON ON
80000
70000
60000
TPS
50000
40000
30000
TPCH95 select DFTMON
20000
TPCH97 select DFTMON Metrics Base
10000
TPCH97 select DFTMON Metrics None
TPCH97 select DFTMON2 Metrics Base
300
250
200
150
100
50
0
0
Total User
ユーザー数が100を超えるとパフォーマンスの差が現れはじめます
モニタリング・スイッチをONにするとDB2 V97でメトリックがNONEでも、DB2 9.5 の方がTPSが良いことがわかります。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
22
DB2 for LUW 運用管理ガイド
データベース・モニタリング
7-2.新しいイベント
しいイベント・
イベント・モニター
V9.7 New
ロック・イベント・モニター
従来より詳細にロックに関する情報を収集
作業単位イベント・モニター
トランザクションの完了ごとに情報を収集
新イベント・モニターは“未フォーマット・イベント表”に格
納される
バイナリー形式
未フォーマット・イベント表をフォーマットする方法
EVMON_FORMAT_UE_TO_XML
EVMON_FORMAT_UE_TO_TABLES
db2evmonfmt
23
©日本IBMシステムズ・エンジニアリング(株) Information Management部
DB2 for LUW 運用管理ガイド
データベース・モニタリング
V9.7での非推奨機能
機能強化に伴い、非推奨となる機能
非推奨となる
非推奨となる機能
となる機能
V9.7で
V9.7で提供された
提供された機能
された機能
Dynamic SQL snapshot
-
DB2_CAPTURE_LOCKTIMEOUT レジストリー変数
ロックイベント・モニター
デッドロック・イベント・モニター
ロックイベント・モニター
DB2DETAILDEADLOCK イベント・モニター
ロックイベント・モニター
トランザクション・イベント・モニター
作業単位イベント・モニター
©日本IBMシステムズ・エンジニアリング(株) Information Management部
24
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ロック・イベント・モニター
収集されるロック・イベントの情報
原因となったロック
原因となったロックを保持しているアプリケーション
原因となるロックを待機または要求していたアプリケーション
ロック・イベント時のアプリケーションの実行内容
ロック・データの収集対象にできるアクティビティー
SQL ステートメント
DML 、DDL 、CALL
LOAD コマンド
REORG コマンド
BACKUP DATABASE コマンド
ユーティリティー要求
©日本IBMシステムズ・エンジニアリング(株) Information Management部
25
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)
従来の方法に比べ、より詳細なロック情報を出力することができるようになりました。
ロック待ち、ロックタイムアウト、デッドロックそれぞれについて収集するかどうかを設定可能になりました。
ロック保持者と、ロック待ちの両方の情報を出力されます。
設定によりステートメントの履歴を出すことも可能です。
DB2 V9.7からデッドロック、ロックタイムアウトの情報をdb2diag.logに出力するように
なりました。ロックが多発するシステムではログファイルが大きくなる可能性がありま
すのでご注意ください。場合によってはDIAGSIZEの指定も有効です。
出力される情報は以下の通りです。
タイムスタンプと、データベースパーティション番号
ロックを待たされた側のアプリケーションID
ロックを保持したアプリケーションID
競合したロックの情報
©日本IBMシステムズ・エンジニアリング(株) Information Management部
26
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ロック・イベント・モニター
ロック・イベント・モニターを収集するための設定
以下のいずれかを設定
CREATE/ALTER WORKLOADで取得したいロックイベントを設定
詳細は「7-3.モニタリング機能とWLMの連携」を参照
ロックに関するDB CFGの設定
– MON_LOCKWAIT
ロック待ちイベントの収集
DB CFGで設定するより、ワークロード・レベルで有効にすることが推奨される
– MON_LOCKTIMEOUT
ロック・タイム・アウトのイベントの収集
予期されないイベントであれば、DB CFGで有効にし、予期しているイベントであればワー
クロード・レベルで有効にすることが推奨される
– MON_DEADLOCK
デッドロック・イベントの収集
DB CFGで有効にすることが推奨される
– MON_LW_THRESH
MON_LOCKWAITイベントが収集されるまでのロック待ち時間を制御
設定の上、イベント・モニターを作成
CREATE EVENT MONITOR FOR LOCKING
©日本IBMシステムズ・エンジニアリング(株) Information Management部
27
DB2 for LUW 運用管理ガイド
データベース・モニタリング
解説:
MON_LOCKWAIT、 MON_LOCKTIMEOUT、 MON_DEADLOCK
NONE
WITHOUT_HIST
HISTORY
HIST_AND_VALUE
イベントを収集しない
ロック・イベントを収集
ロック・イベントを収集 同トランザクション内の過去のアクティビティ履歴も表示
ロック・イベントを収集 アクティビティ履歴と入力データ値を表示
MON_LW_THRESH
マイクロ秒 (1秒 = 1,000,000マイクロ秒)
MON_LOCKWAITのイベントが発生するまでのロック待機時間
©日本IBMシステムズ・エンジニアリング(株) Information Management部
28
DB2 for LUW 運用管理ガイド
データベース・モニタリング
シンタックス
>>-CREATE EVENT MONITOR--event-monitor-name----FOR LOCKING------>
>----WRITE TO UNFORMATTED EVENT TABLE--+-------------------------------------------+---->
'-(--| unformatted-event-table-options |--)-'
.-AUTOSTART---.
>--+-------------+---------------------------------------------><
'-MANUALSTART-'
unformatted-event-table-options
.--------------------------------.
V
|
どの程度表スペースが満たされた時
|----+-TABLE--table name----------+-+---------------------------|
点でイベント・モニターが非活動化
+-IN--tablespace name--------+
されるかを指定(DMSのみ有効)
| .-PCTDEACTIVATE--100-----. |
'-+-PCTDEACTIVATE -integer-+-'
詳しいオプションなんどはマニュアルをご参考ください。
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0054074.html
©日本IBMシステムズ・エンジニアリング(株) Information Management部
29
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ロック・イベント・モニターの考慮点
データベースごとに1つのロック・イベント・モニターを作成
追加のイベント・モニターは、同じデータのコピーを作成するだけ
DB2DETAILDEADLOCKイベント・モニターは除去する
デフォルトではすべてのデータベースは、DB2DETAILDEADLOCK イベント・モニタ
ーが有効な状態
これは、V9.7からは推奨されておらず、今後のリリースで除去される可能性がある
DB2DETAILDEADLOCK イベント・モニターを除去しないと、新しいイベント・モニタ
ーのどちらもデータを収集することになる
以下を実行して、DB2DETAILDEADLOCK イベント・モニターを除去する
SET EVENT MONITOR DB2DETAILDEADLOCK state 0
DROP EVENT MONITOR DB2DETAILDEADLOCK
DPF環境では未フォーマット・イベント表が存在するパーティション
のみのイベントをモニターする
©日本IBMシステムズ・エンジニアリング(株) Information Management部
30
DB2 for LUW 運用管理ガイド
データベース・モニタリング
作業単位イベント・モニター
作業単位の完了(コミット、ロールバック)ごとにイベントを記録
作業単位データを収集するための設定
要求メトリックが有効になっていることが前提(デフォルトは設定済み)
MON_REQ_METRICS(DB CFG)
サービス・スーパークラスの CREATE/ALTER SERVICE CLASS ステートメントの
COLLECT REQUEST METRICS 節
以下のいずれかを設定
MON_UOW_DATA の設定(DB CFG)
収集するためにはBASEに設定(デフォルトはNONE)
オンラインで変更可能
CREATE/ALTER WORKLOADで、COLLECT UNIT OF WORK DATA を指定
設定の上、イベント・モニターを作成
CREATE EVENT MONITOR FOR UNIT OF WORK
©日本IBMシステムズ・エンジニアリング(株) Information Management部
31
DB2 for LUW 運用管理ガイド
データベース・モニタリング
シンタックス
>>-CREATE EVENT MONITOR--event-monitor-name--------------------->
>----FOR UNIT OF WORK------------------------------------------->
>----WRITE TO UNFORMATTED EVENT TABLE--+-------------------------------------------+---->
'-(--| unformatted-event-table-options |--)-'
.-AUTOSTART---.
>--+-------------+---------------------------------------------><
'-MANUALSTART-'
unformatted-event-table-options
.--------------------------------------.
V (1)
|
どの程度表スペースが満たされた時
|----------+-TABLE--table name----------+-+---------------------|
点でイベント・モニターが非活動化
+-IN--tablespace name--------+
されるかを指定(DMSのみ有効)
| .-PCTDEACTIVATE--100-----. |
'-+-PCTDEACTIVATE -integer-+-'
詳しいオプションなんどはマニュアルをご参考ください。
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0054561.html
©日本IBMシステムズ・エンジニアリング(株) Information Management部
32
DB2 for LUW 運用管理ガイド
データベース・モニタリング
作業単位イベント・モニターの考慮点
定常的な監視ではなく、問題判別などに使用する
UOWモニター・スイッチには影響されない
作業単位イベント・モニターに最も関連のある代替手段または補
足手段は以下があげられる
統計イベント・モニター
MON_GET_UNIT_OF_WORK または MON_GET_UNIT_OF_WORK_DETAILS 表関数
要求メトリックが設定されていなければ、一部の作業単位イベン
ト・データは収集されない
データベースごとに 1 つの作業単位イベント・モニターのみを作成
DPF環境では未フォーマット・イベント表が存在するパーティション
のみのイベントをモニターする
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.mon.doc/doc/c0055273.html
©日本IBMシステムズ・エンジニアリング(株) Information Management部
33
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ブランク・ページです。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
34
DB2 for LUW 運用管理ガイド
データベース・モニタリング
未フォーマット・イベント表に関する考慮点
ロックと作業単位イベント・モニターは未フォーマット・イベント表に
のみデータの格納が可能
事前に未フォーマット・イベント表を格納する専用表スペースを作
成することが推奨される
出力されるデータ量に依存しますが余裕を持ったディスク・スペースで構成される
ことが推奨される
イベント・データはBLOBに格納されるため、インラインが望ましい
インライン BLOB 列内に確実に格納されるように、表スペースを少なくとも 8K の
ページ・サイズを指定して作成する
BLOB 列がインラインでなければ、イベントの書き込みおよび読み取りのパフォー
マンスは効率的でない場合がある
行がインライン化されているかの確認には、ADMIN_IS_INLINED 関
数を使用する
行がインライン化されていない場合は、行が必要とするスペースを
判別するために、ADMIN_EST_INLINE_LENGTH 関数を使用する
35
©日本IBMシステムズ・エンジニアリング(株) Information Management部
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)未フォーマット・イベント表定義
CREATE EVENT MONITOR時に未フォーマット・イベント表名を指定しなければ
イベント・モニター名と同じ表名で作成される
ロックも作業単位も同じ形式の表を使用
Data type
Column
Column name
schema
------------------------------- --------PARTITION_KEY
SYSIBM
APPL_ID
SYSIBM
APPL_NAME
SYSIBM
EVENT_CORRELATION_ID
SYSIBM
EVENT_DATA
SYSIBM
EVENT_ID
SYSIBM
EVENT_TIMESTAMP
SYSIBM
EVENT_TYPE
SYSIBM
MEMBER
SYSIBM
RECORD_SEQ_NUM
SYSIBM
RECORD_TYPE
SYSIBM
SERVICE_SUBCLASS_NAME
SYSIBM
SERVICE_SUPERCLASS_NAME
SYSIBM
WORKLOAD_NAME
SYSIBM
Data type name
Length
Scale Nulls
------------------- ---------- ----- -----INTEGER
4
0 No
VARCHAR
64
0 Yes
VARCHAR
255
0 Yes
VARCHAR
32
0 Yes
BLOB
4189000
0 No
BIGINT
8
0 No
TIMESTAMP
10
6 No
VARCHAR
32
0 No
SMALLINT
2
0 No
BIGINT
8
0 No
BIGINT
8
0 No
VARCHAR
128
0 Yes
VARCHAR
128
0 Yes
VARCHAR
128
0 Yes
14 record(s) selected.
©日本IBMシステムズ・エンジニアリング(株) Information Management部
36
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)ADMIN_IS_INLINE/ADMIN_EST_INLINE_LENGTH
インライン化されているかどうかを示す関数
>>-ADMIN_IS_INLINED--(--columun-name--)-----------------------><
columun name
基本表の列名
(戻り値)
1
データがインライン化されていることを示す
0
データがインライン化されていないことを示す
NULL
入力がNULLであることを示す
$ db2 "select
admin_is_inlined(event_data) ,
admin_est_inline_length(event_data)
from uowevmon“
1
2
------ ----------1
1306
1
1306
1
1304
1
1306
:
インラインLOBのデータ長を確認するための関数
出力例
>>-ADMIN_EST_INLINE_LENGTH--(--columun-name--)-----------------------><
columun name
基本表の列名
(戻り値)
数値
データの見積もりインライン長
-1
データがインライン化されていないことを示す
-2
バージョン9.7より前のバージョンのときに挿入されたデータのため判別不可能であることを示す
©日本IBMシステムズ・エンジニアリング(株) Information Management部
37
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ブランク・ページです。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
38
DB2 for LUW 運用管理ガイド
データベース・モニタリング
未フォーマット・イベント表へのアクセス方法
プロシージャーを使用する
EVMON_FORMAT_UE_TO_XML
未フォーマット・イベント表から XML 文書にデータを抽出
EVMON_FORMAT_UE_TO_TABLES
未フォーマット・イベント表から一連のリレーショナル表にデータを抽出
例)UOWEVMONイベントモニター表から、JavaアプリケーションのUOWに関する情報をフォーマット
db2 call "evmon_format_ue_to_tables('UOW',NULL,NULL,NULL,NULL,NULL,NULL,-1,
'select * from uowevmon where appl_name=‘’java’’ ')"
db2evmonfmtを使用する
テキスト・レポートまたはフォーマット済み XML 文書のどちらの形式で出力するか
を選択可能
Java ソース・コードとして提供されるツール
事前にセットアップが必要
Java ソース・ファイルに組み込まれている説明に従って、ツールをセットアップおよびコ
ンパイルする
– sqllib/samples/java/jdbc ディレクトリーにソース・コードがある
例)SAMPLEDBのLOCK表から、直近24時間以内に発生したLOCKTIMEOUTのデータをフォーマット
java db2evmonfmt -d sample -ue LOCK -ftext -hours 24 -type locktimeout
©日本IBMシステムズ・エンジニアリング(株) Information Management部
39
DB2 for LUW 運用管理ガイド
データベース・モニタリング
表関数
EVMON_FORMAT_UE_TO_XML
>>-EVMON_FORMAT_UE_TO_XML--(--options--,------------------------>
>--FOR EACH ROW OF--(--fullselect-statement--)--)--------------><
EVMON_FORMAT_UE_TO_TABLES
>>-EVMON_FORMAT_UE_TO_TABLES--(--evmon_type--,--xsrschema--,---->
>--xsrobjectname--,--xmlschemafile--,--tabschema--,------------->
>--tbsp_name--,--options--,--commit_count--,--fullselect--)----><
詳しいオプションなんどはマニュアルをご参考ください。
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.rtn.doc/doc/r0054909.html
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.rtn.doc/doc/r0054910.html
©日本IBMシステムズ・エンジニアリング(株) Information Management部
40
DB2 for LUW 運用管理ガイド
データベース・モニタリング
db2evmonfmt
Javaベースのツール
>>-java--db2evmonfmt-------------------------------------------->
> --+-+-| connect |--+--| filter options |-+--------------------><
| '-| XML file |-'
|
'- -h----------------------------------'
connect
|-- -d--db_name-- -ue--table_name------------------------------->
>--+-----------------------------+------------------------------|
'- -u--user_id-- -p--password-'
XML file
|-- -f--xml_filename--------------------------------------------|
filter options
|--+- -fxml-----------------------------+--+----------------+--->
'- -ftext--+-----------------------+-' '- -id--event_id-'
'- -ss--stylesheet_name-'
>--+--------------------+--+--------------------+--------------->
'- -type--event_type-' '- -hours--num_hours-'
>--+--------------------+--+----------------+------------------->
'- -w--workload_name-' '- -a--appl_name-'
>--+-------------------------+----------------------------------|
'- -s--srvc_subclass_name-'
©日本IBMシステムズ・エンジニアリング(株) Information Management部
41
DB2 for LUW 運用管理ガイド
データベース・モニタリング
解説:
db2evmonfmt.java に記載されている通りのパスを設定する必要があります
CLASSPATHに db2evmonfmt をコピーしたワークディレクトリを追加する必要が
あります
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.mon.doc/doc/c0053977.html
db2evmonfmt.java
// Steps to run the sample with command line window:
//
(一部省略)
//
// 2) Modify the CLASSPATH to include:
//
//
<install_path>/sqllib/java/db2java.zip
//
<install_path>/sqllib/java/db2jcc.jar
//
<install_path>/sqllib/java/db2jcc_license_cu.jar
//
<install_path>/sqllib/java/<jdkDirName>/lib
//
<install_path>/sqllib/lib
//
<install_path>/sqllib/function
//
<install_path>/sqllib/java/sqlj.zip
//
where <jdkDirName> is the name of the
//
jdk directory under <install_path>/sqllib/java.
//
// 3) Modify the PATH to include …
(一部省略)
©日本IBMシステムズ・エンジニアリング(株) Information Management部
42
CLASSPATH に db2evmonfmt.java を
コピーしたディレクトリを追加
例:/home/db2inst/mon
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)ロック・イベント・モニター作成例
手順
イベント・モニターを定義する
$ db2 create event monitor evmon1 for locking write to unformatted event table
DB20000I The SQL command completed successfully.
イベント・モニターを活動化させる
$ db2 set event monitor evmon1 state 1
DB20000I The SQL command completed successfully.
(データベースに対する処理が行われる)
イベントのタイプに応じて情報が自動的に収集される
イベント・モニター情報の強制出力(オプション)
$ db2 flush event monitor evmon1
DB20000I The SQL command completed successfully..
イベント・モニターを非活動化する
$ db2 set event monitor evmon1 state 0
DB20000I The SQL command completed successfully.
db2evmonfmtでフォーマットする
$ java db2evmonfmt –d sample –ue evmon1 -ftext
©日本IBMシステムズ・エンジニアリング(株) Information Management部
43
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ロックのOwner情報
ロックのRequester情報
出力例: ロック・イベントモニター (1/2)
-----------------------------------------------------Event ID
: 5
Event Type
: LOCKWAIT
Event Timestamp
: 2009-07-02-12.13.55.240137
Partition of detection : 0
------------------------------------------------------
Attributes
Requester
--------------------- -----------------------------Participant No
1
Application Handle
07269
Application ID
*LOCAL.yanav97.090702030019
*LOCAL.yanav97.090702030016
Application Name
db2bp
Authentication ID
YANAV97
6627
Requesting AgentID
Coordinating AgentID 6627
Participant No 1 requesting lock
Agent Status
UOW Executing
---------------------------------Application Action
No action
Lock Name
: 0x0002000F000000000000000452
Lock timeout value
0
Lock Type
: Row
Lock wait value
5000
Lock Specifics
: rowID:x0000000000000004
Workload ID
1
Lock Attributes
: 00000000
Workload Name
SYSDEFAULTUSERWORKLOAD
Lock mode requested : Update
SYSDEFAULTUSERWORKLOAD
Lock mode held
: Exclusive
Service subclass ID 13
Lock Count
: 1
Service subclass
SYSDEFAULTSUBCLASS
Lock Hold Count
: 0
SYSDEFAULTSUBCLASS
Lock rrIID
: 0
Current Request
Execute Immediate
Lock Status
: Waiting
Immediate
Lock release flags : 40000000
TEntry state
1
Tablespace TID
: 2
TEntry flags1
00000000
Tablespace Name
: USERSPACE1
TEntry flags2
00000200
Table FID
: 15
Lock escalation
no
Table Schema
: YANAV97
STAFF表に対する Client userid
Table Name
: STAFF
Update処理をしたいがClient wrkstnname
ロック待ちになっているClient applname
Client acctng
©日本IBMシステムズ・エンジニアリング(株) Information Management部
44
Owner
---------2
07268
db2bp
YANAV97
6884
6884
UOW Waiting
No action
0
0
1
13
Execute
2
00000000
00000200
no
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ロック保持者はUPDATE
処理事態は終わっており
COMMITしていない状態
のため、”Past” acitvities
に記載されている
出力例: ロック・イベントモニター (1/2)
Current Activities of Participant No 1
---------------------------------------Activity ID
: 1
Uow ID
: 5
Package Name
: SQLC2H20
Package Schema
: NULLID
Package Version
:
Package Token
: AAAAAZBZ
Package Sectno
: 203
Reopt value
: none
Incremental Bind : no
Eff isolation
: CS
Eff degree
: 0
Eff locktimeout
: -1
Stmt unicode
: no
Stmt query ID
: 0
Stmt nesting level : 0
Stmt invocation ID : 0
Stmt source ID
: 0
Stmt pkgcache ID : 4361355264
Stmt type
: Dynamic
Stmt operation
: DML, Insert/Update/Delete
Stmt text
: update staff set name='UPDATE2' where id=10
Past Activities of Participant No 2
------------------------------------Past Activities wrapped: no
Activity ID
Uow ID
Package Name
Package Schema
Package Version
Package Token
Package Sectno
Reopt value
Incremental Bind
Eff isolation
Eff degree
Eff locktimeout
Stmt unicode
Stmt query ID
Stmt nesting level
Stmt invocation ID
Stmt source ID
Stmt pkgcache ID
Stmt type
Stmt operation
Stmt text
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
1
5
SQLC2H20
NULLID
AAAAAZBZ
203
none
no
この項目に値を表示するため
には、MON_LOCKWAITを
CS
HISTORYに設定する
0
-1
no
0
0
0
0
4359651328
Dynamic
DML, Insert/Update/Delete
update staff set name='UPDATE' where id=10
このUPDATEが待ちに
なっている
©日本IBMシステムズ・エンジニアリング(株) Information Management部
このUPDATEが待ちの
原因になっている
45
DB2 for LUW 運用管理ガイド
データベース・モニタリング
出力例: 作業単位イベント・モニター (1/2)
合計CPU時間
------------------------------------------------------Event ID
: 7
Event Type
: UOW
Event Timestamp
: 2009-04-08-19.47.54.287172
Member of detection
: 0
------------------------------------------------------UOW Level Details
-----------------------Start Time
: 2009-04-08T19:47:54.204433
Stop Time
: 2009-04-08T19:47:54.287172
Completion Status
: COMMIT
UOW ID
: 3
Workoad Occurrence ID
: 1
Workload Name
: WL_HIGH2
Workoad ID
: 4
Service Superclass Name
: SC_LOW
Service Subclass Name
: SYSDEFAULTSUBCLASS
Service Class ID
: 16
Tpmon Userid
:
Tpmon Workstation Name
:
Tpmon Application Name
:
Tpmon Accounting String
:
Local Transaction ID
: 00000000000099CD
Global Transaction ID
:
0000000000000000000000000000000000000000
©日本IBMシステムズ・エンジニアリング(株) Information Management部
UOW Metrics
-----------------------TOTAL_CPU_TIME
TOTAL_WAIT_TIME
ACT_ABORTED_TOTAL
ACT_COMPLETED_TOTAL
ACT_REJECTED_TOTAL
AGENT_WAIT_TIME
AGENT_WAITS_TOTAL
APP_RQSTS_COMPLETED_TOTAL
AUDIT_EVENTS_TOTAL
AUDIT_SUBSYSTEM_WAIT_TIME
AUDIT_SUBSYSTEM_WAITS_TOTAL
AUDIT_FILE_WRITE_WAIT_TIME
AUDIT_FILE_WRITES_TOTAL
POOL_DATA_L_READS
POOL_INDEX_L_READS
POOL_TEMP_DATA_L_READS
POOL_TEMP_INDEX_L_READS
POOL_TEMP_XDA_L_READS
POOL_XDA_L_READS
POOL_DATA_P_READS
POOL_INDEX_P_READS
POOL_TEMP_DATA_P_READS
POOL_TEMP_INDEX_P_READS
POOL_TEMP_XDA_P_READS
POOL_XDA_P_READS
POOL_DATA_WRITES
POOL_INDEX_WRITES
POOL_XDA_WRITES
POOL_READ_TIME
46
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
8746
0
0
1
0
0
0
5
0
0
0
0
0
38
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
バッファープール
論理読み取り
DB2 for LUW 運用管理ガイド
データベース・モニタリング
出力例: 作業単位イベント・モニター (1/2)
POOL_WRITE_TIME
CLIENT_IDLE_WAIT_TIME
DEADLOCKS
DIAGLOG_WRITES_TOTAL
DIAGLOG_WRITE_WAIT_TIME
DIRECT_READS
DIRECT_READ_TIME
DIRECT_WRITES
DIRECT_WRITE_TIME
DIRECT_READ_REQS
DIRECT_WRITE_REQS
FCM_RECV_VOLUME
FCM_RECVS_TOTAL
FCM_SEND_VOLUME
FCM_SENDS_TOTAL
FCM_RECV_WAIT_TIME
FCM_SEND_WAIT_TIME
FCM_MESSAGE_RECV_VOLUME
FCM_MESSAGE_RECVS_TOTAL
FCM_MESSAGE_RECV_WAIT_TIME
FCM_MESSAGE_SEND_VOLUME
FCM_MESSAGE_SENDS_TOTAL
FCM_MESSAGE_SEND_WAIT_TIME
FCM_TQ_RECV_WAIT_TIME
FCM_TQ_RECVS_TOTAL
FCM_TQ_RECV_VOLUME
FCM_TQ_SEND_WAIT_TIME
FCM_TQ_SENDS_TOTAL
FCM_TQ_SEND_VOLUME
TQ_TOT_SEND_SPILLS
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
0
3821
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
クライアントアイド
ル待機時間
©日本IBMシステムズ・エンジニアリング(株) Information Management部
IPC_RECV_VOLUME
IPC_RECV_WAIT_TIME
IPC_RECVS_TOTAL
IPC_SEND_VOLUME
IPC_SEND_WAIT_TIME
IPC_SENDS_TOTAL
LOCK_ESCALS
LOCK_TIMEOUTS
LOCK_WAIT_TIME
LOCK_WAITS
LOG_BUFFER_WAIT_TIME
NUM_LOG_BUFFER_FULL
LOG_DISK_WAIT_TIME
LOG_DISK_WAITS_TOTAL
RQSTS_COMPLETED_TOTAL
ROWS_MODIFIED
ROWS_READ
ROWS_RETURNED
TCPIP_RECV_VOLUME
TCPIP_SEND_VOLUME
TCPIP_RECV_WAIT_TIME
TCPIP_RECVS_TOTAL
TCPIP_SEND_WAIT_TIME
TCPIP_SENDS_TOTAL
TOTAL_APP_RQST_TIME
TOTAL_RQST_TIME
WLM_QUEUE_TIME_TOTAL
WLM_QUEUE_ASSIGNMENTS_TOTAL
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
421
0
5
14247
0
5
0
0
0
0
0
0
0
0
5
0
869
160
0
0
0
0
0
0
28
28
0
0
プロセス間通信受信
ボリューム
プロセス間通信送信
ボリューム
読み込み行数
戻り行数
アプリケーション要
求合計時間
47
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ブランク・ページです。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
48
DB2 for LUW 運用管理ガイド
データベース・モニタリング
7-3.モニタリング機能とWLMの連携
WLM関連のイベント・モニターで、メトリックを使用
統計イベント・モニター ⇒ 要求メトリック
アクティビティー・イベント・モニター ⇒ アクティビティー・メトリック
取得範囲を絞った情報取得が可能
Service Class、Workload単位にメトリックの設定をすることが可能
特定のWorkloadのみを対象に、ロック/作業単位のイベント・モニター情報
を取得可能
SERVICE
CLASS
WORKLOAD
WORKLOAD
©日本IBMシステムズ・エンジニアリング(株) Information Management部
49
DB2 for LUW 運用管理ガイド
データベース・モニタリング
Service Class/Workload単位でのメトリック取得
データベース全体でモニタリングを行なう要件がない場
合に、特定範囲に絞ってメトリックを取得することが可能
DB構成パラメーターがNONEの場合に、Service Class/Workloadでの
設定が有効
要求メトリック(MON_REQ_METRICS)は、Service Classごとに取得を設定
アクティビティー・メトリック(MON_ACT_METRICS)は、Workloadごとに取得を
設定
デフォルトは、すべてのService Class/Workloadで情報が取得される
MON_REQ_METRICS: BASE、MON_ACT_METRICS: BASE
SERVICE
CLASS
WORKLOAD
WORKLOAD
©日本IBMシステムズ・エンジニアリング(株) Information Management部
50
DB2 for LUW 運用管理ガイド
データベース・モニタリング
Service Class/Workload単位でのメトリック設定
データベース構成パラメーターとWLMのモニタリング項目
BASE / EXTENDED
データベース
データベース
構成パラメーター
構成パラメーター
NONE
BASE / EXTENDED
WORKLOAD/
WORKLOAD/
SERVICECLASS
SERVICECLASS
の設定
の設定
データベース構成パラメーターが
NONEの場合、各ServiceClass、
Workloadの設定に従う
NONE
指定した
指定
した
指定した
したWORKLOAD
指定したWORKLOAD
した
SERVICECLASSのみ
のみON
のみ
SERVICECLASSのみ
のみON
のみ
OFF
OFF
ON
ON
(例)Service Class、Workloadごとに、メトリックを設定する
ALTER SERVICE CLASS SC_01 COLLECT REQUEST METRICS BASE
ALTER WORKLOAD WL_01 COLLECT ACTIVITY METRICS BASE
©日本IBMシステムズ・エンジニアリング(株) Information Management部
51
DB2 for LUW 運用管理ガイド
データベース・モニタリング
Workload単位のイベント・モニター取得
V9.7より追加されたイベント・タイプ(ロック、作用単位)につ
いてワークロードごとにモニタリングの有無を設定可能
「問題発生時に、バッチ処理のワークロードのみ作業単位イベントモニターを使用す
る」等
ロック待機の発生
ロック待機の発生
状況が知りたい
状況が知りたい
ロック・イベントモニター
ロック・イベントモニター
を設定
を設定
OLTP処理
WORKLOAD
SERVICE
CLASS
Buffer
pool
Index
Index
Tablespac
e Table
Table
Table
Table
Index
Index
バッチ処理
WORKLOAD
SERVICE
CLASS
CPUの状況をモニタリ
CPUの状況をモニタリ
ングしたい
ングしたい
Container
作業単位イベントモニタ
作業単位イベントモニタ
ーを指定
ーを指定
©日本IBMシステムズ・エンジニアリング(株) Information Management部
52
DB2 for LUW 運用管理ガイド
データベース・モニタリング
取得範囲を指定可能なイベント・タイプ
V9.5においても、アクティビティー、統計のイベント・タイプについては、
特定のDBオブジェクトごとに取得可能
イベント・
イベント・タイプ
取得範囲を
取得範囲を指定する
指定するDB
するDBオブジェクト
DBオブジェクト
Workload
Service Class
取得される
取得される情報
される情報
Threshold
デッドロック
○
-
-
デッドロックに関連するアプリケーショ
ン情報
ロックタイムアウト
○
-
-
ロックタイムアウトに関連するアプリケ
ーション情報
ロック待機
○
-
-
Lock Waitに関連するアプリケーション
情報
○
-
-
トランザクションレベルの情報(リソー
ス使用状況、内部処理毎の所要時
間)
アクティビティー
○
○
○
サービス・クラス、ワークロード、また
は作業クラス中で実行されたアクティ
ビティーに関するステートメントとコン
パイル環境の情報
統計
○
○
-
サービス・クラス、ワークロード、また
は作業クラス中で実行されたアクティ
ビティーからの統計情報
ロック
V9.7 NEW
作業単位
V9.7 NEW
©日本IBMシステムズ・エンジニアリング(株) Information Management部
53
DB2 for LUW 運用管理ガイド
データベース・モニタリング
Workload単位のイベント・モニター設定
CREATE/ALTER WORKLOADステートメントを使用する。
(例)特定のワークロードでのみ、デッドロック情報を WITH HISTORY AND VALUESで取得する
ALTER WORKLOAD wl_01 COLLECT DEADLOCK DATA WITH HISTORY AND VALUES
WORKLOADで、DB構成パラメーターの設定よりも上位の設定をしていた場合には、個別のWORKLOADの
設定が有効となる
設定しない/上位の設定ではない場合、DB構成パラメーターでの設定が、WORKLOADのデフォルトの設定と
なる
DB構成パラメーターのデフォルト値
Monitor Collect Settings
Request metrics
Activity metrics
Object metrics
Unit of work events
Lock timeout events
Deadlock events
Lock wait events
Lock wait event threshold
©日本IBMシステムズ・エンジニアリング(株) Information Management部
(MON_REQ_METRICS)
(MON_ACT_METRICS)
(MON_OBJ_METRICS)
(MON_UOW_DATA)
(MON_LOCKTIMEOUT)
(MON_DEADLOCK)
(MON_LOCKWAIT)
(MON_LW_THRESH)
54
=
=
=
=
=
=
=
=
BASE
BASE
BASE
NONE
NONE
WITHOUT_HIST
NONE
5000000
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)CREATE WORKLOADステートメント
.-COLLECT LOCK TIMEOUT DATA--WITHOUT HISTORY------------------.
>--+-------------------------------------------------------------+-->
'-COLLECT LOCK TIMEOUT DATA--+-NONE-------------------------+-'
'-WITH HISTORY--+------------+-'
'-AND VALUES-'
.-COLLECT DEADLOCK DATA--WITHOUT HISTORY------------------.
>--+---------------------------------------------------------+-->
'-COLLECT DEADLOCK DATA----WITH HISTORY--+------------+---'
'-AND VALUES-'
.-COLLECT LOCK WAIT DATA--NONE--------------------------.
>--+-------------------------------------------------------+---->
'-COLLECT LOCK WAIT DATA--| collect-lock-wait-options |-'
ロックに
ロックに関する設定
する設定
.-COLLECT UNIT OF WORK DATA--NONE-----.
>--+-------------------------------------+---------------------->
|
.-BASE-. |
'-COLLECT UNIT OF WORK DATA--+------+-'
作業単位に
作業単位に関する設定
する設定
collect-lock-wait-options
|--●------------------------------------------------------------>
>--FOR LOCKS WAITING MORE THAN--+-wait-time--+-SECONDS------+-+-->
|
'-MICROSECONDS-' |
'-1 SECOND--------------------'
.-WITHOUT HISTORY--------------.
>--●--+------------------------------+--●-----------------------|
'-WITH HISTORY--+------------+-'
'-AND VALUES-'
©日本IBMシステムズ・エンジニアリング(株) Information Management部
ロック待機
ロック待機に
待機に関する詳細設定
する詳細設定
55
DB2 for LUW 運用管理ガイド
データベース・モニタリング
(参考)ALTER WORKLOADステートメント
+-COLLECT
|
+-COLLECT
+-COLLECT
|
|
+-COLLECT
|
LOCK TIMEOUT DATA--+-| alter-collect-history-clause |-+-------+
'-NONE-----------------------------'
|
DEADLOCK DATA----| alter-collect-history-clause |-------------+
LOCK WAIT DATA--+-| alter-collect-lock-wait-data-clause |-+---+
'-NONE------------------------------------' |
.-BASE-.
|
UNIT OF WORK DATA--+------+-----------------------------------+
'-NONE-'
|
取得タイプ
取得タイプの
タイプの設定
alter-collect-history-clause
.-WITHOUT HISTORY--------------.
|--+------------------------------+-----------------------------|
'-WITH HISTORY--+------------+-'
'-AND VALUES-'
取得する
取得する情報
する情報レベル
情報レベルの
レベルの設定
alter-collect-lock-wait-data-clause
|--●------------------------------------------------------------>
>--FOR LOCKS WAITING MORE THAN--+-wait-time--+-SECONDS------+-+-->
|
'-MICROSECONDS-' |
'-1 SECOND--------------------'
>--●--| alter-collect-history-clause |--●-----------------------|
©日本IBMシステムズ・エンジニアリング(株) Information Management部
56
ロック待機
ロック待機に
待機に関する詳細設定
する詳細設定
DB2 for LUW 運用管理ガイド
データベース・モニタリング
Workload単位のイベント・モニター 設定例
オンライン処理(OLTP)でロック待機の情報、バッチ処理で作業単位
の情報を個別に取得する場合の設定例
ロック待機の発生
ロック待機の発生
状況が知りたい
状況が知りたい
ロック・イベントモニター
ロック・イベントモニター
を設定
を設定
OLTP処理
SC_OLTP
WL_OLTP
バッチ処理
CPUの状況をモニタリ
CPUの状況をモニタリ
ングしたい
ングしたい
WL_BATCH
SC_BATC
H
作業単位イベントモニタ
作業単位イベントモニタ
ーを指定
ーを指定
©日本IBMシステムズ・エンジニアリング(株) Information Management部
【ロック・イベントモニターの作成】
CREATE EVENT MONITOR lockevmon FOR
LOCKING WRITE TO UNFORMATTED
EVENT TABLE;
【Workloadへの関連付け】
ALTER WORKLOAD wl_lock COLLECT
LOCK WAIT DATA WITH HISTORY AND
VALUES FOR LOCKS WAITING MORE
THAN 10 SECONDS;
【作業単位イベントモニターの作成】
CREATE EVENT MONITOR uowevmon FOR
UNIT OF WORK WRITE TO UNFORMATTED
EVENT TABLE;
【Workloadへの関連付け】
ALTER WORKLOAD wl_batch COLLECT
UNIT OF WORK DATA BASE;
57
DB2 for LUW 運用管理ガイド
データベース・モニタリング
WLM表関数の追加
V9.7で追加された、WLMのモニタリング表関数
関数名
取得対象
WLM_GET_SERVICE_CLASS_A
GENTS_V97
エージェント、fenced モード・プロセス (db2fmp プロセス)、およびシステム・エンティティー
のリスト[*]
V9.5で提供されていたWLM_GET_SERVICE_CLASS_AGENTSは、今後は使用を推奨されな
い。
WLM_GET_SERVICE_CLASS_
WORKLOAD_OCCURRENCES
_V97
サービス・クラスで実行しているすべてのワークロード・オカレンスのリスト
V9.5から提供されていたWLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCESは、
今後は使用を推奨されない。
WLM_GET_SERVICE_SUBCLA
SS_STATS_V97
サービス・サブクラスの基本統計
V9.5から提供されていたWLM_GET_SERVICE_SUBCLASS_STATSは、今後は使用を推奨
されない
WLM_GET_WORKLOAD_OCCU
RRENCE_ACTIVITIES_V97
アプリケーションによってサブミットされ、また完了していないすべてのアクティビティーのリ
スト
V9.5から提供されていたWLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIESは、今後は
使用を推奨されない
WLM_GET_WORKLOAD_STAT
S_V97
ワークロード統計
V9.5から提供されていたWLM_GET_WORKLOAD_STATSは、今後は使用を推奨されない
[*]システム・エンティティーは、非エージェント・スレッドおよびプロセス (ページ・クリーナーおよびプリフェッチャーなど) を示す
©日本IBMシステムズ・エンジニアリング(株) Information Management部
58
DB2 for LUW 運用管理ガイド
データベース・モニタリング
WLM表関数の使用例
1. WLM_GET_SERVICE_SUBCLASS_STATS_V97
WLM_GET_SERVICE_SUBCLASS_STATS_V97表関数
表関数を
表関数を使用して
使用して、
して、現在
実行されている
実行されているアクティビティー
されているアクティビティーの
アクティビティーの数を確認する
確認する。
する。
この表関数を使用すれば、サービス・クラス内でのアクティビティー数を、実行状況ごとに把握できる。
SELECT VARCHAR(SERVICE_SUPERCLASS_NAME, 20) AS SUPERCLASS, VARCHAR(SERVICE_SUBCLASS_NAME, 20) AS
SUBCLASS, COORD_ACT_COMPLETED_TOTAL, COORD_ACT_ABORTED_TOTAL, CONCURRENT_ACT_TOP FROM
TABLE(WLM_GET_SERVICE_SUBCLASS_STATS_V97( 'SYSDEFAULTUSERCLASS', 'SYSDEFAULTSUBCLASS', -1)) AS T
SUPERCLASS
SUBCLASS
-------------------- -------------------SYSDEFAULTUSERCLASS SYSDEFAULTSUBCLASS
COORD_ACT_COMPLETED_TOTAL COORD_ACT_ABORTED_TOTAL CONCURRENT_ACT_TOP
------------------------- ----------------------- -----------------178
2
2
1 record(s) selected.
完了済みのアクティビティー数
処理が異常終了したアクティビティー数
©日本IBMシステムズ・エンジニアリング(株) Information Management部
現在実行中のアクティビティー数
59
DB2 for LUW 運用管理ガイド
データベース・モニタリング
WLM表関数の使用例
2.
WLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCES_V97表関数
WLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCES_V97表関数を
表関数を使用して
使用して、
して、
アクティビティーごとに
アクティビティーごとにアプリケーション
ごとにアプリケーション・
アプリケーション・ハンドル、
ハンドル、名前などを
名前などを確認
などを確認
SELECT APPLICATION_HANDLE, VARCHAR(WORKLOAD_NAME, 30) AS WORKLOAD, VARCHAR(SESSION_AUTH_ID, 20) AS
SESSION_AUTH_ID, VARCHAR(APPLICATION_NAME, 20) AS APPL_NAME FROM
TABLE(WLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCES_V97( 'SYSDEFAULTUSERCLASS', 'SYSDEFAULTSUBCLASS', -1))
AS T WHERE WORKLOAD_OCCURRENCE_STATE='UOWEXEC'
APPLICATION_HANDLE WORKLOAD
-------------------- -----------------------------3904 SYSDEFAULTUSERWORKLOAD
アプリケーション・ハンドル
3912 SYSDEFAULTUSERWORKLOAD
2 record(s) selected.
3.
SESSION_AUTH_ID
-------------------YMV97USR
YMV97USR
APPL_NAME
アプリケーション名
-------------------db2bp
db2bp
WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES_V97表関数
WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES_V97表関数を
表関数を使用して
使用して、
して、特定
アプリケーションに
に対して、
アプリケーション
して、実行中の
実行中のアクティビティー・
アクティビティー・タイプを
タイプを確認
SELECT APPLICATION_HANDLE, LOCAL_START_TIME, UOW_ID, ACTIVITY_ID, ACTIVITY_TYPE FROM
TABLE(WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES_V97(3912,-1)) AS T
INSERT, UPDATE, DELETEなど
APPLICATION_HANDLE LOCAL_START_TIME
UOW_ID
ACTIVITY_ID ACTIVITY_TYPE
のSQLが実行されている。
-------------------- -------------------------- ----------- ----------- -------------------------------3912
2009-06-25-11.11.10.016681
38
1 WRITE_DML
2 record(s) selected.
©日本IBMシステムズ・エンジニアリング(株) Information Management部
60
DB2 for LUW 運用管理ガイド
データベース・モニタリング
考慮点 WLM関連のモニター機能(V9.5)との変更点
WLM表関数の追加に伴い、V9.5で提供されていた以下のルー
チンは非推奨となった
V9.5で
V9.5で提供された
提供された機能
された機能で
機能で今後は
今後は使用すべきでない
使用すべきでない
関数
V9.7から
V9.7から新
から新しく提供
しく提供される
提供される関数
される関数
WLM_GET_SERVICE_CLASS_AGENTS
WLM_GET_SERVICE_CLASS_AGENTS_V97
WLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCES
WLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCES_V97
WLM_GET_SERVICE_SUBCLASS_STATS
WLM_GET_SERVICE_SUBCLASS_STATS_V97
WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES
WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES_V97
WLM_GET_WORKLOAD_STATS
WLM_GET_WORKLOAD_STATS_V97
WLM_GET_ACTIVITY_DETAILS
MON_GET_ACTIVITY_DETAILS
©日本IBMシステムズ・エンジニアリング(株) Information Management部
61
DB2 for LUW 運用管理ガイド
データベース・モニタリング
ブランク・ページです。
©日本IBMシステムズ・エンジニアリング(株) Information Management部
62
Fly UP