socket_instances表
该socket_instances
表提供了与MySQL服务器的活动连接的实时快照。该表每个TCP / IP或Unix套接字文件连接包含一行。该表中可用的信息提供了到服务器的活动连接的实时快照。(套接字摘要表中提供了其他信息,包括网络活动,例如套接字操作以及发送和接收的字节数;请参见“套接字摘要表”)。
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套接字文件连接的侦听套接字关联的工具的
socket_type
值分别为server_tcpip_socket
或server_unix_socket
。 - 当侦听套接字检测到连接时,服务器会将连接转移到由单独线程管理的新套接字。新连接线程的工具的
socket_type
值为client_connection
。 - 连接终止时,将
socket_instances
删除与之对应的行。
该socket_instances
表包含以下列:
EVENT_NAME
wait/io/socket/*
产生事件的仪器的名称。这是表中的NAME
值setup_instruments
。仪器名称可能具有多个部分,并形成一个层次结构,如“性能模式仪器命名约定”中所述。OBJECT_INSTANCE_BEGIN
此列唯一标识套接字。该值是对象在内存中的地址。
THREAD_ID
服务器分配的内部线程标识符。每个套接字由单个线程管理,因此每个套接字可以映射到一个线程,该线程可以映射到服务器进程。
SOCKET_ID
分配给套接字的内部文件句柄。
IP
客户端IP地址。该值可以是IPv4或IPv6地址,也可以是空白以指示Unix套接字文件连接。
PORT
TCP / IP端口号,范围为0到65535。
STATE
套接字状态为
IDLE
或ACTIVE
。使用相应的插座仪器跟踪活动插座的等待时间。使用idle
仪器跟踪空闲插槽的等待时间。如果套接字正在等待客户端的请求,则它是空闲的。当套接字空闲时,
socket_instances
跟踪该套接字的事件行将从状态切换ACTIVE
为IDLE
。该EVENT_NAME
值保持不变wait/io/socket/*
,但仪器的计时已暂停。而是在events_waits_current
表中生成一个EVENT_NAME
值为的事件idle
。收到下一个请求时,
idle
事件终止,套接字实例从切换IDLE
为ACTIVE
,套接字工具的计时恢复。
该socket_instances
表具有以下索引:
- (
OBJECT_INSTANCE_BEGIN
)上的主键 - 在(
THREAD_ID
)上的索引 - 在(
SOCKET_ID
)上的索引 - 在(
IP
,PORT
)上的索引
TRUNCATE TABLE
不允许用于该socket_instances
表。
的IP:PORT
列组合值标识的连接。OBJECT_NAME
在表的列中使用此组合值来标识套接字事件来自的连接:events_waits_xxx
- 对于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是发起主机(127.0.0.1
或::1
本地主机)的IP。