このページは機械翻訳したものです。
socket_instances テーブルは MySQL サーバーへのアクティブな接続のリアルタイムスナップショットを提供します。 テーブルには、TCP/IP または Unix ソケットファイル接続ごとに 1 行含まれます。 このテーブルで使用可能な情報は、サーバーへのアクティブな接続のリアルタイムスナップショットを提供します。 (ソケット操作や送受信されたバイト数などのネットワークアクティビティーを含む、追加の情報はソケットサマリーテーブルで入手できます。セクション27.12.18.9「ソケットサマリーテーブル」を参照してください)。
mysql> SELECT * FROM performance_schema.socket_instances\G
*************************** 1. row ***************************
EVENT_NAME: wait/io/socket/sql/server_unix_socket
OBJECT_INSTANCE_BEGIN: 4316619408
THREAD_ID: 1
SOCKET_ID: 16
IP:
PORT: 0
STATE: ACTIVE
*************************** 2. row ***************************
EVENT_NAME: wait/io/socket/sql/client_connection
OBJECT_INSTANCE_BEGIN: 4316644608
THREAD_ID: 21
SOCKET_ID: 39
IP: 127.0.0.1
PORT: 55233
STATE: ACTIVE
*************************** 3. row ***************************
EVENT_NAME: wait/io/socket/sql/server_tcpip_socket
OBJECT_INSTANCE_BEGIN: 4316699040
THREAD_ID: 1
SOCKET_ID: 14
IP: 0.0.0.0
PORT: 50603
STATE: ACTIVE
ソケットインストゥルメントは形式 wait/io/socket/sql/ の名前を持ち、次のように使用されます。
socket_type
サーバーには、それがサポートする各ネットワークプロトコルの待機ソケットがあります。 TCP/IP または Unix ソケットファイル接続の待機ソケットに関連付けられているインストゥルメントは、それぞれ
server_tcpip_socketまたはserver_unix_socketのsocket_type値を持ちます。待機ソケットが接続を検出すると、サーバーは接続を、個別のスレッドによって管理される新しいソケットに転送します。 新しい接続スレッドのインストゥルメントは、
client_connectionのsocket_type値を持ちます。接続が終了すると、
socket_instances内のそれに対応する行が削除されます。
socket_instances テーブルにはこれらのカラムがあります。
-
EVENT_NAMEイベントを生成した
wait/io/socket/*インストゥルメントの名前。 これはsetup_instrumentsテーブルからのNAME値です。 セクション27.6「パフォーマンススキーマインストゥルメント命名規則」に説明するように、インストゥルメント名には複数の部分があり、階層を形成することがあります。 -
OBJECT_INSTANCE_BEGINこのカラムは一意にソケットを識別します。 この値はメモリー内のオブジェクトのアドレスです。
-
THREAD_IDサーバーによって割り当てられた内部スレッド識別子。 各ソケットは単一のスレッドによって管理されるため、各ソケットはスレッドにマップでき、スレッドはサーバープロセスにマップできます。
-
SOCKET_IDソケットに割り当てられている内部ファイルハンドル。
-
IPクライアントの IP アドレス。 この値は IPv4 または IPv6 アドレスのいずれか、または Unix ソケットファイル接続を示すブランクになります。
-
PORT0 から 65535 の範囲の TCP/IP ポート番号。
-
STATEIDLEまたはACTIVEのいずれかのソケットステータス。 アクティブなソケットの待機時間は、対応するソケットインストゥルメントを使用して追跡されます。 アイドルソケットの待機時間は、idleインストゥルメントを使用して追跡されます。ソケットはクライアントからのリクエストを待機している場合、アイドルになります。 ソケットがアイドルになると、ソケットを追跡している
socket_instances内のイベント行がACTIVEのステータスからIDLEに切り替わります。EVENT_NAME値はwait/io/socket/*のままになりますが、インストゥルメントのタイミングは一時停止されます。 代わりに、idleのEVENT_NAME値でevents_waits_currentテーブルにイベントが生成されます。次のリクエストを受信すると、
idleイベントが終了し、ソケットインスタンスがIDLEからACTIVEに切り替わり、ソケットインストゥルメントのタイミングが再開します。
socket_instances テーブルには次のインデックスがあります:
主キー (
OBJECT_INSTANCE_BEGIN)(
THREAD_ID) のインデックス(
SOCKET_ID) のインデックス(
IP、PORT) のインデックス
TRUNCATE TABLE は、socket_instances テーブルに対して許可されていません。
IP:PORT カラムの組み合わせの値は接続を識別します。 この組み合わせの値は、ソケットイベントの発生元の接続を識別するために、events_waits_ テーブルの xxxOBJECT_NAME カラムで使用されます。
Unix ドメインリスナーソケット (
server_unix_socket) の場合、ポートは 0 で IP は''です。Unix ドメインリスナー経由のクライアント接続 (
client_connection) の場合、ポートは 0 で IP は''です。TCP/IP サーバーリスナーソケット (
server_tcpip_socket) の場合、ポートは常にマスターポート (たとえば 3306) で、IP は常に0.0.0.0です。TCP/IP リスナー経由のクライアント接続 (
client_connection) の場合、ポートはサーバーが割り当てたものになりますが、0 にはなりません。 IP は発信元ホストの IP (ローカルホストの場合127.0.0.1または::1) です