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退出。
可以看到各个内存区的使用情况。
查看进程的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