• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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

    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。仪器名称可能具有多个部分,并形成一个层次结构,如“性能模式仪器命名约定”中所述。

    • 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)上的索引
    • 在(IPPORT)上的索引

    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。