未加星标

Linux Java线程100%的问题定位方法

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二05 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

一、背景

互联网发展的今天,很多问题都会在生产中遇到,假如某天发现系统资源中cpu占用100%,一直居高不下,那么就要进行问题查询了。

二、解决思路

1、查看那个java进程占用最多,top命令

[[email protected] test]# top -H
Linux Java线程100%的问题定位方法

2、可以明显看到PID为29003的java进程占用cup最高,已占用了95.5%了,可根据进程号进一步查看该进程的线程情况。显示该进程中每个线程的CPU资源消耗情况。

[[email protected] test]# top -H -p 29003
Linux Java线程100%的问题定位方法

3、找到占用最高的PID29003后,用jstack打印线程栈信息到stack文件中,如下图:

[[email protected] atm]# jstack -l -F 29003 >29003.stack
Linux Java线程100%的问题定位方法

此时,已经将线程栈信息打印进29003.stack文件中了,可以利用cat等命令查看该文件。

4、找到29003的前后20行信息(20行不够可以50行或者更多),并展示出来:

[[email protected] test]# cat 29003.stack |grep -A 20 '29003'
Linux Java线程100%的问题定位方法

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

本文地址 : http://www.linuxidc.com/Linux/2017-02/140578.htm

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

主题: LinuxJavaCPU定位互联网
分页:12
转载请注明
本文标题:Linux Java线程100%的问题定位方法
本站链接:http://www.codesec.net/view/533177.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(41)