设为首页 加入收藏

TOP

Linux Java线程100%的问题定位方法
2017-02-15 08:15:24 】 浏览:7930
Tags: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'



如上图所示,可准确定位到具体哪个类中的那个方法导致的该问题的出现,然后根据代码再一一解决。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux网络编程:tcp并发服务器(I.. 下一篇Android应用开发中Intent的作用及..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目