深圳幻海软件技术有限公司 欢迎您!

Java项目服务器CPU占用100%解决办法

2023-02-27

 1、使用命令top查看cpu进程,发现tomcat占用cpu使用率过高可以看到服务器负载很高,tomcatCPU使用已达到接近300%,内存20%。2、把进程的栈dump到文件里,以便后面的分析 复制jstack 22764 > cpu082

 

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 (...)这里"卡住"了。