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
21.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)
The socket_instances
table was
added in MySQL 5.6.3.