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(阿尔萨斯),确定不来看一下?