通过Arthas监控诊断线上运行的程序

一般Java程序在服务器运行时,如果我们采用的是Oracle的JDK,则可以通过JVisualVM、jmc、JConsole等JDK提供的监控工具来对运行的程序做监控、分析、诊断;即使运行环境没有图形界面(无图形界面的Linux)时,仍可通过XManager中将JVisualvm重定向到一个Windows桌面也是可以监控的,参见【文章】; 但是如果程序运行环境没有采用的OpenJDK的话则没有这些监控工具可用; 此时就可以通过Arthas工具来实现对线上正在运行的程序做监控、分析、诊断; 

还有一种情况,虽然是Windows环境,采用的也是Oracle的JDK,但是JVisualVM、jmc、JConsole等JDK提供的监控工具都不显示本机运行的java进程,以管理员身份运行也不行,此时就可以采用Arthas的as.bat [进程ID]来实现监控java程序

Arthas官方网站

Arthas下载地址

以Windows为例来演示,Linux也是一样的(只有启动脚本是.sh,Windows是.bat)

一、下载Arthas运行环境

参照上图,下载arthas-bin.zip; 

二、获取目标运行程序的进程ID

进程ID为1564

三、启动Arthas监控1564进程

第一次启动前要设置好JAVA_HOME的系统环境变量

#D:\work\soft\arthas-bin是arthas-bin.zip的解压目录
D:\work\soft\arthas-bin>as.bat 1564 

回车后即可进入arthas命令行操作界面

#执行dashboard命令后会每少刷新一次,按Ctrl+C退出dashboard,回到arthas命令模式
[arthas@1564]$ dashboard 

 四、[重点]导出运行程序的堆栈信息到txt文本文件中

[arthas@1564]$ thread -n 1000 >> D:/work/soft/arthas-bin/thread-dump.txt  

   五、[重点]输出运行程序的所有线程状态

 更多的用法请参见Arthas在线文档https://arthas.aliyun.com/doc/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老杜095

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值