java arthas使用

1、配置java环境:
Windows:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_153
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
set Path=%JAVA_HOME%\bin;
linux临时环境:
export JAVA_HOME=/usr/share/jdk1.7.0_29
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2、如果发现arthas无法访问进程号,在执行完java -jar arthas-boot.jar 12345,后面加上12345进程号,手动找到需要监控的java进程
tips:对于linux进程查找使用 jps -lmv|grep 组件名 可精确查找到对应的自己的进程,比ps -ef好用
对于windows 使用netstat -ano|findstr 8023查找8023端口的进程,或者使用jps -l

  • thread -b 命令查看直接定位到死锁信息
  • jad 命令直接反编译 class
  • trace com.UserController getUser查看耗时信息
  • monitor -c 5 com.UserServiceImpl get 统计耗时信息
  • watch 查看输入输出参数以及异常等信息
  • watch demo.MathGame primeFactors “{params,returnObj}” -x 2
    A. 如果有个私有成员变量,可以这么使用查看其变量值,静态变量可以使用getstatic查看
    watch *.类名 方法名 “target.变量名” -x 5(表示调用方法前后该变量的前后值)

    B.* 过滤参数中符合条件的
    watch demo.MathGame primeFactors ‘params[0].{? #this.certificateNumber==“1231243”}’ -x 5

    watch 高级用法:https://github.com/alibaba/arthas/issues/71
  • stack命令查看方法的调用信息

参考:
- https://blog.csdn.net/u013735734/article/details/102930307
- https://alibaba.github.io/arthas/options.html

arthas问题解决

1.java.io.IOException: well-known file is not secure

[ERROR] Start arthas failed, exception stack trace: 
java.io.IOException: well-known file is not secure
	at sun.tools.attach.LinuxVirtualMachine.checkPermissions(Native Method)
	at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:117)
	at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:78)
	at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:250)
	at com.taobao.arthas.core.Arthas.attachAgent(Arthas.java:85)
	at com.taobao.arthas.core.Arthas.<init>(Arthas.java:28)
	at com.taobao.arthas.core.Arthas.main(Arthas.java:123)

解决方法:切换为执行java程序的用户启动arthas

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值