Mysql 8.0 Parallel scanning 导致cpu使用率飙升

1.版本

1)操作系统版本

cat /proc/version
Linux version 3.10.0-1062.1.1.el7.x86_64

2) 数据库版本

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.17    |
+-----------+
1 row in set (0.01 sec)
 

2.问题描述

  监控同事发现有一台数据库服务器cpu使用率异常

top:

Mysql 8.0 Parallel scanning 导致cpu使用率飙升

 

perf top -p 29328

Mysql 8.0 Parallel scanning 导致cpu使用率飙升

##主要是Parallel_reader 函数占用了cpu, Parallel scanning 是MySQL 8.0.14 开始支持的新特性,详情请见

https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html

 

mysql 活跃会话只有几个类似如下查询(表有将近30G,100万行左右数据)

SELECT  COUNT(*) FROM  table_xxxx LIMIT 0, 1000;

为了先把cpu使用降下来,我kill thread_id; 杀了几个会话,杀过会话后发现 cpu 使用率并未恢复正常,查看发现

Mysql 8.0 Parallel scanning 导致cpu使用率飙升

##被杀掉的几个query,一直处于killed状态,并未结束

 

3.问题处理:

    查询发现这是一个bug

https://bugs.mysql.com/bug.php?id=100326

https://jira.percona.com/browse/PS-7009 ## 这里有人指出innodb_parallel_read_threads设置为1,并不能解决该问题

https://jira.percona.com/browse/PS-7038 ##percona 8.0.20 修改该问题