Arthas 是淘宝出的一款Java性能分析工具。
Arhtas tunnel 是一个web服务,主要作用就是集中式连接Arthas的客户端。
安装
下载地址
https://github.com/alibaba/arthas/releases
下载 arthas-tunnel-server-3.5.3-fatjar.jar 到服务器
启动
nohup java -jar arthas-tunnel-server.jar &tail -200f nohup.log
启动日志如下:
arthas tunnel 是一个服务,他需要两个端口,默认 8080 和 7777 。8080 端口是web访问端口。7777 是websocket通信端口。
访问
http://192.168.0.251:8080,如下图:
连接客户端
当连接客户端的时候,需要输入 AgentId 。
当客户端服务启动的时候,会连接Arthas Tunnel服务端,在日志里面会有打印客户端Id如下:
也就是说,我们的AgentId是 serverName-Port ,如:kxt-seats-service 服务,端口是8083,那么AgentId 就是 kxt-seats-service-8083 。
这个规则在客户端程序可以配置。
确定了AgentId,接下来试试连接客户端,如下:
输入了AgentId,点击Connect 出现以下界面,表示连接成功。
程序修改
依赖
<dependency>
<groupId>com.taobao.arthas</groupId>
<artifactId>arthas-spring-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>
配置
arthas:
http-port: 0
telnet-port: 0
tunnel-server: ws://121.37.158.191:7777/ws
# tunnel-server: ws://192.168.0.151:7777/ws
agent-id: ${spring.application.name}-${server.port}
- 如果配置
arthas.telnetPort为 -1 ,则不listen telnet端口。arthas.httpPort类似。 - 如果配置
arthas.telnetPort为 0 ,则随机telnet端口。arthas.httpPort类似。 arthas.tunnel-server是websocket连接地址,将服务自身注册到arthas tunnel server上。agent-id是服务的id,用户从可视化界面连接arthas客户端,进行法分析。
注意:请把这个文件配置到nacos中,文件名是: arthas.yaml ,如下图:
内存监控
dashboard

Dump日志生成
heapdump /var/log/system-service090401.hprof

导出成功后,在服务器日志目录就会有这个文件。
