JVM监控工具,线上直接监控,不影响项目。官网:简介 | arthas
1、简介:
阿里、开源
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率
2、使用
linux界面直接使用curl下载jar包,然后再运行选择对应需要监控的java程序id。
docker部署的项目也可以,通过1条命令自动进行docker下载启动。
1、下载
curl -O https://arthas.aliyun.com/arthas-boot.jar
2、启动
java -jar arthas-boot.jar
3、选择对应的java进程
math-game进程是第 2 个,则输入 2,再输入回车/enter。Arthas 会 attach 到目标进程上,并输出日志:
4、命令大全
官方链接:命令列表 | arthas
常用命令:
--- dashboard命令:
可以查看 线程、jvm内存、系统相关信息,实时刷新。
第一部分是显示JVM中运行的所有线程:所在线程组,优先级,线程的状态,CPU的占用率,是否是后台进程等;
第二部分显示的JVM内存的使用情况;
第三部分是操作系统的一些信息和Java版本号。
--- monitor命令监控:
监控类、方法执行情况
每5秒监控一次这个类的login方法,成功、失败次数、以及占比。也可以使用通配符 *
monitor -c 5 cn.qdfhs.basic.service.impl.SysLoginService login
--- jad命令:
反编译指定已加载类的源码。反编译成源码。
3、Docker项目使用
docker exec -it ${containerId} /bin/bash -c "wget https://arthas.aliyun.com/arthas-boot.jar && java -jar arthas-boot.jar"
上面输入容器id
输入对应的项目编号,就进入到对应的arthas系统界面。
dashboard命令:可以查看jvm内存等一些使用情况,自动刷新