1、使用命令top查看cpu进程,发现tomcat占用cpu使用率过高

可以看到服务器负载很高,tomcat CPU使用已达到接近300%,内存20%。
2、把进程的栈dump到文件里,以便后面的分析
jstack 22764 > cpu0827.log
- 1.
3、看看这个进程里面哪些线程在占用cpu
top -p 22764 -H
- 1.

4、查看问题线程堆栈
printf "%x\n" 22978
59c2
- 1.
- 2.
5.在cpu日志里找PID=59c2的线程

6.分析原因
看日志,很明显是org.hibernate.internal.util.collections.IdentityMap.concurrentEntries (...)这里"卡住"了。