MySQL 5.6 Reference Manual Including MySQL NDB Cluster 7.3-7.4 Reference Guide
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
provides a real-time snapshot of the active connections to the
server. (Additional information is available in socket summary
tables, including network activity such as socket operations
and number of bytes transmitted and received; see
Section 22.12.9.7, “Socket Summary Tables”).
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
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
NAME
value from the
setup_instruments
table.
Instrument names may have multiple parts and form a
hierarchy, as discussed in
Section 22.6, “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.
TRUNCATE TABLE
is not permitted
for the socket_instances
table.
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)