Arthas使用

 

文档

https://arthas.aliyun.com/doc/

安装使用流程

1. 下载安装Arthas

curl -O https://arthas.aliyun.com/arthas-boot.jar

如果服务器无法访问互联网,也可以通过手动下载压缩包的放到服务器中解压

Arthas使用_第1张图片

2.找到要监测的服务的进程号

通过 lsof -i :[port]  或者  ps -aux | grep [service-name]   其中 [port]是服务的端口号, [service-name]服务的名称

3. 运行 arthas-boot.jar

java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar

这里如果已经配合了jjava的环境。则可以使用以上的命令运行,只要将arthas-boot.jar的路径改为自己实际中的路径即可。如果没有配置java环境,则需要到指定jdk的bin目录运行语句:

./java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar

4. 选择进程号对应的编号 

例如如图 进程18957对应的是 10,所以我们输入 10

Arthas使用_第2张图片

Arthas使用_第3张图片

这样我们就可以使用Arthas的命令了。

5. 结束或者退出

命令的结束可以使用 ctrl + c 或者 q 结束。如果退出Arthas则使用 stop命令即可。

常见配置

1. 结果、参数以json的方式输出

 执行命令 : options json-format true

Arthas使用_第4张图片

2. 开启执行结果存日志功能(默认是关闭的)

执行命令: options save-result true

3. 把监控的类dum出class文件,然后通过反编译文件进行查看

执行命令: options dump true   

 

问题以及解决办法

1.启动报错

运行 : ./java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar  或者  ./java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar [pid]

报错:
  

 [INFO] arthas-boot version: 3.3.9
    [INFO] Can not find java process. Try to pass  in command line.
    Please select an available pid.

原因:---- 只装jre的环境或者安装的是严格版的jre 没办法运行 arthas-boot.jar ,需要安装完整的jdk。

2.   运行提示不存在java命令 

./java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar  

提示没有java命令

原因:---- 没有配置jdk环境,需要配置jdk环境 或者 到指定jdk安装目录的bin目录下执行 

3. 选择进程对应的编号之后,报错 

The telnet port 3658 is used by process 20017 instead of target process 18957, you will connect to an unexpected process.

原因: -- 之前已经使用Arthas运行了20017的进程,但是没有退出,先要进到原来的监控中运行stop命令。 

4. 启动报错

运行 : ./java -jar /home/hik/arthas/arthas-boot.jar

[ERROR] Start arthas failed, exception stack trace: 
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
	at sun.tools.attach.LinuxVirtualMachine.(LinuxVirtualMachine.java:106)
	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:86)
	at com.taobao.arthas.core.Arthas.(Arthas.java:28)
	at com.taobao.arthas.core.Arthas.main(Arthas.java:124)

Arthas使用_第5张图片

解决办法 : 运行时加上进程号    ./java -jar /home/hik/arthas/arthas-boot.jar 12054

 

你可能感兴趣的:(linux,java)