Arthas监控docker中的jvm_ray_my的博客-CSDN博客
Arthas是阿里巴巴开源的Java诊断工具,它可以帮助开发人员快速、方便地定位和解决Java应用的问题。
Arthas主要包括以下功能:
诊断Java应用中的性能问题,如内存泄漏、线程阻塞等;
诊断Java应用中的异常问题,如空指针异常、数据库连接异常等;
诊断Java应用中的代码问题,如代码逻辑错误、代码安全漏洞等;
监控Java应用的运行状态,如内存使用情况、线程状态等;
提供多种Java应用性能优化方案,如内存优化、线程优化等。
使用Arthas需要有一定的Java基础知识,可以参考Arthas官方文档或者相关的教程来学习使用方法。
curl -O https://arthas.aliyun.com/math-game.jar
java -jar math-game.jar
这就是一个测试用的jar文件
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完整路径。
docker exec -it 2f794c05c40c /bin/bash -c "java -jar /home/arthas-boot.jar"
把 arthas-boot.jar放在容器挂载目录下,要不然会找不到。
直接输入命令dashboard回车,展示当前进程的信息,结果会一直刷新显示,按ctrl+C退出。
可以看到各个内存区的使用情况。
gc.ps_scavenge.count 代表young gc的次数
gc.ps_marksweep.count 代表fullgc的次数
thread 1 | grep 'main('
jad demo.MathGame
watch demo.MathGame primeFactors returnObj
使用quit或者exit命令可以断开当前进程的连接,已连接至目标进程的Arthas实例会继续留存在目标进程内部,等待下一次连接。(不要用这个,这个会占用端口不释放)
使用stop命令可以让Arthas彻底断开与目标进程的连接。(用这个)
可以学习
Issues · alibaba/arthas · GitHub
线上环境频繁GC问题排查,Finalizer对象该背这个锅吗?_arthas fullgc次数_Leeong_的博客-CSDN博客