您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

Alibaba开源Java诊断工具Arthas简单介绍

时间:2020-07-22 09:48:02  来源:  作者:
Alibaba开源Java诊断工具Arthas简单介绍

 

​Alibaba开源JAVA诊断工具Arthas

Alibaba开源Java诊断工具Arthas简单介绍

 

Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

1)这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?

2)我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?

3)遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?

4)线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!

5)是否有一个全局视角来查看系统的运行状况?

6)有什么办法可以监控到JVM的实时运行状态?

7)怎么快速定位应用的热点,生成火焰图?

Arthas支持JDK 6+,支持linux/mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

Github: https://github.com/alibaba/arthas

文档: https://alibaba.github.io/arthas/

下面介绍arthas的安装以及简单使用

1、下载arthas

在线方式快速安装

curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar

离线的方式

https://github.com/alibaba/arthas/releases/tag/arthas-all-3.3.6

下载arthas-bin.zip
rz上传到服务器某个目录,例如/homemkdir arthas
unzip arthas-bin.zip -d arthas
cd arthassh install-local.sh
Alibaba开源Java诊断工具Arthas简单介绍

 


Alibaba开源Java诊断工具Arthas简单介绍

 


Alibaba开源Java诊断工具Arthas简单介绍

 

2、启动arthas

1)用as.sh启动

./as.sh

Alibaba开源Java诊断工具Arthas简单介绍

 

2)用arthas-boot启动

java -jar arthas-boot.jar

选择应用java进程

例如kafka进程是第1个,输入1回车,Arthas会attach到目标进程上

Alibaba开源Java诊断工具Arthas简单介绍

 

3、help命令查看命令帮助

[arthas@10528]$ help
 NAME         DESCRIPTION                                                                                                                                                      
 help         Display Arthas Help                                                                                                                                              
 keymap       Display all the available keymap for the specified connection.                                                                                                   
 sc           Search all the classes loaded by JVM                                                                                                                             
 sm           Search the method of classes loaded by JVM                                                                                                                       
 classloader  Show classloader info                                                                                                                                            
 jad          Decompile class                                                                                                                                                  
 getstatic    Show the static field of a class                                                                                                                                 
 monitor      Monitor method execution statistics, e.g. total/success/failure count, average rt, fail rate, etc.                                                               
 stack        Display the stack trace for the specified class and method                                                                                                       
 thread       Display thread info, thread stack                                                                                                                                
 trace        Trace the execution time of specified method invocation.                                                                                                         
 watch        Display the input/output parameter, return object, and thrown exception of specified method invocation                                                           
 tt           Time Tunnel                                                                                                                                                      
 jvm          Display the target JVM information                                                                                                                               
 perfcounter  Display the perf counter infornation.                                                                                                                            
 ognl         Execute ognl expression.                                                                                                                                         
 mc           Memory compiler, compiles java files into bytecode and class files in memory.                                                                                    
 redefine     Redefine classes. @see Instrumentation#redefineClasses(ClassDefinition...)                                                                                       
 dashboard    Overview of target jvm's thread, memory, gc, vm, Tomcat info.                                                                                                    
 dump         Dump class byte array from JVM                                                                                                                                   
 heapdump     Heap dump                                                                                                                                                        
 options      View and change various Arthas options                                                                                                                           
 cls          Clear the screen                                                                                                                                                 
 reset        Reset all the enhanced classes                                                                                                                                   
 version      Display Arthas version                                                                                                                                           
 session      Display current session information                                                                                                                              
 sysprop      Display, and change the system properties.                                                                                                                       
 sysenv       Display the system env.                                                                                                                                          
 vmoption     Display, and update the vm diagnostic options.                                                                                                                   
 logger       Print logger info, and update the logger level                                                                                                                   
 history      Display command history                                                                                                                                          
 cat          Concatenate and print files                                                                                                                                      
 echo         write arguments to the standard output                                                                                                                           
 pwd          Return working directory name                                                                                                                                    
 mbean        Display the mbean information                                                                                                                                    
 grep         grep command for pipes.                                                                                                                                          
 tee          tee command for pipes.                                                                                                                                           
 profiler     Async Profiler. https://github.com/jvm-profiling-tools/async-profiler                                                                                            
 stop         Stop/Shutdown Arthas server and exit the console.                                                                                                                [arthas@10528]$ 
Alibaba开源Java诊断工具Arthas简单介绍

 

4、jvm——查看当前 JVM 的信息

Alibaba开源Java诊断工具Arthas简单介绍

 


Alibaba开源Java诊断工具Arthas简单介绍

 

5、thread——查看当前 JVM 的线程堆栈信息

Alibaba开源Java诊断工具Arthas简单介绍

 

例如thread -n 3 查看占CPU资源最多的前3个线程

