Linux-Tomcat进程CPU使用率100%原因分析

阅读更多
最近有个应用,在生产环境会出现100%的情况,时间没有规律,查看Tomcat日志、应用日志没有查到有效的信息,没有定位产生的原因,最终通过linux的top命令、jstack定位到问题,下面介绍下解决的方法。

1、使用top查看CPU使用较高的进程信息

Linux-Tomcat进程CPU使用率100%原因分析_第1张图片

2. 查看相关进程信息
top -H -p 1167
说明:1167为进程ID
此时,可以看到进程1167下面的相关线程信息。占用资源较多的线程会排在前几个

Linux-Tomcat进程CPU使用率100%原因分析_第2张图片

3. 线程消耗信息后,我们jstack来查看一下某个线程的堆栈信息
使用方法:
jstack [进程] | grep -A 20 [线程的16进制]
-A 20表示查找到所在行的后20行
例如我们要线程号为1243的线程堆栈信息,先将1243转成16进制 4db,执行下面的命令
jstack 1167|grep -A 20 4db
执行完毕,我们会看到如图所示的堆栈信息,此时我们就能结合相关线程提示的信息来定位cpu100%的原因

Linux-Tomcat进程CPU使用率100%原因分析_第3张图片




  • Linux-Tomcat进程CPU使用率100%原因分析_第4张图片
  • 大小: 109.5 KB
  • Linux-Tomcat进程CPU使用率100%原因分析_第5张图片
  • 大小: 155.5 KB
  • Linux-Tomcat进程CPU使用率100%原因分析_第6张图片
  • 大小: 187.5 KB
  • 查看图片附件

你可能感兴趣的:(tomcat,linux)