• 简介

    Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。

    当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

    • 这个类从哪个 jar 包加载的? 为什么会报各种类相关的 Exception?
    • 我改的代码为什么没有执行到? 难道是我没 commit?分支搞错了?
    • 遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?
    • 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
    • 是否有一个全局视角来查看系统的运行状况?
    • 有什么办法可以监控到JVM的实时运行状态?

    安装

    快速安装

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

    aliyun的镜像

    java -jar arthas-boot.jar --repo-mirror aliyun --use-http

    gitee镜像

    wget https://arthas.gitee.io/arthas-boot.jar

    Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可

    curl -L https://alibaba.github.io/arthas/install.sh | sh

    gitee镜像

    curl -L https://arthas.gitee.io/install.sh | sh

    全量安装

    1. 下载
    2. 解压后,在文件夹里有arthas-boot.jar,直接用java -jar的方式启动
    java -jar arthas-boot.jar
    1. 打印帮助信息
    java -jar arthas-boot.jar -h

    手动安装

    Linux
    1. 下载
    2. 解压缩arthas的压缩包
    unzip arthas-packaging-bin.zip
    1. 安装Arthas(注意,这里根据你需要诊断的Java进程的所属用户进行切换)
    sudo su admin
    rm -rf /home/admin/.arthas/lib/*
    cd arthas
    ./install-local.sh
    1. 启动Arthas
    ./as.sh
    Windows
    1. 下载
    2. 解压缩arthas的压缩包

    基本用法

    1. 启用arthas
    java -jar arthas-boot.jar
    1. 选择应用java进程
    java -jar arthas-boot.jar
    * [1]: 35542
    [2]: 71560 arthas-demo.jar
    Demo进程是第2个,则输入2,再输入回车/enter
    1. 查看dashboard
    dashboard
    1. 通过thread命令来获取到arthas-demo进程的Main Class
    thread 1
    1. 通过jad来反编译Main Class
    jad demo.MathGame
    1. 通过watch命令来查看demo.MathGame#primeFactors函数的返回值
    watch demo.MathGame primeFactors returnObj
    1. 退出arthas
    quit或者exit Attach到目标进程上的arthas还会继续运行,端口会保持开放,下次连接时可以直接连接上。
    shutdown 完全退出arthas

    卸载

    Linux

    rm -rf ~/.arthas/
    rm -rf ~/logs/arthas

    Windows

    直接删除user home下面的.arthas和logs/arthas目录

    参考链接

Arthas用法的更多相关文章

  1. 开源在线分析诊断工具Arthas(阿尔萨斯)--总结

    阿里重磅开源在线分析诊断工具Arthas(阿尔萨斯) arthas用法 启动demo java -jar arthas-demo.jar 启动 java -jar arthas-boot.jar at ...

  2. Arthas进阶学习(常用命令)

    Step1 下载demo-arthas-spring-boot.jar,再用java -jar命令启动: wget https://github.com/hengyunabc/katacoda-sce ...

  3. java 诊断工具——Arthas

    该说不说!小编做的这些功能,最讨厌的就是优化!某些前辈大佬写的代码小辈我实在不敢恭维!那逻辑!那sql! 接下来!今天的主角就登场了,阿里巴巴最近开源出来的一个针对 java 的工具,主要是针对 ja ...

  4. arthas使用分享

    文章目录准备启动Demo进入arthas控制台基础命令jvm相关class/classloader相关monitor/watch/trace相关options管道后台异步任务Web Console其他 ...

  5. Arthas Alibaba 开源 Java 诊断工具

    Arthas 用户文档 English Docs Arthas(阿尔萨斯) 能为你做什么? Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,A ...

  6. 问题诊断神器arthas

    https://github.com/alibaba/arthas 镜像地址 https://gitee.com/arthas/arthas OGNL https://commons.apache.o ...

  7. Arthas - Java 线上问题定位处理的终极利器

    前言 在使用 Arthas 之前,当遇到 Java 线上问题时,如 CPU 飙升.负载突高.内存溢出等问题,你需要查命令,查网络,然后 jps.jstack.jmap.jhat.jstat.hprof ...

  8. 用arthas的watch方法观察执行方法的输入输出

    watch 的参数比较多,主要是因为它能在 4 个不同的场景观察对象 参数名称 参数说明 class-pattern 类名表达式匹配 method-pattern 方法名表达式匹配 express 观 ...

  9. Arthas - 开源的java诊断工具,非常有用

    常用命令 help 查看帮助 help COMMAND 查看指定命令的详细帮助 COMMAND -h 查看指定命令的详细帮助 double tab 查看支持的所有命令 dashboard 查看线程JV ...

随机推荐

  1. Leetcode443.String Compression压缩字符串

    给定一组字符,使用原地算法将其压缩. 压缩后的长度必须始终小于或等于原数组长度. 数组的每个元素应该是长度为1 的字符(不是 int 整数类型). 在完成原地修改输入数组后,返回数组的新长度. 进阶: ...

  2. Ubuntu 链接ln的使用:创建和删除符号链接

    一 . 使用方式 ln [option] source_file dist_file (source_file是待建立链接文件的文件,dist_file是新创建的链接文件) -f 建立时,将同档案名删 ...

  3. Idea代理设置与Java程序的代理设置

    最近在学习WebService的过程中,为了弄清楚发送和接收的包的数据结构,使用Fiddler抓取包的数据.开始先配置了Idea的代理设置,但执行Java代码发送请求时,依然无法在Fiddler中抓取 ...

  4. Kubernetes 基于 ubuntu18.04 手工部署 (k8s)

    由于工作的需要, 手工部署一个 Kubernetes 环境(k8s).(以前都是云上搞定,拿来用) 习惯把这种工作记录下来,自己备查也和别人分享 网上相关文章很多, 我也参考了很多,这里推荐一个 链接 ...

  5. springmvc jsp向controller传参,一直为null

    怎么检查都无解 重启电脑好了

  6. 备忘录模式(Memento、Originator、Caretaker)(状态保存,备份恢复)

    定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样就可以将该对象恢复到原先保存的状态 类型:行为类 类图: 我们在编程的时候,经常需要保存对象的中间状态,当需要的时 ...

  7. ROWID的使用——快速删除重复的记录

    ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置.ROWID可以分为物理rowid和逻辑rowid两种.普通的表中的rowid是物理rowid,索引组织表(I ...

  8. git操作github指令

    常用git命令: $ git clone  //本地如果无远程代码,先做这步,不然就忽略 $ cd //定位到你blog的目录下 $ git status //查看本地自己修改了多少文件 $ git ...

  9. 理解async和await

    async 是“异步”的简写,而 await 可以认为是 async wait 的简写. 所以应该很好理解 async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执 ...

  10. The method getTextContent() is undefined ?

    晚上下班的时候,把班上写了半截的代码带了回来.结果回到家后出乎意料的是回来的时候将代码导入eclipse后,下面这行代码就直接报错了,显示 getTextContent()未定义 . ((Elemen ...