记一次mycat服务异常排查

Posted 爱程客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次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和内存占用升高。


以上是关于记一次mycat服务异常排查的主要内容,如果未能解决你的问题,请参考以下文章

记一次接口授权导致的500异常排查

记一次接口授权导致的500异常排查

记一次接口授权导致的500异常排查

记一次Elasticsearch GeoIpDownloader的启动异常排查过程

记一次dubbo连接zookeeper注册中心发生异常的排查经历

破案现场:记一次压测异常排查--Redisson锁失效的场景