本記事では、ODP上で指定されたクライアントセッションの内部統計項目(SQLリクエスト応答数、SQLリクエスト応答サイズなど)を確認する方法について説明します。
操作手順
sysテナントとユーザーテナントは、SHOW PROXYSESSION STATステートメントを使用してODPが指定するClientセッションの内部統計項目を確認します。
ODP経由でOceanBaseデータベースに接続します。
接続例は以下のとおりです:
obclient -h10.xx.xx.xx -uusername@obtenant#obdemo -P2883 -p****** -c -A oceanbaseODP経由でデータベースに接続するためのより詳細な操作ガイドについては、OBClientを使用してOceanBaseテナントに接続する(MySQLモード)およびOBClientを使用してOceanBaseテナントに接続する(Oracleモード)を参照してください。
ODPが指定するClientセッションの内部統計項目を確認します。
SHOW PROXYSESSION STAT id LIKE 'xx';パラメータの説明:
idはcs_idまたはconnection_idのいずれかであり、表示結果は同じです。cs_idはODP内部で各Clientに付与されるid番号であり、connection_idはOceanBaseデータベース全体で各Clientに付与される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がそのユーザーServerから返されるデータを解析する総時間 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秒あたりのレスポンス速度が [100,1K) の間の数 server_speed_bytes_per_sec_10K 1秒あたりのレスポンス速度が [1K,10K) の間の数 server_speed_bytes_per_sec_100K 1秒あたりのレスポンス速度が [10K,100K) の間の数 server_speed_bytes_per_sec_1M 1秒あたりのレスポンス速度が [100K,1M) の間の数 server_speed_bytes_per_sec_10M 1秒あたりのレスポンス速度が [1M,10M) の間の数 server_speed_bytes_per_sec_100M 1秒あたりのレスポンス速度が [10 M,+∞) の間の数 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ノードに送信した全Session変数同期の総回数 send_use_database_requests OBServerノードに送信したuse databaseの総回数 send_changed_session_vars_requests OBServerノードに送信した一部Session変数の総回数 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情報検索ミス回数