Skip to content

TP_THREAD_GROUP_STATE

xiaoboluo768 edited this page Jun 7, 2020 · 2 revisions
  • 该表提供查询线程池中每个线程的状态信息
  • 该表为memory引擎临时表
  • 表结构定义
CREATE TEMPORARY TABLE `TP_THREAD_GROUP_STATE` (
  `TP_GROUP_ID` int(6) unsigned NOT NULL DEFAULT '0',
  `CONSUMER_THREADS` int(6) unsigned NOT NULL DEFAULT '0',
  `RESERVE_THREADS` int(6) unsigned NOT NULL DEFAULT '0',
  `CONNECT_THREAD_COUNT` int(6) unsigned NOT NULL DEFAULT '0',
  `CONNECTION_COUNT` int(6) unsigned NOT NULL DEFAULT '0',
  `QUEUED_QUERIES` int(6) unsigned NOT NULL DEFAULT '0',
  `QUEUED_TRANSACTIONS` int(6) unsigned NOT NULL DEFAULT '0',
  `STALL_LIMIT` int(10) unsigned NOT NULL DEFAULT '0',
  `PRIO_KICKUP_TIMER` int(10) unsigned NOT NULL DEFAULT '0',
  `ALGORITHM` varchar(20) NOT NULL DEFAULT '',
  `THREAD_COUNT` int(6) unsigned NOT NULL DEFAULT '0',
  `ACTIVE_THREAD_COUNT` int(6) unsigned NOT NULL DEFAULT '0',
  `STALLED_THREAD_COUNT` int(6) unsigned NOT NULL DEFAULT '0',
  `WAITING_THREAD_NUMBER` int(6) unsigned DEFAULT NULL,
  `OLDEST_QUEUED` bigint(20) unsigned DEFAULT NULL,
  `MAX_THREAD_IDS_IN_GROUP` int(6) unsigned NOT NULL DEFAULT '0'
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
  • 表字段含义
  • TP_GROUP_ID:线程组ID,在该表中线程组ID是唯一的(注意,这里指的并不是线程池中的线程,而是线程组,所有的线程池中的后台线程在performance_schema.threads表中记录名称为‘thread/thread_pool/tp_worker’的后台类型线程)
  • CONSUMER_THREADS:消费者线程的数量。每个线程组中最多只有一个线程准备开始执行
  • RESERVE_THREADS:每个线程组中处于保留状态的线程数量。这意味着没有分配到消费者线程或者需要唤醒新的消费者线程时,线程池中的线程会进入保留状态,当有需要使用时才会唤醒。进入保留状态的线程会占用一些额外的内存资源,但不会额外占用计算资源
  • CONNECT_THREAD_COUNT:正在处理或等待处理连接初始化和身份验证的线程数。每个线程组最多可以有四个连接线程,这些连接线程在一段时间处于非活跃状态之后会过期,该字段为5.7.18中新增
  • CONNECTION_COUNT:使用此线程组的连接数
  • QUEUED_QUERIES:每个线程组中在高优先级队列中等待的语句的数量
  • QUEUED_TRANSACTIONS:每个线程组中在低优先级队列中等待的语句的数量。这些是尚未开始的事务的初始语句,因此它们也表示排队的事务数量
  • STALL_LIMIT:thread_pool_stall_limit系统变量在线程组记录中的值。所有线程组都会显示相同的值
  • PRIO_KICKUP_TIMER:thread_pool_prio_kickup_timer系统变量在线程组记录中的值。所有线程组都会显示相同的值
  • ALGORITHM:线程组记录中显示的thread_pool_algorithm系统变量的值。所有线程组都会显示相同的值
  • THREAD_COUNT:在线程池中作为此线程组的一部分启动的线程数
  • ACTIVE_THREAD_COUNT:每个线程组中正在执行语句的活跃线程数量
  • STALLED_THREAD_COUNT:线程组中终止的语句的数量。被终止的语句可能还正在执行
  • WAITING_THREAD_NUMBER:如果线程组中有一个线程正在轮询处理一个语句,则将指定线程组中的该线程的线程ID。因为这个线程可能正在执行同一个语句。
  • OLDEST_QUEUED:最早排队的语句等待执行多长时间(以毫秒为单位)
  • MAX_THREAD_IDS_IN_GROUP:每个线程组中线程的最大ID。当从TP_THREAD_GROUP_STATE表中查询时,该ID值与TP_THREAD_NUMBER表中记录的每个线程组中的最大线程ID列值相同。即,如下两个语句查询的结果是相同的
* SELECT TP_GROUP_ID,MAX_THREAD_IDS_IN_GROUP FROM TP_THREAD_GROUP_STATE; * SELECT TP_GROUP_ID,MAX(TP_THREAD_NUMBER) from TP_THREAD_STATE GROUP BY TP_GROUP_ID;
  • 表记录内容示例
root@localhost : information_schema 12:25:54> select * from TP_THREAD_GROUP_STATE limit 1\G;
*************************** 1. row ***************************
            TP_GROUP_ID: 0
       CONSUMER_THREADS: 1
        RESERVE_THREADS: 3
   CONNECT_THREAD_COUNT: 1
       CONNECTION_COUNT: 9
         QUEUED_QUERIES: 0
    QUEUED_TRANSACTIONS: 6
            STALL_LIMIT: 6
      PRIO_KICKUP_TIMER: 1000
              ALGORITHM: Low Concurrency
           THREAD_COUNT: 6
    ACTIVE_THREAD_COUNT: 1
   STALLED_THREAD_COUNT: 0
  WAITING_THREAD_NUMBER: NULL
          OLDEST_QUEUED: 0
MAX_THREAD_IDS_IN_GROUP: 6
1 row in set (0.02 sec)

上一篇:INNODB_SYS_TABLESTATS表 |下一篇:TP_THREAD_GROUP_STATS表

Clone this wiki locally