本記事では、ODP上で指定したクライアントセッションの内部統計項目(SQLリクエスト応答数、SQLリクエスト応答サイズなど)を確認する方法について説明します。
手順
sysテナントとユーザーテナントはSHOW PROXYSESSION STATステートメントを使用して、ODPが指定したクライアントセッションの内部統計項目を確認します。
ODP接続方式でOceanBaseデータベースに接続します。
接続例:
obclient -h10.xx.xx.xx -uusername@obtenant#obdemo -P2883 -p****** -c -A oceanbaseODP接続方式でデータベースに接続する操作手順の詳細については、OBClientを使用してOceanBaseテナントに接続する(MySQLモード)およびOBClientを使用してOceanBaseテナントに接続する(Oracleモード)を参照してください。
ODPが指定したクライアントセッションの内部統計項目を確認します。
SHOW PROXYSESSION STAT id LIKE 'xx';パラメータ説明:
idはcs_idまたはconnection_idのいずれかであり、表示結果は同じです。cs_idはODP内部で各クライアントに付与されたid番号であり、connection_idはOceanBaseデータベース全体で各クライアントに付与されたid番号です。MySQLモードの
connection_idはSELECT CONNECTION_ID();ステートメントで取得し、Oracleモードのconnection_idはSHOW FULL PROCESSLIST;ステートメントで取得します。LIKEはあいまい一致を表し、'%'と'_'をサポートします。
例:
MySQLモードOracleモードcs_idまたはconnection_idを取得します。以下のステートメントを実行して
cs_idを取得します。SHOW PROXYSESSION;次のような結果が返されます。戻り値の
Idがcs_idです。+----------------------+-------+----------+----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ | proxy_sessid | Id | Cluster | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid | using_ssl | +----------------------+-------+----------+----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ | 12402504630519660562 | 11 | test420 | mysql001 | root | 100.xx.xx.xx:48056 | NULL | 0 | 1 | MCS_ACTIVE_READER | 76286 | 76286 | 0 | +----------------------+-------+----------+----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ 1 row in set以下のステートメントを実行して
connection_idを取得します。SELECT CONNECTION_ID();次のような結果が返されます。
+-----------------+ | CONNECTION_ID() | +-----------------+ | 3221597019 | +-----------------+ 1 row in set内部統計項目を確認します。
SHOW PROXYSESSION STAT 11 LIKE '%time%';または
SHOW PROXYSESSION STAT 3221597019 LIKE '%time%';実行結果は次のとおりです:
+-------------------------------------------+-------+ | stat_name | value | +-------------------------------------------+-------+ | total_transactions_time | 0 | | total_user_transactions_time | 0 | | total_client_request_read_time | 0 | | total_client_response_write_time | 0 | | total_client_request_analyze_time | 0 | | total_client_transaction_idle_time | 0 | | total_ok_packet_trim_time | 0 | | total_server_process_request_time | 0 | | total_server_response_read_time | 0 | | total_server_response_analyze_time | 0 | | total_send_saved_login_time | 0 | | total_send_all_session_vars_time | 0 | | total_send_use_database_time | 0 | | total_send_changed_session_vars_time | 0 | | total_send_changed_session_user_vars_time | 0 | | total_send_last_insert_id_time | 0 | | total_send_start_trans_time | 0 | | total_pl_lookup_time | 0 | | total_congestion_control_time | 0 | | total_server_connect_time | 0 | +-------------------------------------------+-------+ 20 rows in set
cs_idまたはconnection_idを取得します。以下のステートメントを実行して
cs_idを取得します。SHOW PROXYSESSION;結果は次のようになります。結果の
Idがcs_idです。+----------------------+-------+----------+-----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ | proxy_sessid | Id | Cluster | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid | using_ssl | +----------------------+-------+----------+-----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ | 12402504630519660558 | 65543 | test420 | oracle001 | sys | 100.xx.xx.xx:59648 | SYS | 0 | 1 | MCS_ACTIVE_READER | 76286 | 76286 | 0 | +----------------------+-------+----------+-----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ 1 row in set以下のステートメントを実行して
connection_idを取得します。SHOW FULL PROCESSLIST;結果は次のようになります。結果の
idがconnection_idです。+------------+------+-----------+---------------------+------+---------+------+--------+-----------------------+---------------+------+ | ID | USER | TENANT | HOST | DB | COMMAND | TIME | STATE | INFO | IP | PORT | +------------+------+-----------+---------------------+------+---------+------+--------+-----------------------+---------------+------+ | 3221552558 | SYS | oracle001 | 172.xx.xx.xx:45343 | SYS | Query | 0 | ACTIVE | SHOW FULL PROCESSLIST | 172.xx.xx.64 | 2881 | +------------+------+-----------+---------------------+------+---------+------+--------+-----------------------+---------------+------+ 1 row in set内部統計項目を確認します。
SHOW PROXYSESSION STAT 65543 LIKE '%time%';または
SHOW PROXYSESSION STAT 3221552558 LIKE '%time%';実行結果は次のとおりです:
+-------------------------------------------+-------+ | stat_name | value | +-------------------------------------------+-------+ | total_transactions_time | 0 | | total_user_transactions_time | 0 | | total_client_request_read_time | 0 | | total_client_response_write_time | 0 | | total_client_request_analyze_time | 0 | | total_client_transaction_idle_time | 0 | | total_ok_packet_trim_time | 0 | | total_server_process_request_time | 0 | | total_server_response_read_time | 0 | | total_server_response_analyze_time | 0 | | total_send_saved_login_time | 0 | | total_send_all_session_vars_time | 0 | | total_send_use_database_time | 0 | | total_send_changed_session_vars_time | 0 | | total_send_changed_session_user_vars_time | 0 | | total_send_last_insert_id_time | 0 | | total_send_start_trans_time | 0 | | total_pl_lookup_time | 0 | | total_congestion_control_time | 0 | | total_server_connect_time | 0 | +-------------------------------------------+-------+ 20 rows in set
各フィールドの意味は以下の表のとおりです:
フィールド説明stat_name 内部統計項目の名前 value 内部統計項目の値 内部統計項目とその説明は以下のとおりです:
フィールド説明total_transaction_count トランザクションの総数 total_user_transaction_count ODPユーザーによるトランザクション実行数 total_query_count ユーザーによるリクエスト実行数 total_client_request_reread_count ODPがユーザーリクエストを読み直した回数 total_server_response_reread_count ODPがOBServerノードから返されたデータを読み直した回数 client_request_total_size クライアントのリクエストデータサイズの合計 client_response_total_size クライアントが返すデータサイズの合計 server_request_total_size OBServerノードに送信されたリクエストデータサイズの合計 server_response_total_size OBServerノードが返すデータサイズの合計 total_transactions_time トランザクション実行の合計時間 total_user_transactions_time ユーザーによるトランザクション実行の合計時間 total_client_request_read_time クライアントのリクエスト読み取りの合計時間 total_client_response_write_time クライアントへのデータ返送の合計時間 total_client_request_analyze_time クライアントメッセージ解析の合計時間 total_client_transaction_idle_time ユーザートランザクション実行中のアイドル時間の合計 total_server_process_request_time データベースのリクエスト処理合計時間 total_server_response_read_time OBServerノードから返されたデータの読み取り合計時間 total_server_response_analyze_time ODPがユーザーサーバーから返されたデータを解析した合計時間 total_send_saved_login_time OBServerノードへのLOGINメッセージ送信合計時間 total_send_all_session_vars_time OBServerノードへのSession変数同期合計時間 total_send_use_database_time OBServerノードへのuse databaseコマンド送信合計時間 total_send_changed_session_vars_time OBServerノードへのSession変数変更合計時間 total_send_last_insert_id_time OBServerノードへのlast_insert_id同期合計時間 total_send_start_trans_time OBServerノードへのトランザクション開始同期合計時間 total_pl_lookup_time ルーティングの合計時間 total_server_connect_time ODPとOBServerノード間の接続確立合計時間 client_requests 合計リクエスト数 client_large_requests 大型リクエスト数 client_internal_requests 内部リクエスト数 local_session_state_requests ODP内部リクエスト数 client_missing_pk_requests 今回のリクエストでルーティング処理が不要で、前回のリクエストの接続を使用する必要があるリクエスト数の統計 client_completed_requests 完了リクエスト数 client_connection_abort_count 接続および中断統計 client_select_requests SELECTリクエストの合計数client_insert_requests INSERTリクエストの合計数client_update_requests UPDATEリクエストの合計数client_delete_requests DELETEリクエストの合計数client_other_requests その他リクエストの合計数 request_size_100_count リクエストサイズが [0,100) の範囲の数 request_size_1K_count リクエストサイズが [100,1K) の範囲の数 request_size_3K_count リクエストサイズが [1K,3K) の範囲の数 request_size_5K_count リクエストサイズが [3K,5K) の範囲の数 request_size_10K_count リクエストサイズが [5K,10K) の範囲の数 request_size_1M_count リクエストサイズが [10K,1M) の範囲の数 request_size_inf_count リクエストサイズが [1M,+∞) の範囲の数 response_size_100_count レスポンスサイズが [0,100) の範囲の数 response_size_1K_count レスポンスサイズが [100,1K) の範囲の数 response_size_3K_count レスポンスサイズが [1K,3K) の範囲の数 response_size_5K_count レスポンスサイズが [3K,5K) の数 response_size_10K_count レスポンスサイズが [5K,10K) の数 response_size_1M_count レスポンスサイズが [10K,1M) の数 response_size_inf_count レスポンスサイズが [1M,+∞) の数 client_speed_bytes_per_sec_100 1秒間のリクエスト速度が [0,100) の数 client_speed_bytes_per_sec_1K 1秒間のリクエスト速度が [100,1K) の数 client_speed_bytes_per_sec_10K 1秒間のリクエスト速度が [1K,10K) の数 client_speed_bytes_per_sec_100K 1秒間のリクエスト速度が [10K,100K) の数 client_speed_bytes_per_sec_1M 1秒間のリクエスト速度が [100K,1M) の数 client_speed_bytes_per_sec_10M 1秒間のリクエスト速度が [1M,10M) の数 client_speed_bytes_per_sec_100M 1秒間のリクエスト速度が [10 M,+∞) の数 server_speed_bytes_per_sec_100 1秒間のレスポンス速度が [0,100) の数 server_speed_bytes_per_sec_1K 1 KB未満の応答速度で接続されたクライアント数 server_speed_bytes_per_sec_10K 1 KB以上10 KB未満の応答速度で接続されたクライアント数 server_speed_bytes_per_sec_100K 10 KB以上100 KB未満の応答速度で接続されたクライアント数 server_speed_bytes_per_sec_1M 100 KB以上1 MB未満の応答速度で接続されたクライアント数 server_speed_bytes_per_sec_10M 1 MB以上10 MB未満の応答速度で接続されたクライアント数 server_speed_bytes_per_sec_100M 10 MB以上の応答速度で接続されたクライアント数 server_connect_count OBServerノードへの接続総回数 server_connect_retries OBServerノードへの接続再試行総回数 server_pl_lookup_count ルーティング処理総回数 server_pl_lookup_retries ルーティング処理再試行総回数 broken_server_connections OBServerノードとの接続が切断された回数 server_requests OBServerノードへのリクエスト送信総回数 server_responses OBServerノードからの応答受信総回数 server_error_responses OBServerノードからのERROR応答受信総回数 server_resultset_responses OBServerノードからのresultset応答受信総回数 server_ok_responses OBServerノードからのOK応答受信総回数 server_other_responses OBServerノードからのその他の応答受信総回数 send_saved_login_requests OBServerノードへのLOGINメッセージ送信総回数 send_all_session_vars_requests OBServerノードへの全セッション変数同期メッセージ送信総回数 send_use_database_requests OBServerノードへのuse databaseメッセージ送信総回数 send_changed_session_vars_requests OBServerノードへの一部セッション変数メッセージ送信総回数 send_last_insert_id_requests OBServerノードへのlast insert idメッセージ送信総回数 send_start_trans_requests OBServerノードへのトランザクション開始メッセージ送信総回数 vip_to_tenant_cache_hit パブリッククラウド上のVIP情報検索ヒット回数 vip_to_tenant_cache_miss パブリッククラウド上のVIP情報検索ミス回数