1、使用命令top查看cpu进程,发现tomcat占用cpu使用率过高
可以看到服务器负载很高,tomcat CPU使用已达到接近300%,内存20%。
2、把进程的栈dump到文件里,以便后面的分析
- jstack 22764 > cpu0827.log
3、看看这个进程里面哪些线程在占用cpu
- top -p 22764 -H
4、查看问题线程堆栈
- printf "%x\n" 22978
- 59c2
5.在cpu日志里找PID=59c2的线程
6.分析原因
看日志,很明显是org.hibernate.internal.util.collections.IdentityMap.concurrentEntries (...)这里"卡住"了。