首页 > 代码库 > linux java线程100%的问题定位方法
linux java线程100%的问题定位方法
一、背景
互联网发展的今天,很多问题都会在生产中遇到,假如某天发现系统资源中cpu占用100%,一直居高不下,那么就要进行问题查询了。
二、解决思路
1、查看那个java进程占用最多,top命令
[root@iZ25fdlnov1Z test]# top -H
2、可以明显看到PID为29003的java进程占用cup最高,已占用了95.5%了,可根据进程号进一步查看该进程的线程情况。显示该进程中每个线程的CPU资源消耗情况。
[root@QW121 test]# top -H -p 29003
3、找到占用最高的PID29003后,用jstack打印线程栈信息到stack文件中,如下图:
[root@iZ25fdlnov1Z atm]# jstack -l -F 29003 >29003.stack
此时,已经将线程栈信息打印进29003.stack文件中了,可以利用cat等命令查看该文件。
4、找到29003的前后20行信息(20行不够可以50行或者更多),并展示出来:
[root@iZ123 test]# cat 29003.stack |grep -A 20 ‘29003‘
如上图所示,可准确定位到具体哪个类中的那个方法导致的该问题的出现,然后根据代码再一一解决。
本文出自 “垚海” 博客,请务必保留此出处http://tl2011.blog.51cto.com/6006611/1897118
linux java线程100%的问题定位方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。