vlambda博客
学习文章列表

记一次mycat服务异常排查


现象

Mycat服务器CPU使用率居高不下,内存占用突然升高,最终导致mycat挂掉。

 

记一次mycat服务异常排查

 

排查过程

 

1、找出CPU占用过高的Java进程号(pid

通过top命令查看

 

记一次mycat服务异常排查


2、查出指定进程下耗CPU的线程(tid

ps -mp 进程号 -o THREAD,tid,time  

 

记一次mycat服务异常排查


 

3、将tid转化成16进制值

printf %x tid

记一次mycat服务异常排查

 

4、查看最消耗cpu的线程名及方法

直接查看:jstack pid |grep -10 tid (16进制)

导出进行分析:jstack 进程号 > jstack.txt


5、dump出堆栈信息

jmap -dump:format=b,file=jmapdump.txt 进程号

 

6、分析堆栈信息,找出问题所在

通过mat打开jmapdump.txt,根据线程名及方法定位

 

 

至此,定位到是在执行一个mysql统计语句。该表有10个分表,且数据量较大,mycat在分表整合时导致CPU和内存占用升高。