ロックツリー & デッドロック
1日で発生したLockの推移を分析することができます。Lockを発生させたセッション(Lock Holder)とLockを待機しているセッション(Lock Waitier)に対してツリー構造で確認することができます。このような機能により、特定時点で発生したLock情報であるHolderとWaiterの関係を確認してクエリ(Query)を分析し、デッドロッククエリを確認することができます。
ロックツリー
ホーム画面 > プロジェクト選択 > 分析 > ロックツリー
一日のロック発生有無と発生時間を時系列チャート/ロックツリーとして提供します。ロックが最初に発生した地点からholderとwaiterの構造をツリー形式で表現して提供します。ロックツリーは時間の流れで確認できます。
基本的な使い方
時間、 インスタンスで照会する日付と時間、インスタンスを選択します。設定した時間にロックが発生した場合は、Lock Wait Sessionsと下段のLock Treeテーブルに照会されているデータが表示されます。
-
1つのチャート内で最大2週間のデータを一度に確認できます。グラフチャートで特定の時間をクリックすると、画面下のテーブルから選択した時間のロック情報を確認できます。画面下の詳細情報から秒単位ボタンをクリックすると、5秒単位でロック情報を照会できます。
ノートLock Wait Sessionsチャートの右上に表示されているタグを通じて照会の単位を確認できます。
-
グラフチャートで特定時間領域をドラッグ(ドリルダウン)するほど、詳細時間のチャートとロックツリーを照会できます。
-
チャートで3時間以内にドラッグして、5秒単位のデータを照会できます。ただし、5秒単位のデータは、最近 1か月の範囲に限って照会できます。1か月前のデータは、5分要約データでしか閲覧できません。例えば、40 日前のロックトリックデータをドラッグ(ドリルダウン)すると、5分要約データは照会できますが、5秒データは照会できません。
- Active session
- Lock tree
- Process information
項目 | 説明 |
---|---|
Instance Name | インスタンス名 |
id | connection識別子 |
user | SQL実行アカウント |
host | このスレッドが関連付けられたhostname |
db | default database名、 ない場合はNULL |
command | 実行されているコマンドの種類 (Query/Sleep/Daemonなど) |
time | 現在のCOMMANDの実行時間(秒) |
state | スレッドの状態(executing/updating/sending dataなど) |
query | 実行されているstatementです。Processlist.info からリテラル値を除外したSQLを表示します。 |
query_param | query から分離したリテラル値 |
type | Threadのタイプ。 FOREGROUND/BACKGROUNDなど |
connection_type | Connectionの確立に使用されるprotocol。 TCP/IP、SSL/TLS |
項目 | 説明 |
---|---|
holder type | holderセッションのtype |
lock mode | holder_mode |
waiter type | waiterセッションのtype |
lock request | waiter_mode |
state | 現在プロセスが進行中の状態です。 |
table | holder_table/waiter_table |
index | holder_index/waiter_index |
次の項目は、XOSエージェントをインストールした場合に収集される指標です。
項目 | 説明 |
---|---|
cputime | CPU使用時間 |
cpuusage | CPU使用率 |
elapse | CPU使用経過時間 |
vsize | 仮想メモリサイズ(Kb) |
rss | Resident Set Size(RSS)、プロセスに関連する物理ページ数 |
state | プロセス状態 |
ioread | ブロックの読み取りに費やされた実際の時間(milliseconds) |
iowrite | ブロックの書き込みに費やされた実際の時間(milliseconds) |
pss | プロセスの固有メモリ使用量 + 1つのプロセスが施入する共有メモリの割合 |
uid | user id |
cmd | 実行中のコマンド |
longcmd | cmdの絶対パス |
デッドロック
ホーム画面 > プロジェクト選択 > 分析 > デッドロック
デッドロックは、2つ以上のプロセスまたはトランザクションがそれぞれ異なるトランザクションに必要なデータベースリソース(テーブルまたは行)をロックし、互いに進行できないようにブロックするときに発生します。頻繁に発生するデッドロックは、エンドユーザーに不快感を与え、サービスの品質を低下させます。デッドロックメニューではデッドロックが発生した時点とこれに関する情報を照会することができます。この情報は、アプリケーション設計で問題を特定し、解決するのに役立ちます。
データベースで発生したデッドロックに関する情報を確認できます。
-
時間表示する時間を設定してください。
-
インスタンスで、クエリを実行するインスタンス名を選択してください。
-
ボタンを選択してください。
取得したデッドロック情報をテーブル形式で提供します。
表示時間は、最大3週間まで選択できます。任意の日付と時間を表示するには、時計の表示部分を選択してください。日付と時間のテキスト領域をクリックすると、日付と時間を選択するオプションが表示されます。