linux java线程100%的问题定位方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux java线程100%的问题定位方法相关的知识,希望对你有一定的参考价值。
一、背景
互联网发展的今天,很多问题都会在生产中遇到,假如某天发现系统资源中cpu占用100%,一直居高不下,那么就要进行问题查询了。
二、解决思路
1、查看那个java进程占用最多,top命令
[[email protected] test]# top -H
2、可以明显看到PID为29003的java进程占用cup最高,已占用了95.5%了,可根据进程号进一步查看该进程的线程情况。显示该进程中每个线程的CPU资源消耗情况。
[[email protected] test]# top -H -p 29003
3、找到占用最高的PID29003后,用jstack打印线程栈信息到stack文件中,如下图:
[[email protected] atm]# jstack -l -F 29003 >29003.stack
此时,已经将线程栈信息打印进29003.stack文件中了,可以利用cat等命令查看该文件。
4、找到29003的前后20行信息(20行不够可以50行或者更多),并展示出来:
[[email protected] test]# cat 29003.stack |grep -A 20 ‘29003‘
如上图所示,可准确定位到具体哪个类中的那个方法导致的该问题的出现,然后根据代码再一一解决。
本文出自 “垚海” 博客,请务必保留此出处http://tl2011.blog.51cto.com/6006611/1897118
以上是关于linux java线程100%的问题定位方法的主要内容,如果未能解决你的问题,请参考以下文章