java诊断神器 arthas(阿尔萨斯)

Posted 500年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java诊断神器 arthas(阿尔萨斯)相关的知识,希望对你有一定的参考价值。

java诊断神器 arthas(阿尔萨斯)

官网地址:https://arthas.aliyun.com/doc/en/index.html

1、快速开始

1.1、windows版本安装

# 命令行输入
curl -0 https://arthas.aliyun.com/arthas-boot.jar --output arthas-boot.jar

# 启动arthas   注意:启动前已经要有java进程运行,否则无法进入
java -jar arthas-boot.jar --telnet-port 9998 --http-port -9999

# 说明:建议增加参数 --telnet-port  和 --http-port   目的:避免端口冲突

说明:第一次执行是会下载arthas的安装包,界面如下:

下载成功后,进入后界面如下:

1.2、常用命令

1、dashboard 仪表板
2、通过thread命令来获取到arthas-demo进程的Main Class
3、通过jad来反编译Main Class
4、watch
5、jvm 虚拟机相关
6、sysprop 系统属性相关

1.2.1、dashboard

直接输入命令

dashboard

1.2.2、thread

thread
#或
thread 进程id

#参数说明
-n 指定最忙的前N个线程并打印堆栈
-b  找出当前阻塞其他线程的线程
-i  指定cpu占比统计的采样间隔,单位毫秒
--state WAITING  查看所有处于等待状态的线程

1.2.3、通过jad反编译class

jad demo.MathGame

1.2.4、watch监视

watch demo.MathGame 方法名  返回值

1.2.5、jvm

1.2.6、sysprop

# 查看所有属性
sysprop

#查看单个属性,支持tab不全
sysprop java.version

# 修改
sysprop user.country US

1.2.6、退出arthas

如果只是退出当前的链接,可以用quit或者exit命令。Attach到目标进程上的arthas还会继续运行,端口会保持开发,下载连接时可以直接连接上。
如果想完全退出arthas,可执行stop命令

2、基础命令

help cat grep pwd cls session reset version quit stop keymap history

2.1、grep

匹配查找,和linux里的grep命令类似,但只能用于管道命令
举例

# 只显示包含java字符串的系统属性
sysprop | grep java

# 可以增加参数:
-n  显示行号
-i   忽略大小写
-m 行数   最大显示行数
-e "正则表达式"  使用正则表达式

应用

sysprop | grep -e "\\d{1,2}"  包含1到2个数字
sysprop | grep -e "\\d{2,}"   包含2个数字以上

2.2、cls

清屏

2.3、reset

重置增强类

reset Test   # 还原指定类
reset *List  # 还原所有以List结尾的类
reset        # 还原所有的类

trace demo.MathGame print

以上是关于java诊断神器 arthas(阿尔萨斯)的主要内容,如果未能解决你的问题,请参考以下文章

整个阿里都在用的线上问题分析诊断神器 Arthas(阿尔萨斯),确定不来看一下?

Arthas--Java在线分析诊断工具(阿尔萨斯)

Arthas(阿尔萨斯)-java诊断工具-----来源于网络

Arthas Alibaba 开源 Java 诊断工具

Arthas在线java进程诊断工具 在线调试神器

java生产环境调试问题排查神器arthas(阿里中台开源的)