説明
V4.4.2系列では、このビューはV4.4.2 BP4で導入されました。
機能の概要
このビューは、すべてのOBServerノードにおける現在のテナントのJava UDFサンドボックスの状態を表示します。サンドボックスの各世代のライフサイクル、通信チャネルプール、サンドボックスプロセスとそのJVMのリソースに関する情報などを確認できます。
利用時の注意点は以下のとおりです。
- 構成パラメータ
ob_enable_java_udf_sandboxを有効にすると、Java UDFは独立したサンドボックスプロセスで実行されます。各行は1世代(Generation)のサンドボックスに対応し、各世代のサンドボックスは1つのサンドボックスJVMプロセスに対応します。 - このビューは既存のサンドボックスのみを表示します。このビューをクエリしてもサンドボックスの作成はトリガーされません。
INSTANCE_COUNTからLAST_FORCE_KILL_REASONまではテナントレベルの集計情報であり、同一テナント内の各行の値は同じです。- まだ正常に収集できていない、または取得できない指標はNULLとして表示され、実際の値が
0の指標と区別されます。
フィールド説明
フィールド名 |
型 |
NULL許容 |
説明 |
|---|---|---|---|
| SVR_IP | varchar(46) | NO | OBServerノードのIPアドレス。 |
| SVR_PORT | bigint(20) | NO | OBServerノードのポート番号。 |
| TENANT_ID | bigint(20) | NO | テナントID。 |
| GENERATION_ID | bigint(20) | NO | サンドボックスの世代(Generation)を識別するID。各世代に1つのサンドボックスJVMプロセスが対応します。 |
| GENERATION_STATE | varchar(32) | YES | その世代のサンドボックスのライフサイクル状態:
|
| STATUS | varchar(32) | NO | その世代のサンドボックスの実行状態:
|
| PROCESS_PID | bigint(20) | YES | サンドボックスJVMプロセスのプロセスID。 |
| START_TIME | timestamp(6) | YES | その世代のサンドボックスの起動時刻。 |
| UPTIME_MS | bigint(20) | YES | その世代のサンドボックスの稼働時間。単位はミリ秒。 |
| DRAIN_REASON | varchar(32) | YES | その世代のサンドボックスがドレイン状態になった原因。GENERATION_STATEがDRAININGの場合にのみ値が設定されます。
|
| DRAIN_DEADLINE | timestamp(6) | YES | ドレインの期限。GENERATION_STATEがDRAININGの場合にのみ値が設定されます。期限までに処理中のリクエストが完了しない場合、サンドボックスプロセスは強制終了されます。 |
| FORCE_KILLED | tinyint(4) | YES | その世代のサンドボックスプロセスが強制的に終了されたかどうか:
|
| FORCE_KILL_REASON | varchar(32) | YES | 強制終了の原因。値はDRAIN_REASONと同じです。FORCE_KILLEDが1の場合にのみ値が設定されます。 |
| INSTANCE_COUNT | bigint(20) | YES | そのテナントの現在のサンドボックスインスタンス数。 |
| MAX_GENERATION_COUNT | bigint(20) | YES | そのテナントで同時に存在できるサンドボックス世代数の上限。 |
| DRAINING_GENERATION_COUNT | bigint(20) | YES | そのテナントで現在ドレイン状態にあるサンドボックス世代数。 |
| DEFERRED_GENERATION_COUNT | bigint(20) | YES | そのテナントで遅延回収を待っているサンドボックス世代数。 |
| START_COUNT | bigint(20) | YES | そのテナントのサンドボックスの累計起動回数。 |
| RESTART_COUNT | bigint(20) | YES | そのテナントのサンドボックスの累計再起動回数。初回起動は含まれません。 |
| START_FAILURE_COUNT | bigint(20) | YES | そのテナントのサンドボックスの累計起動失敗回数。 |
| LAST_START_ERROR_CODE | bigint(20) | YES | そのテナントの直近のサンドボックス起動失敗時のエラーコード。起動失敗が発生していない場合はNULL。 |
| LAST_START_ERROR_TIME | timestamp(6) | YES | そのテナントでサンドボックスの起動に最後に失敗した時刻。起動失敗が発生していない場合はNULL。 |
| ROLLOVER_COUNT | bigint(20) | YES | そのテナントのサンドボックスの累計置換(Rollover)回数。新しい世代のサンドボックスで古いサンドボックスを置き換えた回数です。 |
| ROLLOVER_COUNT_60S | bigint(20) | YES | そのテナントの直近60秒間のサンドボックス置換回数。 |
| LAST_ROLLOVER_REASON | varchar(32) | YES | そのテナントの直近のサンドボックス置換の原因。値はDRAIN_REASONと同じです。置換が発生していない場合はNULL。 |
| LAST_ROLLOVER_TIME | timestamp(6) | YES | そのテナントで最後にサンドボックスが置き換えられた時刻。置換が発生していない場合はNULL。 |
| ROLLOVER_COOLDOWN_REMAIN_US | bigint(20) | YES | サンドボックス置換のクールダウン期間の残り時間。単位はマイクロ秒。短期間に置換回数が多すぎるとクールダウン期間に入ります。クールダウン期間外の場合は0です。 |
| FORCE_KILL_COUNT | bigint(20) | YES | そのテナントのサンドボックスプロセスが強制的に終了された累計回数。 |
| LAST_FORCE_KILL_REASON | varchar(32) | YES | そのテナントの直近のサンドボックスプロセス強制終了の原因。値はDRAIN_REASONと同じです。強制終了が発生していない場合はNULL。 |
| CHANNEL_POOL_CAPACITY | bigint(20) | YES | OBServerとサンドボックスプロセス間の通信チャネルプールの容量。 |
| FREE_CHANNEL_COUNT | bigint(20) | YES | アイドル状態の通信チャネル数。 |
| ACQUIRED_CHANNEL_COUNT | bigint(20) | YES | 使用中の通信チャネル数。 |
| QUARANTINED_CHANNEL_COUNT | bigint(20) | YES | 隔離状態の通信チャネル数。 |
| REAPING_CHANNEL_COUNT | bigint(20) | YES | 回収中の通信チャネル数。 |
| DISCARDED_CHANNEL_COUNT | bigint(20) | YES | 既に破棄された通信チャネル数。 |
| DISCARDED_CHANNEL_THRESHOLD | bigint(20) | YES | 通信チャネルの破棄数のしきい値。 |
| CHANNEL_ROLLOVER_REQUIRED | varchar(3) | YES | 通信チャネル異常により、その世代のサンドボックスを置き換える必要があるかどうか:
|
| CHANNEL_ACQUIRE_FAIL_COUNT | bigint(20) | YES | 通信チャネル取得失敗の累計回数。 |
| CHANNEL_QUARANTINE_COUNT | bigint(20) | YES | 通信チャネルが隔離された累計回数。 |
| CHANNEL_RECOVERED_COUNT | bigint(20) | YES | 通信チャネルが隔離状態から回復した累計回数。 |
| CHANNEL_DISCARD_EVENT_COUNT | bigint(20) | YES | 通信チャネルが破棄された累計回数。 |
| INFLIGHT_REQUEST_COUNT | bigint(20) | YES | その世代のサンドボックスが現在処理中のリクエスト数。 |
| GENERATION_TIMEOUT_COUNT | bigint(20) | YES | その世代のサンドボックスのリクエストタイムアウト回数。 |
| GENERATION_OOM_COUNT | bigint(20) | YES | その世代のサンドボックスで発生したOOMの回数。 |
| GENERATION_LAST_OOM_TIME | timestamp(6) | YES | この世代のサンドボックスで最後にOOMが発生した時刻。 |
| LAST_REQUEST_TIME | timestamp(6) | YES | その世代のサンドボックスが直近にリクエストを受信した時刻。 |
| MAX_INFLIGHT_DEADLINE | timestamp(6) | YES | この世代のサンドボックスで処理中のリクエストのうち、最も遅い期限。 |
| PROCESS_RSS_BYTES | bigint(20) | YES | サンドボックスプロセスの常駐メモリ(RSS)サイズ。単位はバイトです。 |
| PROCESS_CPU_TIME_US | bigint(20) | YES | サンドボックスプロセスの累積CPU時間。単位はマイクロ秒です。 |
| PROCESS_CPU_USAGE_PERCENT | double | YES | サンドボックスプロセスのCPU使用率(%)。 |
| PROCESS_STATUS | varchar(32) | YES | サンドボックスプロセスの状態:
|
| OS_PROCESS_STATE | varchar(4) | YES | オペレーティングシステムにおけるサンドボックスプロセスの状態。Linuxプロセスの状態と一致します。例:R(実行)、S(割り込み可能なスリープ)、D(割り込み不可能なスリープ)、Z(ゾンビ)、T(停止)。 |
| PROCESS_MEMORY_LIMITED | tinyint(4) | YES | サンドボックスプロセスがメモリ制限状態にあるかどうか:
|
| PROCESS_RESOURCE_ERROR_CODE | bigint(20) | YES | 最後にサンドボックスプロセスのリソース情報を収集した際のエラーコードです。 |
| PROCESS_RESOURCE_SNAPSHOT_TIME | timestamp(6) | YES | 最後にサンドボックスプロセスのリソース情報を正常に収集した時刻です。 |
| MONITOR_STATUS | varchar(32) | YES | サンドボックスJVMによる監視データの報告状況。
|
| MONITOR_MESSAGE_VERSION | bigint(20) | YES | モニタリングレポートメッセージのバージョン番号。 |
| MONITOR_REPORT_SEQ | bigint(20) unsigned | YES | 最終モニタリングレポートのシーケンス番号。 |
| MONITOR_DROPPED_REPORT_COUNT | bigint(20) | YES | 破棄されたモニタリングレポートメッセージの数。 |
| MONITOR_ERROR_CODE | bigint(20) | YES | モニタリングレポートのエラーコード。エラーなしの場合はNULL。 |
| LAST_MONITOR_ERROR_TIME | timestamp(6) | YES | モニタリングレポートで最後にエラーが発生した時刻。 |
| LAST_MONITOR_MESSAGE_TIME | timestamp(6) | YES | 最後にモニタリングレポートを受信した時刻。 |
| JVM_START_TIME | timestamp(6) | YES | サンドボックスJVMの起動時刻。 |
| JVM_UPTIME_MS | bigint(20) | YES | サンドボックスJVMの稼働時間、単位はミリ秒。 |
| MONITOR_BRIDGE_VERSION | bigint(20) | YES | サンドボックスJVMモニタリングインターフェースのバージョン番号。 |
| HEAP_USED_BYTES | bigint(20) | YES | サンドボックスJVMヒープメモリの使用サイズ、単位はバイト。 |
| HEAP_COMMITTED_BYTES | bigint(20) | YES | サンドボックスJVMヒープメモリのコミット済みサイズ、単位はバイト。 |
| HEAP_MAX_BYTES | bigint(20) | YES | サンドボックスJVMヒープメモリの最大利用可能サイズ、単位はバイト。 |
| YOUNG_USED_BYTES | bigint(20) | YES | サンドボックスJVMヤング世代の使用サイズ、単位はバイト。 |
| OLD_USED_BYTES | bigint(20) | YES | サンドボックスJVMオールド世代の使用サイズ、単位はバイト。 |
| METASPACE_USED_BYTES | bigint(20) | YES | サンドボックスJVMメタスペースの使用サイズ、単位はバイト。 |
| METASPACE_COMMITTED_BYTES | bigint(20) | YES | サンドボックスJVMメタスペースのコミット済みサイズ、単位はバイト。 |
| METASPACE_MAX_BYTES | bigint(20) | YES | サンドボックスJVMメタスペースの最大利用可能サイズ、単位はバイト。 |
| CODE_CACHE_USED_BYTES | bigint(20) | YES | サンドボックスJVMコードキャッシュの使用サイズ、単位はバイト。 |
| DIRECT_BUFFER_USED_BYTES | bigint(20) | YES | サンドボックスJVMダイレクトバッファの使用メモリサイズ、単位はバイト。 |
| DIRECT_BUFFER_COUNT | bigint(20) | YES | サンドボックスJVMダイレクトバッファの数。 |
| GC_COUNT | bigint(20) | YES | サンドボックスJVMのGCの累計回数。 |
| GC_TIME_MS | bigint(20) | YES | サンドボックスJVMのGCの累計時間、単位はミリ秒。 |
| YOUNG_GC_COUNT | bigint(20) | YES | サンドボックスJVMでヤング世代のGCを実行した累計回数。 |
| YOUNG_GC_TIME_MS | bigint(20) | YES | サンドボックスJVMでヤング世代のGCを実行した累計時間、単位はミリ秒。 |
| MAJOR_GC_COUNT | bigint(20) | YES | サンドボックスJVMのMajor GC(オールド世代のGC)の累計回数。 |
| MAJOR_GC_TIME_MS | bigint(20) | YES | サンドボックスJVMのMajor GCの累計時間、単位はミリ秒。 |
| THREAD_COUNT | bigint(20) | YES | サンドボックスJVMの現在のスレッド数。 |
| PEAK_THREAD_COUNT | bigint(20) | YES | サンドボックスJVMのピークスレッド数。 |
| OPEN_FD_COUNT | bigint(20) | YES | サンドボックスプロセスが現在開いているファイルディスクリプタの数。 |
| MAX_FD_COUNT | bigint(20) | YES | サンドボックスプロセスが開けるファイルディスクリプタの上限数。 |
| COLLECT_ERROR_CODE | bigint(20) | YES | サンドボックスJVMのリソース情報を直近に収集した際のエラーコード。0は収集の成功を示します。 |
| COLLECT_COST_US | bigint(20) | YES | サンドボックスJVMのリソース情報の直近の収集にかかった時間(マイクロ秒)。 |
| LAST_COLLECT_ATTEMPT_TIME | timestamp(6) | YES | サンドボックスJVMのリソース情報の収集を最後に試みた時刻。 |
| SNAPSHOT_TIME | timestamp(6) | YES | 最後にサンドボックスJVMリソースデータを正常にレポートした時刻。 |
| SNAPSHOT_AGE_US | bigint(20) | YES | 最後にサンドボックスJVMリソースデータを正常にレポートしてから経過した時間、単位はマイクロ秒。 |
クエリ例
現在のテナントにおけるすべてのOBServerノード上のJava UDFサンドボックスの状態とメモリ使用状況を照会します。
obclient> SELECT SVR_IP, TENANT_ID, GENERATION_ID, GENERATION_STATE, STATUS, PROCESS_PID, PROCESS_RSS_BYTES, HEAP_USED_BYTES, MONITOR_STATUS FROM oceanbase.GV$OB_JAVA_SANDBOX_STATUS;