问题现象:
一个时刻mycat服务器(4核心)cpu使用率从2%,升高至25%(usr)。之后一直不会降下来。
通过top命令查看,发现总体cpu使用率居高不下,按1打开cpu核心详细数据,会有个别核心99%。但是下面看不到cpu使用率高的进程。
问题分析:
1、top -H
发现cpu使用率高的线程属于mycat。并可以获取异常线程的thread id。
2、jstack -l
jstack中nid是十六进制的线程id,将top -H中找到的线程id做十六进制转换,找对问题线程的运行堆栈信息。
如下:
3、通过mycat github上的issue 搜索cpu
发现如下问题:
https://github.com/MyCATApache/Mycat-Server/issues/2164
堆栈信息和问题现象一致,且bug修复补丁已被合并。