工具软件—Linux下安装Arthas
1.Arthas简介
Arthas 是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
(1).这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
(2).我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
(3).遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
(4).线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
(5).是否有一个全局视角来查看系统的运行状况?
(6).有什么办法可以监控到 JVM 的实时运行状态?
(7).怎么快速定位应用的热点,生成火焰图?
(8).怎样直接从 JVM 内查找某个类的实例?
Arthas 支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
2.下载插件包
路径:https://arthas.aliyun.com/doc/download.html
本文下载的版本为:3.6.2
3.解压
linux 解压命令 unzip arthas-packaging-3.6.2-bin.zip
4.安装
linux 上执行 ./install-local.sh
5.启动
(1).进入arthas安装目录,执行命令:java -jar arthas-boot.jar
然后可以选择一个进程(输入1234这种编号),然后回车。
端口占用情况:
原因:
上一次选择进程进行连接没有正常退出,arthas会保存上一次监听进程,导致本次选择新进程进行连接时,与监听中记录的进程id不同,结果出现错误。
解决:
继续选择上一个进程进行连接,执行成功后执行 stop 命令结束连接。再次启动arthas,选择新进程即可进行连接。
(2). ./as.sh 命令启动
问题一:执行./as.sh命令报如下错误:
Error: telnet is not installed. Try to use java -jar arthas-boot.jar
原因:没有安装telent。
解决方法:
linux 安装 telnet 服务:
yum install telnet-server 安装telnet服务
yum install telnet.* 安装telnet客户端
问题二:安装telnet服务时报如下错误:
Could not resolve host: mirrorlist.centos.org; 未知的错误"
解决方式:
vim /etc/resolv.conf
插入:
nameserver 8.8.8.8
nameserver 8.8.4.4
(3).开启日志保存
arthas日志输出是默认关闭的,需要主动开启,开启步骤(前提需要启动Arthas)。
否则报如下问题:
命令:options save-result true
如下表示开启成功:
日志的路径一般都在:
root/logs/arthas-cache/result.log
开启保存日志原因:
一方面是线上请求众多,控制台日志一下子就会跳过去,不容易捕获;另一方面,有可能入参的内容庞大,控制台无法完整显示。
6.常用命令
(1).dashborad仪表板
(2).thread线程板
(3).jad反编译
(4).watch监测
(5).tt 命令
通过tt命令可实现重放请求
(6).trace命令
trace命令渲染和统计整个调用链路上的所有性能开销和追踪调用链路,很方便的定位性能瓶颈
(7). 退出Arthas
退出监控是就使用quit或者exit,
退出Arthas整个程序的就使用stop
具体可参看:
https://gitee.com/arthas/arthas/
7.IDEA添加arthas插件
添加成功后选择不同的指令,对应的命令即可复制到剪贴板。