Alibaba开源Java诊断工具Arthas简单介绍

 

6、dashboard 当前系统的实时数据面板

Alibaba开源Java诊断工具Arthas简单介绍

 

更多用法就不一一介绍,具体可以参考https://alibaba.github.io/arthas/官方文档

7、一图掌握Arthas—常用命令汇总

若图片不清晰,请后台联系作者索要高清大图

或者如下地址下载高清大图

https://user-images.githubusercontent.com/31468811/71954111-3010be00-321f-11ea-9900-e88195c2a570.png

Alibaba开源Java诊断工具Arthas简单介绍

 


Alibaba开源Java诊断工具Arthas简单介绍

 



Tags:Java 诊断工具 Arthas   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
​Alibaba开源Java诊断工具Arthas Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。当你遇到以下类似问题而束...【详细内容】
2020-07-22  Tags: Java 诊断工具 Arthas  点击:(48)  评论:(0)  加入收藏
在阿里巴巴内部,有很多自研工具供开发者使用,其中有一款工具,是几乎每个Java开发都使用过的工具,那就是Arthas,这是一款Java诊断工具,是一款牛逼带闪电的工具。该工具已于2018年9...【详细内容】
2019-07-29  Tags: Java 诊断工具 Arthas  点击:(260)  评论:(0)  加入收藏
▌简易百科推荐
面向对象的特征之一封装 面向对象的特征之二继承 方法重写(override/overWrite) 方法的重载(overload)和重写(override)的区别: 面向对象特征之三:多态 Instanceof关键字...【详细内容】
2021-12-28  顶顶架构师    Tags:面向对象   点击:(2)  评论:(0)  加入收藏
一、Redis使用过程中一些小的注意点1、不要把Redis当成数据库来使用二、Arrays.asList常见失误需求:把数组转成list集合去处理。方法:Arrays.asList 或者 Java8的stream流式处...【详细内容】
2021-12-27  CF07    Tags:Java   点击:(3)  评论:(0)  加入收藏
文章目录 如何理解面向对象编程? JDK 和 JRE 有什么区别? 如何理解Java中封装,继承、多态特性? 如何理解Java中的字节码对象? 你是如何理解Java中的泛型的? 说说泛型应用...【详细内容】
2021-12-24  Java架构师之路    Tags:JAVA   点击:(5)  评论:(0)  加入收藏
大家好!我是老码农,一个喜欢技术、爱分享的同学,从今天开始和大家持续分享JVM调优方面的经验。JVM调优是个大话题,涉及的知识点很庞大 Java内存模型 垃圾回收机制 各种工具使用 ...【详细内容】
2021-12-23  小码匠和老码农    Tags:JVM调优   点击:(11)  评论:(0)  加入收藏
前言JDBC访问Postgresql的jsonb类型字段当然可以使用Postgresql jdbc驱动中提供的PGobject,但是这样在需要兼容多种数据库的系统开发中显得不那么通用,需要特殊处理。本文介绍...【详细内容】
2021-12-23  dingle    Tags:JDBC   点击:(13)  评论:(0)  加入收藏
Java与Lua相互调用案例比较少,因此项目使用需要做详细的性能测试,本内容只做粗略测试。目前已完成初版Lua-Java调用框架开发,后期有时间准备把框架进行抽象,并开源出来,感兴趣的...【详细内容】
2021-12-23  JAVA小白    Tags:Java   点击:(11)  评论:(0)  加入收藏
Java从版本5开始,在 java.util.concurrent.locks包内给我们提供了除了synchronized关键字以外的几个新的锁功能的实现,ReentrantLock就是其中的一个。但是这并不意味着我们可...【详细内容】
2021-12-17  小西学JAVA    Tags:JAVA并发   点击:(11)  评论:(0)  加入收藏
一、概述final是Java关键字中最常见之一,表示“最终的,不可更改”之意,在Java中也正是这个意思。有final修饰的内容,就会变得与众不同,它们会变成终极存在,其内容成为固定的存在。...【详细内容】
2021-12-15  唯一浩哥    Tags:Java基础   点击:(17)  评论:(0)  加入收藏
1、问题描述关于java中的日志管理logback,去年写过关于logback介绍的文章,这次项目中又优化了下,记录下,希望能帮到需要的朋友。2、解决方案这次其实是碰到了一个问题,一般的情况...【详细内容】
2021-12-15  软件老王    Tags:logback   点击:(19)  评论:(0)  加入收藏
本篇文章我们以AtomicInteger为例子,主要讲解下CAS(Compare And Swap)功能是如何在AtomicInteger中使用的,以及提供CAS功能的Unsafe对象。我们先从一个例子开始吧。假设现在我们...【详细内容】
2021-12-14  小西学JAVA    Tags:JAVA   点击:(21)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条