Arthas诊断工具快速入门:启动与连接指南
什么是Arthas
Arthas是阿里巴巴开源的一款强大的Java诊断工具,它可以帮助开发人员在不修改代码、不重启服务的情况下,实时查看JVM运行状态、诊断性能问题、监控方法调用等。无论是本地开发环境还是生产环境,Arthas都能提供强大的诊断能力。
启动Arthas的两种方式
1. 交互式启动方式
交互式启动是最常用的方式,适合大多数诊断场景。执行以下命令:
./as.sh
执行后会列出当前系统中所有的Java进程,并提示你选择要诊断的进程编号:
Found existing java process, please choose one and input the serial number of the process, eg: 1 . Then hit ENTER.
[1]: 3088 org.jetbrains.idea.maven.server.RemoteMavenServer
* [2]: 12872 org.apache.catalina.startup.Bootstrap
[3]: 2455
选择对应编号后回车,Arthas就会连接到目标JVM进程,并显示如下欢迎界面:
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. ''--. .--'| '--' | / O \ ' .-'
| .-. || '--'.' | | | .--. || .-. |`. `-.
| | | || |\ \ | | | | | || | | |.-' |
`--' `--'`--' '--' `--' `--' `--'`--' `--'`-----'
$
此时你已经成功连接到目标JVM,可以开始输入各种诊断命令了。
2. 非交互式启动方式
当你知道目标进程的PID时,可以直接指定PID启动:
./as.sh <PID>[@IP:PORT]
参数详解:
- PID:目标Java进程ID(确保当前用户有操作该进程的权限)
- IP:Arthas Server监听地址,默认127.0.0.1
- PORT:Arthas Server端口,默认3658
使用示例:
-
最简单的形式(使用默认IP和端口):
./as.sh 12345等价于:
./as.sh 12345@127.0.0.1:3658 -
指定IP和端口:
./as.sh 12345@192.168.1.100:3658
高级使用场景
远程诊断支持
Arthas支持远程连接,这在团队协作或生产环境诊断时非常有用:
-
首先在目标机器上启动Arthas Server:
./as.sh 12345 -
其他人员可以通过telnet连接:
telnet 192.168.1.100 3658
生产环境下的sudo支持
在生产环境中,通常不会直接使用root或应用部署账户,而是通过sudo来管理权限。此时启动Arthas需要加上-H参数:
sudo -u admin -H ./as.sh 12345
-H参数会保留当前用户的环境变量设置,确保Arthas能够正确运行。
Windows环境支持
Windows环境下使用as.bat脚本,目前仅支持指定PID:
as.bat 12345
注意事项
- 确保执行Arthas的用户对目标JVM进程有足够的操作权限
- 生产环境使用建议通过跳板机或专用网络连接,不要直接暴露3658端口
- 诊断完成后建议及时退出,避免长期占用资源
- 某些命令可能会影响JVM性能,生产环境使用前建议评估影响
通过以上介绍,你应该已经掌握了Arthas的基本启动和连接方法。接下来可以尝试使用各种诊断命令来排查JVM问题了。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



