欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-13 14:18:37
...
最近有个应用,在生产环境会出现100%的情况,时间没有规律,查看Tomcat日志、应用日志没有查到有效的信息,没有定位产生的原因,最终通过linux的top命令、jstack定位到问题,下面介绍下解决的方法。

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

Linux-Tomcat进程CPU使用率100%原因分析
            
    
    博客分类: tomcatlinuxjava tomcatlinux 

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

Linux-Tomcat进程CPU使用率100%原因分析
            
    
    博客分类: tomcatlinuxjava tomcatlinux 

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%原因分析
            
    
    博客分类: tomcatlinuxjava tomcatlinux 




  • Linux-Tomcat进程CPU使用率100%原因分析
            
    
    博客分类: tomcatlinuxjava tomcatlinux 
  • 大小: 109.5 KB
  • Linux-Tomcat进程CPU使用率100%原因分析
            
    
    博客分类: tomcatlinuxjava tomcatlinux 
  • 大小: 155.5 KB
  • Linux-Tomcat进程CPU使用率100%原因分析
            
    
    博客分类: tomcatlinuxjava tomcatlinux 
  • 大小: 187.5 KB
相关标签: tomcat linux