-
Notifications
You must be signed in to change notification settings - Fork 111
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)
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!