在多实例场景下 MySQL Server hang 住,无法测试下去,原生版本不存在这个问题,而新版本上出现了这个问题,不禁心头一颤,心中不禁感到奇怪,还好现场环境还在,为排查问题提供了一个好的环境,随即便投入到紧张的问题排查过程当中。问题实例表现如下:
并发量为 384 的时候出现的问题;
MySQL 服务器无法执行事务相关的语句,即使简单的 select 语句也无法执行;
所有线程处于等待状态,无法 KILL。
现场环境的收集
首先,通过 pstack 工具获取当前问题实例的堆栈信息以便后面具体线程的查找 & 问题线程的定位:
使用 pt-pmp 工具统计 hang.info 中的进程信息,如下: