排查cpu占用率高及堆内存溢出

1. 排查cpu占用过高

1.输入top命令查看cpu占用最高的进程(如pid:2308)

2.查看哪个线程占用cpu最高 ps -mp 2308 -o THREAD,tid,time(如线程TID占用cpu占用最高:2320)

3.把TID2320转为16进制,printf "%x\n" 2320 (返回910)

4.拉出指定线程的堆栈信息:jstack 2308 |grep 910 -A100

2. 排查内堆存溢出

java程序启动时,添加命令-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./ 堆内存溢出时会生成dump日志

利用MAT对dump文件进行分析