arthas简单实用

arthas使用
概述

Arthas 是Alibaba开源的Java诊断工具,可以直接安装在服务器上,用于开发人员或者运维人员查找问题,分析性能,bug追踪 等

能够解决什么问题?
  1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?

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

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

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

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

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

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

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

如何开始?

直接输入一下命令下载jar包

wget https://alibaba.github.io/arthas/arthas-boot.jar

直接通过一下命令启动jar包

java -jar arthas-boot.jar

或则直接上官网开始学习https://arthas.aliyun.com/doc/en/quick-start.html

输入命令会有如下打印:

$ $ java -jar arthas-boot.jar
* [1]: 35542
  [2]: 71560 arthas-demo.jar

注意:选择一个进程进入选择【1】【2】这种不是pid

进入后会有如下打印并且可以使用arthas命令进行进程查看等

1606284879849

​ 此时用户信息也变为arthas了 【arthas@6794】

使用基本arthas命令
dashboard:查看当前进程的简要报告(包括线程信息、内存信息、gc信息、还有一些运行时的数据)
thread 1 将id为1的进程堆栈打印(这个进程id在dashboard命令使用后可以看到)
jad:可以反编译出类的信息,通过jad 类全限定名
watch:可以查看方法的返回数据对象 通过watch 类全限定名 方法名
quit或exit与当前进程断开连接。附加到目标进程的Arthas实例继续存在于该进程中,并且其端口处于备用状态以供进一步连接。
stop命令使Arthas完全退出目标进程。
jvm:查看java虚拟机的当前信息
sysprop:从目标JVM检查系统属性
sysenv:查看当前的JVM环境变量
mc:内存编译器,将.java文件编译为.class内存中的文件。-c指定类加载器 -d指定输出的目录
sc:查看加载类的相关详情,比如当前类是从什么jar包加载的
sm:查看加载类的方法详情
getstatic:查看类的静态属性
redefine:加载外部*.class文件以重新定义JVM中已加载的类
ognl:可以执行任意的代码
classloader:展示类加载器信息统计并形成树型结构
启动常出现的坑
  1. [ERROR] Target process 24255 is not the process using port 3658, you will connect to an unexpected process.
    [ERROR] 1. Try to restart arthas-boot, select process 30482, shutdown it first.
    [ERROR] 2. Or try to use different telnet port, for example: java -jar arthas-boot.jar --telnet-port 9998 --http-port -1
    

上面的错误是端口占用的问题,arthas默认开启3658连接jvm。但是这个端口被占用就会出现错误。

端口占用解决办法

如上,自己指定端口或则关闭之前被占用的端口。

java -jar arthas-boot.jar --telnet-port 端口号 --http-port -1 修改端口

  1. 关闭arthas的

第一种

quit 退出当前 Arthas 客户端,其他 Arthas 客户端不受影响

第二种

shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出
stop——和shutdown命令一致

这里就是可能开启多个arthas异常关闭导致重新启动连接端口占用问题,通过shutdown或则stop关闭所有arthas重新连接

  1. 显示访问拒绝

    这种在windos下是你没有管理员打开切换为管理员

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值