-
Notifications
You must be signed in to change notification settings - Fork 111
TP_THREAD_GROUP_STATS
xiaoboluo768 edited this page Jun 7, 2020
·
2 revisions
- 该表提供查询每个线程组的统计信息。该表中每个线程组记录一行数据
*该表为memory引擎临时表
- 表结构定义
CREATE TEMPORARY TABLE `TP_THREAD_GROUP_STATS` (
`TP_GROUP_ID` int(6) unsigned NOT NULL DEFAULT '0',
`CONNECTIONS_STARTED` bigint(20) unsigned NOT NULL DEFAULT '0',
`CONNECTIONS_CLOSED` bigint(20) unsigned NOT NULL DEFAULT '0',
`QUERIES_EXECUTED` bigint(20) unsigned NOT NULL DEFAULT '0',
`QUERIES_QUEUED` bigint(20) unsigned NOT NULL DEFAULT '0',
`THREADS_STARTED` bigint(20) unsigned NOT NULL DEFAULT '0',
`PRIO_KICKUPS` bigint(20) unsigned NOT NULL DEFAULT '0',
`STALLED_QUERIES_EXECUTED` bigint(20) unsigned NOT NULL DEFAULT '0',
`BECOME_CONSUMER_THREAD` bigint(20) unsigned NOT NULL DEFAULT '0',
`BECOME_RESERVE_THREAD` bigint(20) unsigned NOT NULL DEFAULT '0',
`BECOME_WAITING_THREAD` bigint(20) unsigned NOT NULL DEFAULT '0',
`WAKE_THREAD_STALL_CHECKER` bigint(20) unsigned NOT NULL DEFAULT '0',
`SLEEP_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`DISK_IO_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`ROW_LOCK_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`GLOBAL_LOCK_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`META_DATA_LOCK_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`TABLE_LOCK_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`USER_LOCK_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`BINLOG_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`GROUP_COMMIT_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0',
`FSYNC_WAITS` bigint(20) unsigned NOT NULL DEFAULT '0'
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
- 表字段含义
- TP_GROUP_ID:线程组ID。该ID值在该表中是唯一的
- CONNECTIONS_STARTED:线程组中,通过线程池成功创建连接的数量(次数)
- CONNECTIONS_CLOSED:线程组中,已经关闭连接数量(次数)
- QUERIES_EXECUTED:线程组中,执行的语句数量。当一个语句开始执行时,该字段值即增加,而不是等待语句执行完成时才增加
- QUERIES_QUEUED:线程组中,接收到的排队等待执行的语句数量。该字段不计算不需要排队的语句(即,线程接收到之后立即开始执行的语句)
- THREADS_STARTED:线程组中,线程处于started状态的次数
- PRIO_KICKUPS:根据thread_pool_prio_kickup_timer系统变量的值统计从低优先级队列移至高优先级队列的语句数量。如果这个数字增加较快,则表示需要考虑增加该变量的值。对于InnoDB来说,该字段值快速增长可能意味着并发事务太多而导致性能下降
- STALLED_QUERIES_EXECUTED:由于语句执行时间超过了thread_pool_stall_limit系统变量的值,被终止执行的语句数量(或者连接意外断开被终止执行的语句)
- BECOME_CONSUMER_THREAD:线程组中,线程已被分配了消费者线程角色的次数
- BECOME_RESERVE_THREAD:线程组中,线程已被分配了预留线程角色的次数
- BECOME_WAITING_THREAD:线程组中,线程已被分配了等待线程角色的次数。即使是在正常运作的数据库中,也会经常发生语句排队的情况,尤其是在高并发负载的场景下,这些值的快速增加是正常的表现
- WAKE_THREAD_STALL_CHECKER:检查stall线程决定是否需要唤醒或创建线程,以处理某些语句或处理等待线程角色的次数
- SLEEP_WAITS:THD_WAIT_SLEEP的等待数量。在线程进入睡眠状态时发生,例如,通过调用SLEEP()函数
- DISK_IO_WAITS:THD_WAIT_DISKIO的等待数量。在线程执行语句时,可能未命中文件系统缓存的磁盘I/O时会发生。当缓冲池读取和写入数据到磁盘时会发生这种等待,但不包括正常直接从文件中读取和写入数据的时候
- ROW_LOCK_WAITS:THD_WAIT_ROW_LOCK的等待数量,表示等待另一个事务持有的行锁
- GLOBAL_LOCK_WAITS:THD_WAIT_GLOBAL_LOCK的等待数量,表示等待全局锁
- META_DATA_LOCK_WAITS:THD_WAIT_META_DATA_LOCK的等待数量,表示等待元数据锁
- TABLE_LOCK_WAITS:THD_WAIT_TABLE_LOCK的等待数量,表示等待表锁被
- USER_LOCK_WAITS:THD_WAIT_USER_LOCK的等待数量,表示在等待由用户线程构造的特殊锁
- BINLOG_WAITS:THD_WAIT_BINLOG_WAITS的等待数量,表示等待二进制日志变为空闲状态
- GROUP_COMMIT_WAITS:THD_WAIT_GROUP_COMMIT的等待数量。表示组提交操作需要等待事务提交流程中的其他更早的部分完成时才会出现这种情况
- FSYNC_WAITS:THD_WAIT_SYNC的等待数量,表示等待文件同步操作
- 表记录内容示例
root@localhost : information_schema 12:25:49> select * from TP_THREAD_GROUP_STATS limit 1\G;
*************************** 1. row ***************************
TP_GROUP_ID: 0
CONNECTIONS_STARTED: 18
CONNECTIONS_CLOSED: 9
QUERIES_EXECUTED: 707261
QUERIES_QUEUED: 707252
THREADS_STARTED: 5
PRIO_KICKUPS: 0
STALLED_QUERIES_EXECUTED: 23
BECOME_CONSUMER_THREAD: 20477
BECOME_RESERVE_THREAD: 336
BECOME_WAITING_THREAD: 667428
WAKE_THREAD_STALL_CHECKER: 32
SLEEP_WAITS: 0
DISK_IO_WAITS: 0
ROW_LOCK_WAITS: 5
GLOBAL_LOCK_WAITS: 0
META_DATA_LOCK_WAITS: 0
TABLE_LOCK_WAITS: 0
USER_LOCK_WAITS: 0
BINLOG_WAITS: 0
GROUP_COMMIT_WAITS: 0
FSYNC_WAITS: 20837
1 row in set (0.01 sec)
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!