Thread dump文件抓取和分析(JCA工具)
Thread dump文件抓取和分析
接下来分析CentOS下怎么抓取Thread dump文件,JCA怎么分析Thread dump文件。
1、CentOS下抓取Thread dump文件
CentOS下命令
会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况
jstack -l pid
不仅会输出Java堆栈信息,还会输出C/C++堆栈信息
jstack -m pid
输出有异常的进程Thread Core文件。
jstack -l pid >> /root/*.txt
执行 “jstack 进程号 | grep 线程ID” 查找某进程下线程的状态。
2、JCA工具分析Thread dump文件
2.1 线程状态
New: 当线程对象创建时存在的状态,此时线程不可能执行;
Runnable:当调用thread.start()后,线程变成为Runnable状态。只要得到CPU,就执行;
Running:线程正在执行;
Waiting:执行thread.join()或在锁对象调用obj.wait()等情况就会进该状态,表明线程正处于等待某个资源或条件发生来唤醒自己;
Timed_Waiting:执行Thread.sleep(long)、thread.join(long)或obj.wait(long)等就会进该状态,与Waiting的区别在于Timed_Waiting的等待有时间限制;
Blocked:如果进入同步方法或同步代码块,没有获取到锁,则会进入该状态;
Dead:线程执行完毕,或者抛出了未捕获的异常之后,会进入dead状态,表示该线程结束
其次,对于jstack日志,我们要着重关注如下关键信息
Deadlock:表示有死锁
Waiting on condition:等待某个资源或条件发生来唤醒自己。具体需要结合jstacktrace来分析,比如线程正在sleep,网络读写繁忙而等待
Blocked:阻塞
Waiting on monitor entry:在等待获取锁
in Object.wait():获取锁后又执行obj.wait()放弃锁
一般重点查看“等待资源Waiting on condition”、“wait()”、“阻塞Blocked”。这些是引起CPU高,可能是线程执行有死循环。
2.2具体例子
利用下面大量new对象模拟“堆内存溢出”的案例。
List<Object> list = new ArrayList<>();for (int i = 0; i < 10000000; i++) {String str = "";for (int j = 0; j < 1000; j++) {str += UUID.randomUUID().toString();}list.add(str);}
下载好Jca.jar。将该jar包放到jdk/bin目录下。
输入下面命令,打开JCA分析工具
…/bin>java –jar jca433.jar
弹出工具页面,File—>Open Thread dumps,找到文件。
-----一般对于JavaCore文件,我们需要多个文件进行分析,对比可以找到大概代码哪行有问题。
从上面线程状态分析可以看出,对应代码21行有异常,另外51%CPU是在“等待资源Waiting on condition”,可能是代码有死循环等问题。可以具体进行排查。
Thread dump文件抓取和分析(JCA工具)相关推荐
- drwtsn32.exe和adplus.vbs进行dump文件抓取
转自:http://hi.baidu.com/justin_wu2010/blog/item/cc31641fa8d84f0f314e15b1.html 以前只在linux和unix下面才用过dump ...
- 嘘,我已经瞒着开发解锁APP日志文件抓取及分析啦!
------·今天距2020年87天·------ 这是ITester小栈第49次推文 大家好,我是coco小锦鲤 经过之前的APP系列 我们知道了APP的测试流程 也列举了APP通用测试用例 还解答 ...
- java怎么抓取测试apk日志_Android测试日志文件抓取与分析
1.log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有:adb shel ...
- log 的抓取与分析
log 的抓取与分 http://blog.csdn.net/yaoming168/article/details/38777727 log 的抓取与分析 一.Android log框架简介 二.lo ...
- python新闻评论分析_使用 python 抓取并分析京东商品评论数据
本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D ...
- 短视频评论的抓取及分析
短视频评论的抓取及分析 一.设计背景 目前,短视频已经成为大多数人娱乐消遣的主要方式.用户在观看视频内容的同时,也同样关注视频评论,并且很多时候评论带给人们的乐趣远远超过视频本身.但是各短视频平台都没 ...
- ios 打印 详细错误日志_【专家专栏】林相宇 | IOS错误日志抓取和分析
原标题:[专家专栏]林相宇 | IOS错误日志抓取和分析 在调试自己和别人的IOS App时,发生Crash是非常正常的情况,分析这些Crash的主要手段之一就是分析Crash发生时产生的错误日志.对 ...
- NetCloud——一个网易云音乐评论抓取和分析的Python库
在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...
- java 生成dump_java dump文件怎么生成和分析-JMAP用法详解
jmap是java自带的工具 1. 查看整个JVM内存状态 jmap -heap [pid] 2. 查看JVM堆中对象详细占用情况 jmap -histo [pid] 3. 导出整个JVM 中内存信息 ...
最新文章
- ubuntu server 16.10 启用无线网卡
- 0.3秒定位解剖位置、定位精度提升超2.3%!
- 给JSP页面加过滤器
- visual c++ build tools的安装与使用
- LeetCode || Copy List with Random Pointer
- 小米12比我的小米10还便宜
- 短信宝 php使用,[php] 使用 短信宝 发送短信(thinkphp)
- 今年考了N3也不知道能不能过
- Linux系统磁盘分区、删除分区、格式化、挂载、卸载、开机自动挂载的方法总结...
- U1C3 介绍SketchEngine和Web语料库研究
- 软件工程考试归纳知识点
- 如何选择合适的工业相机
- coding AD:最短路径Floyd算法过程矩阵的计算:十字交叉法
- 机器学习之GD、SGD
- 2022第三届全国大学生网络安全精英赛练习题(1)
- 【深度学习】Numpy实现简单神经网络
- 多晴转云h_多晴转云htxt百度云
- Python爬取中国大学排名,并且保存到excel中
- cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。应以 ‘{layoutlib}‘ 之一开头
- 说说 kooxoo 酷讯吧
热门文章
- springboot集成xxl-job
- 经典编程题目-古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子
- 数字芯片设计中的时钟分频电路,你了解多少?
- jenkins教程菜鸟_菜鸟 jenkins自动化测试构建实战
- 史上最全推广小程序实操方法
- 解决git报错[remote rejected] HEAD -> master (pre-receive hook declined) error: failed to push some...
- Kafka集群搭建过程(kafka2.5+eagle)
- UI设计初学者必备的工具以及学习路线(附思维导图)
- javafx 教程_示例介绍:JavaFX 8打印
- 【源码】二进制非洲秃鹫优化算法