SYSSTATモニタリング項目は一般的な診断用モニタリング情報の一つであり、SQL実行回数、実行時間、I/O回数など、システム稼働に関する主要なパフォーマンス指標を統計します。
モニタリング項目の出典
モニタリング項目のデータは[G]V$SYSSTATビューに格納されており、主なフィールドの説明は以下のとおりです。
フィールド名 |
説明 |
|---|---|
| CON_ID | テナントID |
| SVR_IP | ノードIP |
| STAT_ID | モニタリング項目ID |
| NAME | モニタリング項目名 |
| CLASS | モニタリング項目のカテゴリ |
| VALUE | モニタリング項目の対応する結果値 |
| VALUE_TYPE | モニタリング項目の値のタイプ:
|
モニタリング項目のクエリ
例として、[G]V$SYSSTAT ビューを使用して、SQLカテゴリのすべてのモニタリング項目をクエリします。
obclient> SELECT CLASS,STAT_ID,NAME,VALUE_TYPE FROM GV$SYSSTAT WHERE CLASS=8;
実行結果は次のとおりです:
+-------+---------+------------------------------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+------------------------------------+------------+
| 8 | 40000 | sql select count | ADD_VALUE |
| 8 | 40001 | sql select time | ADD_VALUE |
| 8 | 40002 | sql insert count | ADD_VALUE |
| 8 | 40003 | sql insert time | ADD_VALUE |
| 8 | 40004 | sql replace count | ADD_VALUE |
| 8 | 40005 | sql replace time | ADD_VALUE |
| 8 | 40006 | sql update count | ADD_VALUE |
| 8 | 40007 | sql update time | ADD_VALUE |
| 8 | 40008 | sql delete count | ADD_VALUE |
| 8 | 40009 | sql delete time | ADD_VALUE |
| 8 | 40018 | sql other count | ADD_VALUE |
| 8 | 40019 | sql other time | ADD_VALUE |
| 8 | 40020 | ps prepare count | ADD_VALUE |
| 8 | 40021 | ps prepare time | ADD_VALUE |
| 8 | 40022 | ps execute count | ADD_VALUE |
| 8 | 40023 | ps close count | ADD_VALUE |
| 8 | 40024 | ps close time | ADD_VALUE |
| 8 | 40025 | sql commit count | ADD_VALUE |
| 8 | 40026 | sql commit time | ADD_VALUE |
| 8 | 40027 | sql rollback count | ADD_VALUE |
| 8 | 40028 | sql rollback time | ADD_VALUE |
| 8 | 40030 | opened cursors current | ADD_VALUE |
| 8 | 40031 | opened cursors cumulative | ADD_VALUE |
| 8 | 40010 | sql local count | ADD_VALUE |
| 8 | 40011 | sql remote count | ADD_VALUE |
| 8 | 40012 | sql distributed count | ADD_VALUE |
| 8 | 40013 | active sessions | ADD_VALUE |
| 8 | 40014 | single query count | ADD_VALUE |
| 8 | 40015 | multiple query count | ADD_VALUE |
| 8 | 40016 | multiple query with one stmt count | ADD_VALUE |
| 8 | 40100 | sql inner select count | ADD_VALUE |
| 8 | 40101 | sql inner select time | ADD_VALUE |
| 8 | 40102 | sql inner insert count | ADD_VALUE |
| 8 | 40103 | sql inner insert time | ADD_VALUE |
| 8 | 40104 | sql inner replace count | ADD_VALUE |
| 8 | 40105 | sql inner replace time | ADD_VALUE |
| 8 | 40106 | sql inner update count | ADD_VALUE |
| 8 | 40107 | sql inner update time | ADD_VALUE |
| 8 | 40108 | sql inner delete count | ADD_VALUE |
| 8 | 40109 | sql inner delete time | ADD_VALUE |
| 8 | 40110 | sql inner other count | ADD_VALUE |
| 8 | 40111 | sql inner other time | ADD_VALUE |
| 8 | 40112 | user logons cumulative | ADD_VALUE |
| 8 | 40113 | user logouts cumulative | ADD_VALUE |
| 8 | 40114 | user logons failed cumulative | ADD_VALUE |
| 8 | 40115 | user logons time cumulative | ADD_VALUE |
| 8 | 40116 | sql local execute time | ADD_VALUE |
| 8 | 40117 | sql remote execute time | ADD_VALUE |
| 8 | 40118 | sql distributed execute time | ADD_VALUE |
| 8 | 40119 | sql fail count | ADD_VALUE |
| 8 | 40120 | inner sql local count | ADD_VALUE |
| 8 | 40121 | inner sql remote count | ADD_VALUE |
| 8 | 40122 | inner sql distributed count | ADD_VALUE |
+-------+---------+------------------------------------+------------+
42 rows in set (0.07 sec)
モニタリング項目の種類
OceanBaseデータベースV4.xバージョンでサポートされているモニタリング項目は、以下の15の大カテゴリに分類されます。
モニタリング項目カテゴリID |
モニタリング項目カテゴリ |
モニタリング項目カテゴリの説明 |
|---|---|---|
| 1 | NETWORK | ネットワーク |
| 2 | QUEUE | リクエストキュー |
| 4 | TRANS | トランザクション |
| 8 | SQL | SQL |
| 16 | CACHE | キャッシュ |
| 32 | STORAGE | ストレージ |
| 64 | RESOURCE | リソース |
| 128 | DEBUG | ログ |
| 256 | CLOG | CLOG |
| 512 | ELECT | 選挙 |
| 1024 | OBSERVER | システム |
| 2048 | RS | Root Service |
| 3072 | Time Model | 時間モデル |
| 4096 | TABLEAPI | TableAPI |
| 8192 | WR | WR |
以下に、一般的なカテゴリのクエリと対応するモニタリング項目の説明をいくつか挙げます。全モニタリング項目の内容については、モニタリング項目の概要を参照してください。
ネットワーク
以下の例を使用して、ネットワーク関連の監視メトリクスを照会できます。
obclient> select distinct class,stat_id,name,VALUE_TYPE from gv$sysstat where class=1 and stat_id in (10000,10001,10002,10003,10004,10005,10006);
実行結果は次のとおりです:
+-------+---------+----------------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+----------------------+------------+
| 1 | 10000 | rpc packet in | ADD_VALUE |
| 1 | 10001 | rpc packet in bytes | ADD_VALUE |
| 1 | 10002 | rpc packet out | ADD_VALUE |
| 1 | 10003 | rpc packet out bytes | ADD_VALUE |
| 1 | 10004 | rpc deliver fail | ADD_VALUE |
| 1 | 10005 | rpc net delay | ADD_VALUE |
| 1 | 10006 | rpc net frame delay | ADD_VALUE |
+-------+---------+----------------------+------------+
7 rows in set (0.06 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| rpc packet in | テナントが累計で受信したRPCパケット数。テナントがRPCリクエストを受信するか、RPCリクエストを送信した後に応答パケットを受信すると、カウントが1増加します。 |
| rpc packet in bytes | テナントが累計で受信したRPCパケットのバイト数(単位:Bytes)。テナントがRPCリクエストを受信するか、RPCを送信した後に応答パケットを受信すると、そのRPCリクエストまたは応答パケットのサイズを累積します。 |
| rpc packet out | テナントが累計で送信したRPCパケット数。テナントがRPCリクエストを送信するか、RPCリクエストを受信した後に応答パケットを送信すると、カウントが1増加します。 |
| rpc packet out bytes | テナントが累計で送信したRPCパケットのバイト数(単位:Bytes)。テナントがRPCリクエストを送信するか、RPCリクエストを受信した後に応答パケットを送信すると、そのRPCリクエストまたは応答パケットのサイズを累積します。 |
| rpc deliver fail | RPCリクエストがテナントのワーカースレッドキューに転送された際の合計失敗回数。RPC I/OがRPCリクエストをテナントキューに転送する際に転送に失敗した場合、このカウントが1増加します。 |
| rpc net delay | テナントで受信したRPCリクエストの累計ネットワーク転送遅延(単位:マイクロ秒)。RPC I/OスレッドがRPCリクエストを解析した後、現在のタイムスタンプを取得し、パケットヘッダーから取得した送信時刻のタイムスタンプから差分を計算して、RPC_NET_DELAYに累積します。 |
| rpc net frame delay | テナントで受信したRPCリクエストの累計ネットワークフレーム処理時間(単位:マイクロ秒)。RPC I/OがRPCリクエストをテナントキューに転送する際、現在のタイムスタンプを取得し、RPCパケットを解析した際に記録したタイムスタンプとの差分を計算して、RPC_NET_FRAME_DELAYに累積します。 |
リクエストキュー
以下の例を使用して、リクエストキュー関連のモニタリングメトリクスを照会できます。
obclient> select distinct class,stat_id,name,VALUE_TYPE from gv$sysstat where class=2 and stat_id in (20000,20001,20002);
実行結果は次のとおりです。
+-------+---------+-----------------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+-----------------------+------------+
| 2 | 20000 | request enqueue count | ADD_VALUE |
| 2 | 20001 | request dequeue count | ADD_VALUE |
| 2 | 20002 | request queue time | ADD_VALUE |
+-------+---------+-----------------------+------------+
3 rows in set (0.07 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| request enqueue count | テナントの要求がキューに入る総回数を表します。ワーカースレッドキューに1つの要求が追加されるたびに、このカウンタは1ずつ増加します。 |
| request dequeue count | テナントの要求がキューから出る総回数を表します。ワーカースレッドキューから1つの要求が出るたびに、このカウンタは1ずつ増加します。 |
| request queue time | テナントのすべての要求がキューで待機した合計時間をマイクロ秒単位で表します。テナントのワーカースレッドが要求を取得するたびに、現在時刻からその要求がキューに入った時刻を差し引いて要求のキュー待機時間を算出し、これをREQUEST_QUEUE_TIME指標に累積します。 |
トランザクション
以下の例を使用して、トランザクション関連のモニタリングメトリクスを照会できます。
obclient> select distinct class,stat_id,name,VALUE_TYPE from gv$sysstat where class=4 and stat_id in (30000,30001,30002,30005,30006,30007,30008,30009,30010,30011,30012,30013,30200,30201,30202,30203,30204,30205,30206,30207,30208,30209,30210,30211,30212,30213,30214,30215,30216,30217,30218,30219);
実行結果は次のとおりです。
+-------+---------+----------------------------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+----------------------------------+------------+
| 4 | 30000 | trans commit log sync time | ADD_VALUE |
| 4 | 30001 | trans commit log sync count | ADD_VALUE |
| 4 | 30002 | trans commit log submit count | ADD_VALUE |
| 4 | 30005 | trans start count | ADD_VALUE |
| 4 | 30006 | trans total used time | ADD_VALUE |
| 4 | 30007 | trans commit count | ADD_VALUE |
| 4 | 30008 | trans commit time | ADD_VALUE |
| 4 | 30009 | trans rollback count | ADD_VALUE |
| 4 | 30010 | trans rollback time | ADD_VALUE |
| 4 | 30011 | trans timeout count | ADD_VALUE |
| 4 | 30012 | trans local trans count | ADD_VALUE |
| 4 | 30013 | trans distribute trans count | ADD_VALUE |
| 4 | 30200 | xa start total count | ADD_VALUE |
| 4 | 30201 | xa start total used time | ADD_VALUE |
| 4 | 30202 | xa start with rpc total count | ADD_VALUE |
| 4 | 30203 | failed xa start total count | ADD_VALUE |
| 4 | 30204 | xa end total count | ADD_VALUE |
| 4 | 30205 | xa end total used count | ADD_VALUE |
| 4 | 30206 | xa end with rpc total count | ADD_VALUE |
| 4 | 30207 | failed xa end total count | ADD_VALUE |
| 4 | 30208 | xa prepare total count | ADD_VALUE |
| 4 | 30209 | xa prepare total used time | ADD_VALUE |
| 4 | 30210 | xa prepare with rpc total count | ADD_VALUE |
| 4 | 30211 | failed xa prepare total count | ADD_VALUE |
| 4 | 30212 | xa commit total count | ADD_VALUE |
| 4 | 30213 | xa commit total used time | ADD_VALUE |
| 4 | 30214 | xa commit with rpc total count | ADD_VALUE |
| 4 | 30215 | failed xa commit total count | ADD_VALUE |
| 4 | 30216 | xa rollback total count | ADD_VALUE |
| 4 | 30217 | xa rollback total used time | ADD_VALUE |
| 4 | 30218 | xa rollback with rpc total count | ADD_VALUE |
| 4 | 30219 | failed xa rollback total count | ADD_VALUE |
+-------+---------+----------------------------------+------------+
32 rows in set (0.013 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| trans commit log sync time | そのテナントがそのマシン上でトランザクションclogのコミット成功から多数派確定までに消費した時間の累計値。単位はマイクロ秒です。clogの多数派が確定し、トランザクション層にコールバックする際、現在時刻からclogコミット成功時刻を引いて多数派確定に要した時間を算出し、この統計項目に累積します。 |
| trans commit log sync count | そのテナントがそのマシン上でコミット成功かつ多数派確定したclogの回数。各clogの多数派が確定すると、トランザクション層にコールバックされ、トランザクション層がコールバックを受信するたびにカウントが増加します。 |
| trans commit log submit count | そのテナントがそのマシン上でコミットしたclogの回数。各clogがコミット成功した都度(多数派確定は保証されない)、カウントが1増加します。 |
| trans start count | そのテナントがそのマシン上で開始したトランザクション数。セッションを作成したOBServerノード上で、トランザクションが毎回成功裏に開始されると、この統計項目のカウントが増加します。 |
| trans total used time | そのテナントがそのマシン上でのトランザクション実行時間の累計値。単位はマイクロ秒です。セッションを作成したOBServerノード上で、各トランザクション終了後、トランザクション実行時間を累積してこの統計項目に加算します。 |
| trans commit count | そのテナントがそのマシン上でコミット成功したトランザクション数。セッションが接続されたOBServerノード上で、トランザクションが毎回成功裏にコミットされると、カウントが1増加します。 |
| trans commit time | そのテナントがそのマシン上でのトランザクションコミット実行時間の累計値。単位はマイクロ秒です。セッションを作成したOBServerノード上で、各トランザクションがコミット成功した後、コミット実行時間を累積してこの統計項目に加算します。 |
| trans rollback count | そのテナントがそのマシン上でロールバック成功したトランザクション数。セッションを作成したOBServerノード上で、トランザクションが毎回ロールバック成功すると、この統計項目のカウントが増加します。 |
| trans rollback time | そのテナントがそのマシン上でのトランザクションロールバック実行時間。単位はマイクロ秒です。セッションを作成したOBServerノード上で、各ロールバックが成功した後、ロールバック実行時間を累積してこの統計項目に加算します。 |
| trans timeout count | そのテナントがそのマシン上でタイムアウトしたトランザクション数。セッションを作成したOBServerノード上で、トランザクションがタイムアウトするたびに、この統計項目のカウントが増加します。 |
| trans local trans count | そのテナントがそのマシン上で終了した単一マシントランザクションの数(コミットおよびロールバックの両方の終了方法を含む)。セッションを作成したOBServerノード上で、トランザクションが終了するたびに、参加者数を確認し、参加者が1の場合にこのカウントを増加させます。 |
| trans distribute trans count | そのテナントがそのマシン上で終了した分散トランザクションの数(コミットおよびロールバックの両方の終了方法を含む)。セッションを作成したOBServerノード上で、トランザクションが終了するたびに、参加者数を確認し、参加者が1より大きい場合にこのカウントを増加させます。 |
| xa start total count | XAトランザクションに対して、XA_STARTステートメントの総数。成功および失敗を含みます。トランザクション側でXA_STARTロジックの実行が完了すると、カウントが1増加します。 |
| xa start total used time | XAトランザクションに対して、XA_STARTステートメントの実行総時間。成功および失敗を含み、単位はマイクロ秒です。トランザクション側でXA_STARTロジックの実行が完了すると、ローカル処理に要した時間を加算します。 |
| xa start with rpc total count | XAトランザクションに対して、XA_STARTステートメントのリモート実行総数。成功したもののみを含みます。トランザクション側でXA_STARTロジックの実行が完了した後、そのXA_STARTがリモート実行でありかつ成功した場合、カウントが1増加します。 |
| failed xa start total count | XAトランザクションにおいて、XA_STARTステートメントの実行が失敗した総数です。トランザクション側でXA_STARTロジックの実行が失敗した場合、このカウントが1増加します。 |
| xa end total count | XAトランザクションにおいて、XA_ENDステートメントの実行総回数です。成功と失敗を含みます。トランザクション側でXA_ENDロジックの実行が完了すると、このカウントが1増加します。 |
| xa end total used count | XAトランザクションにおいて、XA_ENDステートメントの実行総時間です。単位はマイクロ秒です。トランザクション側でXA_ENDロジックの実行が完了すると、ローカル処理にかかった時間が加算されます。 |
| xa end with rpc total count | XAトランザクションにおいて、リモートで実行されたXA_ENDステートメントの総数です。成功したもののみを含みます。トランザクション側でXA_ENDロジックの実行が完了し、かつその実行がリモートで成功した場合、このカウントが1増加します。 |
| failed xa end total count | XAトランザクションにおいて、XA_ENDステートメントの実行が失敗した総数です。トランザクション側でXA_ENDを処理中にエラーが発生した場合、このカウントが1増加します。 |
| xa prepare total count | XAトランザクションにおいて、XA_PREPAREステートメントの総数です。成功と失敗を含みます。単位は回数です。トランザクション側でXA_PREPAREロジックの実行が完了すると、このカウントが1増加します。 |
| xa prepare total used time | XAトランザクションにおいて、XA_PREPAREステートメントの実行総時間です。成功と失敗を含みます。単位はマイクロ秒です。トランザクション側でXA_PREPAREロジックの実行が完了すると、ローカル処理にかかった時間が加算されます。 |
| xa prepare with rpc total count | XAトランザクションにおいて、XA_PREPAREステートメントのリモート実行総数です。成功したもののみを含みます。トランザクション側でXA_STARTロジックの実行が完了し、かつそのXA_PREPAREがリモート実行で成功した場合、このカウントが1増加します。 |
| failed xa prepare total count | XAトランザクションにおいて、XA_PREPAREステートメントの実行が失敗した総数です。トランザクション側でXA_PREPAREロジックの実行が失敗した場合、このカウントが1増加します。 |
| xa commit total count | XAトランザクションにおいて、XA_COMMITステートメントの実行総数です。成功と失敗を含みます。トランザクション側でXA_COMMITロジックの実行が完了すると、このカウントが1増加します。 |
| xa commit total used time | XAトランザクションにおいて、XA_COMMITステートメントの実行総時間です。単位はマイクロ秒です。トランザクション側でXA_COMMITロジックの実行が完了すると、ローカル処理にかかった時間が加算されます。 |
| xa commit with rpc total count | XAトランザクションにおいて、リモートで実行されたXA_COMMITステートメントの総数です。成功したもののみを含みます。トランザクション側でXA_COMMITロジックの実行が完了し、かつその実行がリモートで成功した場合、このカウントが1増加します。 |
| failed xa commit total count | XAトランザクションにおいて、XA_COMMITステートメントの実行が失敗した総数です。トランザクション側でXA_COMMITを処理中にエラーが発生した場合、このカウントが1増加します。 |
| xa rollback total count | XAトランザクションに対する、XA_ROLLBACKステートメントの総数。成功したものと失敗したものを含みます。トランザクション側でXA_ROLLBACKロジックの実行が完了するごとに、カウントが1増加します。 |
| xa rollback total used time | XAトランザクションに対する、XA_ROLLBACKステートメントの実行にかかる総時間。成功したものと失敗したものを含み、単位はマイクロ秒です。トランザクション側でXA_ROLLBACKロジックの実行が完了した後、ローカル処理にかかった時間を加算します。 |
| xa rollback with rpc total count | xaトランザクションに対する、XA_ROLLBACKステートメントのリモート実行総数。成功したもののみを含みます。トランザクション側でXA_STARTロジックの実行が完了した後、当該XA_ROLLBACKがリモート実行で成功した場合に1を加算します。 |
| failed xa rollback total count | XAトランザクションに対する、XA_ROLLBACKステートメントの実行失敗総数。トランザクション側でXA_ROLLBACKロジックの実行が完了した後、実行に失敗した場合にカウントが1増加します。 |
SQL
以下の例を参照して、SQL関連の監視メトリクスを照会できます。
obclient> select distinct class,stat_id,name,VALUE_TYPE from gv$sysstat where class=8 and stat_id in (40000, 40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40018, 40019);
実行結果は次のとおりです:
+-------+---------+-----------------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+-----------------------+------------+
| 8 | 40000 | sql select count | ADD_VALUE |
| 8 | 40001 | sql select time | ADD_VALUE |
| 8 | 40002 | sql insert count | ADD_VALUE |
| 8 | 40003 | sql insert time | ADD_VALUE |
| 8 | 40004 | sql replace count | ADD_VALUE |
| 8 | 40005 | sql replace time | ADD_VALUE |
| 8 | 40006 | sql update count | ADD_VALUE |
| 8 | 40007 | sql update time | ADD_VALUE |
| 8 | 40008 | sql delete count | ADD_VALUE |
| 8 | 40009 | sql delete time | ADD_VALUE |
| 8 | 40018 | sql other count | ADD_VALUE |
| 8 | 40019 | sql other time | ADD_VALUE |
| 8 | 40010 | sql local count | ADD_VALUE |
| 8 | 40011 | sql remote count | ADD_VALUE |
| 8 | 40012 | sql distributed count | ADD_VALUE |
+-------+---------+-----------------------+------------+
15 rows in set (0.08 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| sql select count | SQL SELECTの実行回数。 |
| sql select time | SQL SELECTの実行総時間、単位はマイクロ秒。 |
| sql insert count | ユーザーが発行したINSERT文の総回数。 |
| sql insert time | ユーザーが発行したINSERT文の総実行時間。 |
| sql replace count | ユーザーが発行したREPLACE文の総回数。 |
| sql replace time | ユーザーが発行したREPLACE文の総実行時間。 |
| sql update count | ユーザーが発行したUPDATE文の総回数。 |
| sql update time | ユーザーが発行したUPDATE文の総実行時間、単位はマイクロ秒。 |
| sql delete count | ユーザーが発行したDELETE文の総回数。 |
| sql delete time | ユーザーが発行したDELETE文の総実行時間、単位はマイクロ秒。 |
| sql other count | SELECT/INSERT/REPLACE/UPDATE/DELETE/COMMIT/ROLLBACK以外のSQL実行回数。 |
| sql other time | SELECT/INSERT/REPLACE/UPDATE/DELETE/COMMIT/ROLLBACK以外のSQL実行総時間、単位はマイクロ秒。 |
| sql local count | SQL LOCALの実行回数。 |
| sql remote count | SQL REMOTEの実行回数。 |
| sql distributed count | SQL文の分散実行回数。 |
キャッシュ
以下の例を使用して、KVCache関連のモニタリングメトリクスを照会できます。
obclient> select distinct class,stat_id,name,VALUE_TYPE from gv$sysstat where class=16 and stat_id in (50000, 50001, 50004, 50005, 50008, 50009, 50010, 50011, 50037, 50038,120001,120008,120009);
実行結果は次のとおりです:
+-------+---------+-------------------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+-------------------------+------------+
| 16 | 50000 | row cache hit | ADD_VALUE |
| 16 | 50001 | row cache miss | ADD_VALUE |
| 16 | 50004 | bloom filter cache hit | ADD_VALUE |
| 16 | 50005 | bloom filter cache miss | ADD_VALUE |
| 16 | 50008 | block cache hit | ADD_VALUE |
| 16 | 50009 | block cache miss | ADD_VALUE |
| 16 | 50010 | location cache hit | ADD_VALUE |
| 16 | 50011 | location cache miss | ADD_VALUE |
| 16 | 50037 | tablet ls cache hit | ADD_VALUE |
| 16 | 50038 | tablet ls cache miss | ADD_VALUE |
| 16 | 120001 | tablet ls cache size | SET_VALUE |
| 16 | 120008 | user row cache size | SET_VALUE |
| 16 | 120009 | bloom filter cache size | SET_VALUE |
+-------+---------+-------------------------+------------+
14 rows in set (0.07 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| row cache hit | table get演算子によるデータ行のプリフェッチ時のキャッシュヒット回数。lookup_in_cache関数で、データ行がキャッシュ内にあるかどうかを判断し、キャッシュヒットした場合にこの項目が1加算されます。 |
| row cache miss | table get演算子によるデータ行のプリフェッチ時のキャッシュミス回数。lookup_in_cache関数で、データ行がキャッシュ内にあるかどうかを判断し、キャッシュミスした場合にこの項目が1加算されます。 |
| bloom filter cache hit | マクロブロックブルームフィルターのキャッシュヒット数。SQL文が既に構築済みのマクロブロックブルームフィルターを使用していることを示します。 |
| bloom filter cache miss | マクロブロックブルームフィルターのキャッシュミス数。対応するマクロブロックブルームフィルターが構築されていないことを示します。 |
| block cache hit | マイクロブロック取得時のblock cacheヒット回数。マイクロブロックを取得する際に、マイクロブロックがcache内にあるかどうかを判断し、キャッシュヒットした場合にこの項目が1加算されます。 |
| block cache miss | マイクロブロック取得時のblock cacheミス回数。マイクロブロックを取得する際に、マイクロブロックがcache内にあるかどうかを判断し、キャッシュミスした場合にこの項目が1加算されます。 |
| location cache hit | location cacheのヒット回数。ls_location_cacheとtablet_ls_cacheのキャッシュヒット回数です。tabletからlogstreamへのマッピング関係やlogstreamの位置情報を照会する際に、ローカルキャッシュから有効なデータを正常に取得できた場合、統計値が1加算されます。ObTabletLSServiceおよびObLSLocationServiceのgetメソッドでトリガーされます。 |
| location cache miss | location cacheのミス回数。ls_location_cacheとtablet_ls_cacheのキャッシュミス回数です。tabletからlogstreamへのマッピング関係やlogstreamの位置情報を照会する際に、ローカルキャッシュから有効なデータを取得できなかった場合(キャッシュが存在しない、期限切れまたは無効)、統計値が1加算されます。ObTabletLSServiceおよびObLSLocationServiceのgetメソッドで、is_cache_hitがfalseの場合にこの項目が加算されます。 |
| tablet ls cache hit | tablet読み取り時のcacheヒット回数。get_from_cache_関数で、tabletがcache内にあるかどうかを判断し、cacheヒットした場合にこの項目が1加算されます。 |
| tablet ls cache miss | tablet読み取り時のcacheミス回数。get_from_cache関数で、tabletがcache内にあるかどうかを判断し、cacheミスした場合にこの項目が1加算されます。 |
| tablet ls cache size | tabletのcacheサイズ。単位はBytesです。get_from_cache関数で、tabletのcacheが使用されます。 |
| user row cache size | table get演算子がデータ行をプリフェッチする際に使用するキャッシュサイズ。単位はBytesです。lookup_in_cache関数でこのキャッシュが使用されます。 |
| bloom filter cache size | ブルームフィルターのキャッシュサイズの合計。単位はBytesです。ユーザーの挿入文では主キー競合のチェックが必要です。チェック対象のデータがディスク上にある場合、I/O転送を避けるために、関連するデータ範囲にブルームフィルターを構築するというパフォーマンス最適化手法が一般的です。ここで説明する一連のメトリクスは、ブルームフィルターのキャッシュに関連しています。 |
GV$SYSSTATビューは、KVCacheのヒット率を記述しています。KVCacheの各モジュールの実際のメモリ使用量を詳しく調べる場合は、GV$OB_KVCACHEビューを照会することができます。例:
obclient> select DBA_OB_TENANTS.tenant_id,tenant_name, svr_ip,svr_port, cache_name, cache_size
from GV$OB_KVCACHE, DBA_OB_TENANTS where DBA_OB_TENANTS.tenant_type!='META' and DBA_OB_TENANTS.tenant_id = GV$OB_KVCACHE.tenant_id limit 10;
実行結果は次のとおりです:
+-----------+----------------+------------+----------+-----------------------+------------+
| tenant_id | tenant_name | svr_ip | svr_port | cache_name | cache_size |
+-----------+----------------+------------+----------+-----------------------+------------+
| 1 | sys |xx.xx.xx.xx | 2882 | schema_cache | 14564352 |
| 1 | sys |xx.xx.xx.xx | 2882 | tablet_table_cache | 6241280 |
| 1 | sys |xx.xx.xx.xx | 2882 | vtable_cache | 35372032 |
| 1 | sys |xx.xx.xx.xx | 2882 | opt_column_stat_cache | 6241280 |
| 1008 | mq_t1 |xx.xx.xx.xx | 2882 | index_block_cache | 6241280 |
| 1008 | mq_t1 |xx.xx.xx.xx | 2882 | user_block_cache | 10402816 |
| 1008 | mq_t1 |xx.xx.xx.xx | 2882 | user_row_cache | 6241280 |
| 1010 | oracle_tenant1 |xx.xx.xx.xx | 2882 | index_block_cache | 6241280 |
| 1008 | mq_t1 |xx.xx.xx.xx | 2882 | bf_cache | 4160512 |
| 1010 | oracle_tenant1 |xx.xx.xx.xx | 2882 | user_block_cache | 8322048 |
+-----------+----------------+------------+----------+-----------------------+------------+
10 rows in set (0.06 sec)
ストレージ
以下の例を使用して、ストレージ関連のモニタリングメトリクスを照会できます。
obclient> select distinct class,stat_id,name,VALUE_TYPE from gv$sysstat where class=32 and stat_id in (60000, 60001, 60002, 60003, 60004, 60005, 60019, 60020, 60021, 60022, 60023, 60024,130000,130001,130002,130004);
実行結果は次のとおりです:
+-------+---------+--------------------------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+--------------------------------+------------+
| 32 | 60000 | io read count | ADD_VALUE |
| 32 | 60001 | io read delay | ADD_VALUE |
| 32 | 60002 | io read bytes | ADD_VALUE |
| 32 | 60003 | io write count | ADD_VALUE |
| 32 | 60004 | io write delay | ADD_VALUE |
| 32 | 60005 | io write bytes | ADD_VALUE |
| 32 | 60019 | memstore read lock succ count | ADD_VALUE |
| 32 | 60020 | memstore read lock fail count | ADD_VALUE |
| 32 | 60021 | memstore write lock succ count | ADD_VALUE |
| 32 | 60022 | memstore write lock fail count | ADD_VALUE |
| 32 | 60023 | memstore wait write lock time | ADD_VALUE |
| 32 | 60024 | memstore wait read lock time | ADD_VALUE |
| 32 | 130000 | active memstore used | SET_VALUE |
| 32 | 130001 | total memstore used | SET_VALUE |
| 32 | 130002 | major freeze trigger | SET_VALUE |
| 32 | 130004 | memstore limit | SET_VALUE |
+-------+---------+--------------------------------+------------+
16 rows in set (0.06 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| io read count | 読み取りI/Oの総IOPSを表します。各読み取りI/Oが完了するたびに、IO_READ_COUNTメトリクスが1増加します。 |
| io read delay | 読み取りI/Oの総遅延を表します。単位はマイクロ秒です。IO_READ_DELAYメトリクスは、各読み取りI/O操作のハードウェアサービス遅延を累積します。この遅延は、リクエストがディスクに割り当てられた時点から計測を開始し、ディスクが処理を完了して返却するまでの時間です。 |
| io read bytes | 読み取りI/Oの総帯域幅を表します。ここでは読み取りI/Oの総量を統計し、単位はBytesです。一定期間の変化量から、1秒あたりの平均読み取りI/Oを算出できます。各読み取りI/Oが完了するたびに、その読み取り帯域幅が統計され、IO_READ_BYTESメトリクスに累積されます。 |
| io write count | 書き込みI/Oの総IOPSを表します。各書き込みI/Oが完了するたびに、IO_WRITE_COUNTが1増加します。 |
| io write delay | 書き込みI/Oの総遅延を表します。単位はマイクロ秒です。IO_WRITE_DELAYメトリクスは、各書き込みI/O操作のハードウェアサービス遅延を累積します。この遅延は、リクエストがディスクに割り当てられた時点から計測を開始し、ディスクが処理を完了して返却するまでの時間です。 |
| io write bytes | 書き込みI/Oの総帯域幅を表します。ここでは書き込みI/Oの総量を統計し、単位はBytesです。一定期間の変化量から平均値を算出できます。各書き込みI/Oが完了するたびに、その書き込み帯域幅が統計され、IO_WRITE_BYTESメトリクスに累積されます。 |
| memstore read lock succ count | MemTableからの読み取りに成功した行数。MemTableから1行読み取り成功するごとに、この値が1増加します。 |
| memstore read lock fail count | ロック競合によるタイムアウトでMemTableからの読み取りに失敗した行数。MemTableからデータを読み取る際、読み取ったデータがコミット中であるものの、コミット状態やバージョン番号が未確定な場合(例:コミットログ未決定または分散トランザクション未決定の状態で、このような状態はごく短い)、読み取りロックを待機します。この競合によりタイムアウトして失敗した場合、この値が1増加します。 |
| memstore write lock succ count | MemTableへの書き込みに成功した行数。MemTableへデータを書き込む際、ロック競合、更新損失、主キー競合が検証されます。上記の競合がない場合、この値が1増加します。
説明MemTableで検証に成功しても、SSTableで失敗する可能性があります。 |
| memstore write lock fail count | 競合によりMemTableへの書き込みに失敗した行数。MemTableへデータを書き込む際、ロック競合、更新損失、主キー競合が検証されます。上記の競合が存在する場合、この値が1増加します。
説明SSTableでの検証は含まれません。 |
| memstore wait write lock time | MemTableへの書き込みでロック競合が発生した後、待機から覚醒するまでの待機時間を表します。単位はマイクロ秒です。MemTableへデータを書き込む際、ロック競合が発生すると、そのリクエストはロック競合キューに投入されます。この値は、ロック競合キューに投入された時点から覚醒するまでの時間を加算します。 |
| memstore wait read lock time | MemTable読み取りロックの競合による待機時間、単位はマイクロ秒です。MemTableからデータを読み取る際、読み取ったデータがコミット済みであるものの、コミット状態やバージョン番号が未確定な場合(例:コミットログが未決定または分散トランザクションが未決定の状態で、この状態はごく短いため)、読み取りロックで待機することになります。この値にはその待機時間が加算されます。 |
| active memstore used | ノード上のアクティブMemStoreサイズ、単位はBytesです。ノードの再生や書き込みではMemStoreが使用されます。MemStoreの使用量が一定レベルに達すると、フリーズがトリガーされます。すべての未フリーズのMemStoreはactive memstoreと呼ばれます。 |
| total memstore used | ノード上のテナントMemStore使用メモリの合計、単位はBytesです。このメモリ使用量にはactiveおよびfrozenのMemStoreが含まれます。つまり、そのテナントがそのノード上で使用するすべてのMemStoreのメモリ使用量です。 |
| major freeze trigger | フリーズをトリガーしたMemStoreのサイズ、単位はBytesです。get_tenant_memstore_cond 関数では、memstore_freeze_trigger と max_cached_memstore_size を足して求められます。 |
| memstore limit | ノード上のテナントMemStoreが使用可能なメモリの上限、単位はBytesです。ユーザーはテナントのメモリ上限を指定し、memstore_limit_percentage と _memstore_limit_percentage の設定によってMemStoreが使用できる最大上限を決定します。memstore_limit_percentage はクラスタレベルで、_memstore_limit_percentage はテナントレベルです。_memstore_limit_percentage の優先順位は memstore_limit_percentage より高いです。両方とも設定されていない場合、8GB未満のテナントのMemStore利用可能比率は40%、8GBを超えるテナントのMemStore利用可能比率は50%となります。 |
リソース
以下の例を参照して、リソース関連のモニタリング指標を照会できます。
obclient> select distinct class,stat_id,name,VALUE_TYPE from gv$sysstat where class=64 and stat_id in (140002,140003,140005,140006);
実行結果は次のとおりです:
+-------+---------+-----------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+-----------------+------------+
| 64 | 140002 | max memory size | SET_VALUE |
| 64 | 140003 | memory usage | SET_VALUE |
| 64 | 140005 | max cpus | SET_VALUE |
| 64 | 140006 | cpu usage | SET_VALUE |
+-------+---------+-----------------+------------+
4 rows in set (0.06 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| max memory size | テナントのメモリ仕様であり、テナントのメモリ上限を決定します。単位はBytesです。OmtNodeBalancerバックグラウンドスレッドは、定期的にDBA_OB_UNIT_CONFIGSテーブルからテナントの最新のmin_memoryを取得し、ObTenantMemoryMgrのLimitに更新します。 |
| memory usage | テナントが使用するメモリ量です。単位はBytesです。ObTenantMemoryMgrは、リアルタイムでメモリ値を維持し、テナントの実際のメモリ使用状況を記録します。 |
| min cpus | テナントのCPU仕様を表します。テナントの常駐ワーカースレッド数と一部のバックグラウンドモジュールのスレッド数を決定します。OmtNodeBalancerバックグラウンドスレッドは、定期的にDBA_OB_UNIT_CONFIGSテーブルから最新のmax_cpuを取得し、マルチテナントに同期します。OmtNodeBalancerバックグラウンドスレッドは、同期されたmax_cpuに基づいて定期的にワーカースレッド数を調整します。 |
| max cpus | テナントのCPU仕様を表します。テナントの常駐ワーカースレッド数と一部のバックグラウンドモジュールのスレッド数を決定します。cgroupを有効にした場合、テナントスレッドのCPU利用率上限を決定します。OmtNodeBalancerバックグラウンドスレッドは、定期的にDBA_OB_UNIT_CONFIGSテーブルから最新のmax_cpuを取得し、マルチテナントに同期します。OmtNodeBalancerバックグラウンドスレッドは、同期されたmax_cpuに基づいて定期的にワーカースレッド数を調整します。 |
| cpu usage | テナントワーカースレッドのスレッド利用率を表し、テナントワーカースレッドの負荷状況を反映します。単位はパーセンテージです。OmtNodeBalancerバックグラウンドスレッドは、10秒ごとにテナントワーカースレッドのリクエスト処理時間が総時間に占める割合を統計し、正規化処理を施した後、テナントのmin_cpuを乗算してcpu_usageの統計値とします。 |
上記のモニタリング項目に基づいて、テナントのCPU利用率とメモリ利用率を容易に取得できます:
テナントCPU利用率 = cpu usage (stat_id = 140013) / max cpus (stat_id = 140005)
テナントスレッド利用率 = cpu usage (stat_id = 140006) / max cpus (stat_id = 140005)
テナントメモリ利用率 = memory usage (stat_id = 140003) / max memory size (stat_id = 140002)
ログ
以下の例を使用して、システムログ関連の監視メトリクスを照会できます。
obclient> select distinct CLASS,STAT_ID,NAME,VALUE_TYPE from GV$SYSSTAT where class=128 and stat_id in (160001,160002,160004,160019,160020,160021,160022,160023,160024,160025,160026,160027,160028,160029,160030,160031,160032,160033,160034,160035,160036);
実行結果は次のとおりです:
+-------+---------+---------------------------------------+------------+
| CLASS | STAT_ID | NAME | VALUE_TYPE |
+-------+---------+---------------------------------------+------------+
| 128 | 160001 | oblogger log bytes | SET_VALUE |
| 128 | 160002 | election log bytes | SET_VALUE |
| 128 | 160004 | oblogger total log count | SET_VALUE |
| 128 | 160019 | async error log dropped count | SET_VALUE |
| 128 | 160020 | async warn log dropped count | SET_VALUE |
| 128 | 160021 | async info log dropped count | SET_VALUE |
| 128 | 160022 | async trace log dropped count | SET_VALUE |
| 128 | 160023 | async debug log dropped count | SET_VALUE |
| 128 | 160024 | async log flush speed | SET_VALUE |
| 128 | 160025 | async generic log write count | SET_VALUE |
| 128 | 160026 | async user request log write count | SET_VALUE |
| 128 | 160027 | async data maintain log write count | SET_VALUE |
| 128 | 160028 | async root service log write count | SET_VALUE |
| 128 | 160029 | async schema log write count | SET_VALUE |
| 128 | 160030 | async force allow log write count | SET_VALUE |
| 128 | 160031 | async generic log dropped count | SET_VALUE |
| 128 | 160032 | async user request log dropped count | SET_VALUE |
| 128 | 160033 | async data maintain log dropped count | SET_VALUE |
| 128 | 160034 | async root service log dropped count | SET_VALUE |
| 128 | 160035 | async schema log dropped count | SET_VALUE |
| 128 | 160036 | async force allow log dropped count | SET_VALUE |
+-------+---------+---------------------------------------+------------+
24 rows in set (0.052 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| oblogger log bytes | 累積印刷ログの総サイズ、単位はBytesです。observer.logなどのシステムログの出力プロセスを指します。 |
| election log bytes | 累積印刷選挙ログの総サイズ、単位はBytesです。election.logログの累積印刷サイズを指します。 |
| oblogger total log count | 累積印刷ログの回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async error log dropped count | ERRORログの印刷失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async warn log dropped count | WARNログの印刷失敗回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async info log dropped count | INFOログの印刷失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async trace log dropped count | TRACEログの印刷失敗回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async debug log dropped count | DEBUGログの印刷失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async log flush speed | 1秒あたりの平均ログ書き込み数。observer.logなどのシステムログの出力プロセスを指します。 |
| async generic log write count | デフォルトログ印刷成功回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async user request log write count | 既廃止、コード内でのみ保持されています。observer.logなどのシステムログの出力プロセスを指します。 |
| async data maintain log write count | ダンプマージログ印刷成功回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async root service log write count | RSログ印刷成功回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async schema log write count | Schemaログ印刷失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async force allow log write count | 強制ログ印刷成功回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async generic log dropped count | デフォルトログ印刷失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async user request log dropped count | デプロイ済み。コード内でのみ保持されます。observer.logなどのシステムログの出力プロセスを指します。 |
| async data maintain log dropped count | ダンプ・マージログの出力失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async root service log dropped count | RSログの出力失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async schema log dropped count | Schemaログの出力失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
| async force allow log dropped count | 強制ログ出力失敗(レート制限などの原因による)回数。observer.logなどのシステムログの出力プロセスを指します。 |
CLOG
以下の例を使用して、CLOG関連のモニタリングメトリクスを照会できます。
obclient> select distinct class,stat_id,name,VALUE_TYPE from gv$sysstat where class=256 and stat_id in (80001,80002,80057);
実行結果は次のとおりです:
+-------+---------+--------------------------------------+------------+
| class | stat_id | name | VALUE_TYPE |
+-------+---------+--------------------------------------+------------+
| 256 | 80001 | palf write io count to disk | ADD_VALUE |
| 256 | 80002 | palf write size to disk | ADD_VALUE |
| 256 | 80057 | clog trans log total size | ADD_VALUE |
+-------+---------+--------------------------------------+------------+
3 rows in set (0.07 sec)
パラメータ説明:
NAME |
説明 |
|---|---|
| palf write io count to disk | clogディスク書き込み回数。clogがディスクに正常に書き込まれると、この統計項目のカウントが1増加します。 |
| palf write size to disk | clogディスク書き込みサイズ、単位はBytesです。clogがディスクに正常に書き込まれると、その書き込みサイズが累積されます。 |
| clog trans log total size | トランザクションがPALFにコミットしたデータ量、単位はBytesです。トランザクションはログをPALFにコミットし、ログコミット完了後にこの値がログ量のサイズで増加します。 |
ASH
以下の例を使用して、ASH関連のモニタリングメトリクスを照会できます。
obclient> select * from oceanbase.V$STATNAME where class = 3072;
実行結果は次のとおりです:
+--------+---------+------------+----------------------------------------+----------------------------------------+-------+
| CON_ID | STAT_ID | STATISTIC# | NAME | DISPLAY_NAME | CLASS |
+--------+---------+------------+----------------------------------------+----------------------------------------+-------+
| 1002 | 200001 | 368 | DB time | DB time | 3072 |
| 1002 | 200002 | 369 | DB CPU | DB CPU | 3072 |
| 1002 | 200005 | 370 | background elapsed time | background elapsed time | 3072 |
| 1002 | 200006 | 371 | background cpu time | background cpu time | 3072 |
| 1002 | 200010 | 372 | non idle wait time | non idle wait time | 3072 |
| 1002 | 200011 | 373 | idle wait time | idle wait time | 3072 |
| 1002 | 200012 | 374 | background database time | background database time | 3072 |
| 1002 | 200013 | 375 | background database non-idle wait time | background database non-idle wait time | 3072 |
| 1002 | 200014 | 376 | background database idle wait time | background database idle wait time | 3072 |
| 1002 | 220001 | 388 | concurrency wait total time | concurrency wait total time | 3072 |
| 1002 | 220002 | 389 | user io wait total time | user io wait total time | 3072 |
| 1002 | 220003 | 390 | application wait total time | application wait total time | 3072 |
+--------+---------+------------+----------------------------------------+----------------------------------------+-------+
12 rows in set (0.184 sec)
パラメータ説明:
注意
background を含まないモニタリング項目には、バックグラウンドの部分が含まれません。例えば、idle wait time はフォアグラウンドセッションに関連する時間のみを記録し、background database idle wait time 関連の内容は含まれません。これら2つのモニタリング項目の統計値は互いに排他的です。
NAME |
説明 |
|
|---|---|---|
| DB time | フロントエンドプロセスがデータベース操作を実行した合計時間。CPU時間と非アイドル待機時間の合計値で、単位はマイクロ秒です。OceanBaseデータベースは、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあり、各状態にいた時間に応じて、Time Model関連の統計項目が累積されます。 | |
| DB CPU | フロントエンドプロセスが消費したCPU時間で、単位はマイクロ秒です。OceanBaseデータベースは、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあり、各状態にいた時間に応じて、Time Model関連の統計項目が累積されます。 | |
| background elapsed time | バックグラウンドプロセスが実行した合計時間で、単位はマイクロ秒です。OceanBaseデータベースは、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあり、各状態にいた時間に応じて、Time Model関連の統計項目が累積されます。 | |
| background cpu time | バックグラウンドプロセスが消費したCPU時間で、単位はマイクロ秒です。OceanBaseデータベースは、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあり、各状態にいた時間に応じて、Time Model関連の統計項目が累積されます。 | |
| non idle wait time | フロントエンドプロセスの非アイドル待機時間、すなわちセッションが待機状態にあるがアイドル待機ではない合計時間で、単位はマイクロ秒です。OceanBaseデータベースは、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあり、各状態にいた時間に応じて、Time Model関連の統計項目が累積されます。 | |
| idle wait time | フロントエンドプロセスのアイドル待機時間、すなわちセッションがアイドル待機状態にあった合計時間で、単位はマイクロ秒です。OceanBaseデータベースは、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあり、各状態にいた時間に応じて、Time Model関連の統計項目が累積されます。 | |
| background database time | バックグラウンドプロセスがデータベース操作を実行した合計時間で、単位はマイクロ秒です。OceanBaseデータベースは、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあり、各状態にいた時間に応じて、Time Model関連の統計項目が累積されます。 | |
| 3072 | background database non-idle wait time | バックグラウンドプロセスが非アイドル待機状態でデータベース操作を実行した時間で、単位はマイクロ秒です。OceanBaseデータベースは、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあり、各状態にいた時間に応じて、Time Model関連の統計項目が累積されます。 |
| 3072 | background database idle wait time | バックグラウンドプロセスがアイドル待機状態でデータベース操作を実行した時間。単位はマイクロ秒。OceanBaseデータベース内部では、Time Model関連の統計項目を定期的に更新します。スレッドがアクティブ状態にある場合、必ずON_CPU状態またはイベント待機状態にあります。各状態にいた時間に応じて、Time Model関連の統計項目に累積されます。 |
| concurrency wait total time | Concurrency並列カテゴリのイベント待機による待機時間の合計。例えば、リソースロックによる待機時間など。単位はマイクロ秒。OceanBaseデータベースで対応する比較イベントの累積集計により得られます。 | |
| user io wait total time | ユーザープロセスがI/O操作(データの読み取りやディスクへの書き込みなど)の完了を待つ合計時間。単位はマイクロ秒。OceanBaseデータベースで対応する比較イベントの累積集計により得られます。 | |
| application wait total time | ユーザーアプリケーションコードによって発生する待機時間の合計(例えば、行レベルロックや明示的なロックコマンドによるロック待機など)。単位はマイクロ秒。OceanBaseデータベースで対応する比較イベントの累積集計により得られます。 |
その他
GV$SYSSTAT ビュー以外にも、さまざまな観点からモニタリング項目を記述する豊富なビューがあります。
例えば、GV$OB_PROCESSLIST は、システム内の現在のセッション(アクティブ状態を含む)および実行中のSQL文を記述しています。また、SID、SQL_ID、TRANS_ID、TRACE_ID などの重要なフィールドも含まれており、エンドツーエンドトレースに役立ちます。
GV$OB_PROCESSLISTビューに基づいてアクティブセッションを照会する:obclient> select TENANT,SVR_IP,SVR_PORT,USER,HOST,COMMAND,STATE,INFO,SQL_ID,TRACE_ID from GV$OB_PROCESSLIST where STATE='ACTIVE' or null limit 10;実行結果は次のとおりです:
+--------+------------+----------+-----------+-------------------+---------+--------+-----------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+-----------------------------------+ | TENANT | SVR_IP | SVR_PORT | USER | HOST | COMMAND | STATE | INFO | SQL_ID | TRACE_ID | +--------+------------+----------+-----------+-------------------+---------+--------+-----------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+-----------------------------------+ | sys |xx.xx.xx.xx | 2882 | DBA_query | xx.xx.xx.xx:51588 | Query | ACTIVE | select TENANT,SVR_IP,SVR_PORT,USER,HOST,COMMAND,STATE,INFO,SQL_ID,TRACE_ID from GV$OB_PROCESSLIST where STATE='ACTIVE' or null limit 10 | D18F6AE855AD0D7478162DD8EF48C781 | YB4206008451-0005F55893CEA363-0-0 | +--------+------------+----------+-----------+-------------------+---------+--------+-----------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+-----------------------------------+ 1 row in set (0.04 sec)GV$OB_PROCESSLISTビューに基づいてUnit単位のアクティブセッション数を照会する:obclient> select tenant_id, tenant_name, svr_ip, case when cnt is null then 0 else cnt end as cnt from ( select DBA_OB_TENANTS.tenant_name, DBA_OB_TENANTS.tenant_id, svr_ip, cnt from DBA_OB_TENANTS left join ( select count(`state`='ACTIVE' OR NULL) as cnt, tenant as tenant_name, svr_ip from GV$OB_PROCESSLIST group by tenant,svr_ip ) t1 on DBA_OB_TENANTS.tenant_name = t1.tenant_name where DBA_OB_TENANTS.tenant_type!='META' ) t2;実行結果は次のとおりです:
+-----------+-----------------+-------------+------+ | tenant_id | tenant_name | svr_ip | cnt | +-----------+-----------------+-------------+------+ | 1 | sys | xx.xx.xx.xx | 0 | | 1 | sys | xx.xx.xx.xx | 0 | | 1 | sys | xx.xx.xx.xx | 0 | | 1002 | midas0_3790 | xx.xx.xx.xx | 0 | | 1002 | midas0_3790 | xx.xx.xx.xx | 0 | | 1002 | midas0_3790 | xx.xx.xx.xx | 0 | +-----------+-----------------+-------------+------+ 6 rows in set (0.05 sec)