性能测试监控-java分析工具Arthas

Arthas监控docker中的jvm_ray_my的博客-CSDN博客

Quick Start | arthas

arthas是什么

Arthas是阿里巴巴开源的Java诊断工具,它可以帮助开发人员快速、方便地定位和解决Java应用的问题。
Arthas主要包括以下功能:

诊断Java应用中的性能问题,如内存泄漏、线程阻塞等;
诊断Java应用中的异常问题,如空指针异常、数据库连接异常等;
诊断Java应用中的代码问题,如代码逻辑错误、代码安全漏洞等;
监控Java应用的运行状态,如内存使用情况、线程状态等;
提供多种Java应用性能优化方案,如内存优化、线程优化等。

使用Arthas需要有一定的Java基础知识,可以参考Arthas官方文档或者相关的教程来学习使用方法。

启动测试jar

curl -O https://arthas.aliyun.com/math-game.jar
java -jar math-game.jar
 

这就是一个测试用的jar文件

linux启动arthas

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
 

报错Can not find tools.jar under java home: /uinnova/jre1.8, please try to start arthas-boot with full path java.

解决:

按照提示,执行java带上java完整路径。

java进程在容器内

docker exec -it  2f794c05c40c /bin/bash -c "java -jar /home/arthas-boot.jar"

把 arthas-boot.jar放在容器挂载目录下,要不然会找不到。

 查看dashboard

直接输入命令dashboard回车,展示当前进程的信息,结果会一直刷新显示,按ctrl+C退出。

可以看到各个内存区的使用情况。

gc.ps_scavenge.count 代表young gc的次数

gc.ps_marksweep.count 代表fullgc的次数 

查看进程的mainclass

thread 1 | grep 'main('

 使用jad命令对mainclass反编译

jad demo.MathGame

 watch查看方法返回对象

watch demo.MathGame primeFactors returnObj

 退出arthas

使用quit或者exit命令可以断开当前进程的连接,已连接至目标进程的Arthas实例会继续留存在目标进程内部,等待下一次连接。(不要用这个,这个会占用端口不释放)

使用stop命令可以让Arthas彻底断开与目标进程的连接。(用这个)

 命令列表

命令列表 | arthas

用户案例

可以学习

Issues · alibaba/arthas · GitHub

线上环境频繁GC问题排查,Finalizer对象该背这个锅吗?_arthas fullgc次数_Leeong_的博客-CSDN博客 

猜你喜欢

转载自blog.csdn.net/seanyang_/article/details/133365088