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:
perf top -p 29328
##主要是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 使用率并未恢复正常,查看发现
##被杀掉的几个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 修改该问题