专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

学会使用ARTHAS(一)

前言

现在有很多文章都在写ARTHAS,其实笔者也看着文章各种学习。本篇文章,大家可以认为是笔者的“自私贴”,为了逼自己学会ARTHAS,强行进行了博客搬运。

ARTHAS简介

  • 照例,官方释义:

Arthas is a Java Diagnostic tool open sourced by Alibaba. Arthas是一个支持JDK6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的Tab自动补全功能的强大的开源Java诊断工具,现在被业界广泛使用。

ARTHAS解决的痛点

  • 线上方法耗时突然增加,不知道哪一步骤导致
  • 全局查看系统运行情况
  • 全局查看JVM运行状态
  • 反编译代码,查看我的代码是否提交

ARTHAS使用(下文的{packageName}是全路径!!!)

  • 下载安装

这里就不再赘述了,大家可以参照https://alibaba.github.io/arthas/。

  • 启动
  • 官方给出了两种启动方式,官方更推荐arthas-boot.jar包启动,看文档多了个-h选项。
# jar包(官方更推荐这个)
java -jar arthas-boot.jar 
# 打印help信息
java -jar arthas-boot.jar -h
# shell脚本
./as.sh

  • attach到相应进程
# 启动
$ java -jar arthas-boot.jar

[INFO] arthas-boot version: 3.1.0
[INFO] Found existing java process, please choose one and hit RETURN.
# 选择进程
* [1]: 417 com.test.zacpark.hello.Test
1
[INFO] arthas home: /opt/soft/arthas
[INFO] Try to attach process 417
[INFO] Attach process 417 success.
[INFO] arthas-client connect 127.0.0.1 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'

wiki: https://alibaba.github.io/arthas
version: 3.1.0
pid: 417
time: 2019-08-09 10:06:15

  • 看板,可以看到线程、内存、GC、运行环境、Tomcat信息等等。
$ dashboard

70_1.png

  • 线程栈
$ thread {pid}

  • 反编译查看.class文件,可以知道.class文件的ClassLoader信息和jar包信息,以及代码(可以看自己提交的代码生效与否)。
$ jad {packageName}.{className}

ClassLoader:
+-sun.misc.Launcher$AppClassLoader@b2929b2
  +-sun.misc.Launcher$ExtClassLoader@3b706ad7

Location:
/opt/service/hello/test-1.0.0.jar

/*
 * Decompiled with CFR 0_132.
 */
package com.test.zacpark.hello.test;

public class Test {
    public static void main(String[] args) {
    ...
    }
}

  • 查看函数返回值,会打出函数消耗时间,不用远程调试了
$ watch {packageName}.{className} {methodName} returnObj

ts=2019-08-09 12:21:10; [cost=7.078086ms] result=@Boolean[false]
ts=2019-08-09 12:21:11; [cost=6.550872ms] result=@Boolean[false]

总结

本文对 Arthas的基础使用,进行了梳理,其实是笔者的“自私学习笔记贴”。

参考文献

文章永久链接:https://tech.souyunku.com/40501

未经允许不得转载:搜云库技术团队 » 学会使用ARTHAS(一)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们