Documentation Home

27.12.3.5 socket_instances 表

socket_instances表提供了与 MySQL 服务器的活动连接的实时快照。该表包含每个 TCP/IP 或 Unix 套接字文件连接一行。此表中可用的信息提供了与服务器的活动连接的实时快照。(附加信息在套接字摘要表中可用,包括网络活动,例如套接字操作和传输和接收的字节数;请参阅 第 27.12.20.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

  1. 服务器为其支持的每个网络协议都有一个侦听套接字。与用于 TCP/IP 或 Unix 套接字文件连接的侦听套接字关联的工具分别具有或 socket_type 值。 server_tcpip_socketserver_unix_socket

  2. 当侦听套接字检测到连接时,服务器会将连接传输到由单独线程管理的新套接字。新连接螺纹的仪器socket_type值为client_connection.

  3. 当连接终止时, socket_instances 与其对应的行将被删除。

socket_instances表有以下列:

  • EVENT_NAME

    wait/io/socket/* 产生事件 的工具的名称。这是表中的 NAMEsetup_instruments。仪器名称可能有多个部分并形成一个层次结构,如 第 27.6 节“性能模式仪器命名约定”中所述。

  • OBJECT_INSTANCE_BEGIN

    此列唯一标识套接字。该值是对象在内存中的地址。

  • THREAD_ID

    服务器分配的内部线程标识符。每个套接字都由一个线程管理,因此每个套接字都可以映射到一个线程,该线程可以映射到一个服务器进程。

  • SOCKET_ID

    分配给套接字的内部文件句柄。

  • IP

    客户端 IP 地址。该值可以是 IPv4 或 IPv6 地址,也可以是空白以指示 Unix 套接字文件连接。

  • PORT

    TCP/IP 端口号,取值范围为 0 到 65535。

  • STATE

    套接字状态,或者IDLEACTIVE。使用相应的套接字工具跟踪活动套接字的等待时间。idle使用仪器 跟踪空闲套接字的等待时间 。

    如果套接字正在等待来自客户端的请求,则套接字处于空闲状态。当套接字变为空闲时, socket_instances跟踪套接字的事件行从状态切换 ACTIVEIDLE。该 EVENT_NAME值保持不变 wait/io/socket/*,但仪器的计时暂停。相反,在events_waits_current 表中生成一个EVENT_NAME值为 的 事件idle

    当收到下一个请求时, idle事件终止,套接字实例从 切换IDLEACTIVE,并且套接字工具恢复计时。

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 是原始主机的 IP(127.0.0.1::1本地主机)