|
Spec-Zone .ru
спецификации, руководства, описания, API
|
The socket_instances table
provides a real-time snapshot of the active connections to the MySQL server. The table contains one row per
TCP/IP or Unix socket file connection. Information available in this table includes network activity such as
socket instances, socket operations, and number of bytes transmitted and received.
mysql> SELECT * FROM
socket_instances\G*************************** 1. row *************************** EVENT_NAME: wait/io/socket/sql/server_unix_socketOBJECT_INSTANCE_BEGIN: 4316619408 THREAD_ID: 1 SOCKET_ID: 16 IP: PORT: 0 STATE: ACTIVE*************************** 2. row *************************** EVENT_NAME: wait/io/socket/sql/client_connectionOBJECT_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_socketOBJECT_INSTANCE_BEGIN: 4316699040 THREAD_ID: 1 SOCKET_ID: 14 IP: 0.0.0.0 PORT: 50603 STATE: ACTIVE
Socket instruments have names of the form wait/io/socket/sql/ and are used like this:socket_type
The server has a listening socket for each network protocol that it supports. The
instruments associated with listening sockets for TCP/IP or Unix socket file connections have a socket_type value of server_tcpip_socket
or server_unix_socket, respectively.
When a listening socket detects a connection, the server transfers the connection
to a new socket managed by a separate thread. The instrument for the new connection thread has a socket_type value of client_connection.
When a connection terminates, the row in socket_instances corresponding to it is deleted.
The socket_instances table has
these columns:
EVENT_NAME
The name of the wait/io/socket/* instrument that produced the event.
This is a setup_instruments.NAME value. Instrument names have multiple
parts and form a hierarchy, as discussed in Section
20.4, "Performance Schema Instrument Naming Conventions".
OBJECT_INSTANCE_BEGIN
This column uniquely identifies the socket. The value is the address of an object in memory.
THREAD_ID
The internal thread identifier assigned by the server. Each socket is managed by a single thread, so each socket can be mapped to a thread which can be mapped to a server process.
SOCKET_ID
The internal file handle assigned to the socket.
IP
The client IP address. The value may be either an IPv4 or IPv6 address, or blank to indicate a Unix socket file connection.
PORT
The TCP/IP port number, in the range from 0 to 65535.
STATE
The socket status, either IDLE or ACTIVE.
Wait times for active sockets are tracked using the corresponding socket instrument. Wait times for
idle sockets are tracked using the idle instrument.
A socket is idle if it is waiting for a request from the client. When a socket becomes idle, the
event row in socket_instances that is tracking the socket switches from a
status of ACTIVE to IDLE. The EVENT_NAME value remains wait/io/socket/*, but timing for the instrument is suspended.
Instead, an event is generated in the events_waits_current table with an EVENT_NAME
value of idle.
When the next request is received, the idle event terminates, the
socket instance switches from IDLE to ACTIVE, and timing of the socket instrument resumes.
The IP:PORT column combination value identifies the connection. This combination
value is used in the OBJECT_NAME column of the events_waits_ tables, to identify
the connection from which socket events come:xxx
For the Unix domain listener socket (server_unix_socket), the port is 0, and the IP is ''.
For client connections via the Unix domain listener (client_connection),
the port is 0, and the IP is ''.
For the TCP/IP server listener socket (server_tcpip_socket), the port is always the master port (for example, 3306),
and the IP is always 0.0.0.0.
For client connections via the TCP/IP listener (client_connection),
the port is whatever the server assigns, but never 0. The IP is the IP of the originating host (127.0.0.1 or ::1 for the local host)