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