Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
Arthas 支持 JDK 6+ ,支持 Linux 、 Mac 、 Windows ,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可:
$ curl -L https://alibaba.github.io/arthas/install.sh | sh
上述命令会下载启动脚本文件 as.sh 到 当前目录 ,你可以放在任何地方或将其加入到 $PATH 中。
直接在shell下面执行 ./as.sh ,就会进入交互界面。
也可以执行 ./as.sh -h 来获取更多参数信息。
通过 rpm/deb 来安装
在releases页面下载rpm/deb包: https://github.com/alibaba/arthas/releases
# 安装deb $ sudo dpkg -i arthas*.deb # 安装rpm $ sudo rpm -i arthas*.rpm # deb/rpm安装的用法,在安装后,可以直接执行 $ as.sh
在命令行下面执行(使用和目标进程一致的用户启动,否则可能attach失败):
$ curl -O https://alibaba.github.io/arthas/arthas-boot.jar $ java -jar arthas-boot.jar
sudo su admin && java -jar arthas-boot.jar 或 sudo -u admin -EH java -jar arthas-boot.jar 。 ~/logs/arthas/ 目录下的日志。 java -jar arthas-boot.jar --repo-mirror aliyun --use-http java -jar arthas-boot.jar -h 打印更多参数信息。 选择应用java进程:
$ $ java -jar arthas-boot.jar * [1]: 35542 [2]: 71560 arthas-demo.jar
Demo进程是第2个,则输入2,再输入 回车/enter 。Arthas会attach到目标进程上,并输出日志:
[INFO] Try to attach process 71560 [INFO] Attach process 71560 success. [INFO] arthas-client connect 127.0.0.1 3658 ,---. ,------. ,--------.,--. ,--. ,---. ,---. / O / | .--. ''--. .--'| '--' | / O / ' .-' | .-. || '--'.' | | | .--. || .-. |`. `-. | | | || |/ / | | | | | || | | |.-' | `--' `--'`--' '--' `--' `--' `--'`--' `--'`-----' wiki: https://alibaba.github.io/arthas version: 3.0.5.20181127201536 pid: 71560 time: 2018-11-28 19:16:24 $
# 在上面基础环境中执行 dashboard 命令 $ dashboard
基础教程 : https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics 进阶教程 : https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-advanced $ docker exec -it ${containerId} /bin/bash -c "wget https://alibaba.github.io/arthas/arthas-boot.jar && java -jar arthas-boot.jar"
$ kubectl exec -it ${pod} --container ${containerId} -- /bin/bash -c "wget https://alibaba.github.io/arthas/arthas-boot.jar && java -jar arthas-boot.jar"
FROM openjdk:8-jdk-alpine # copy arthas COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
如果想 指定版本 ,可以查看具体的tags: https://hub.docker.com/r/hengyunabc/arthas/tags
Arthas 是一个强大的 Java 诊断工具,可以分析 Java 代码bug带来的资源消耗等问题。
Arthas 详细使用方法,公众号后台回复 Arthas 获取Arthas详细参数思维导图。