如何使用arthas监听项目性能耗时?

本文介绍了如何下载和启动Arthas工具来追踪Java应用中的controller和service方法,以及如何配置Telnet监听和解决可能的连接问题,以优化性能分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先需要下载并解压arthas项目
在这里插入图片描述
2.下载完成后启动你的项目,再启动我们的arthas:进到我们的bin目录
在这里插入图片描述
在该路径下进到命令行窗口 java -jar arthas-boot.jar运行arthas

java -jar arthas-boot.jar

找到自己已经启动的项目对应的编号输入按回车即可,如下图所示
在这里插入图片描述

3.就可以使用arthas来监听我们的项目了
tace追踪controller trace 全限定类名 方法名字 ,执行

trace --skipJDKMethod false com.lwy.controller.DataStatisticsController getBar2

在这里插入图片描述

4.打开新的cmd窗口再次链接到我们的arthas项目,后继续追踪耗时高的方法(逐层追踪)
具体步骤先后执行一下两个语句,如telnet 报错看最后面

telnet localhost 3658                     
trace --skipJDKMethod false com.lwy.service.impl.TLostFoundServiceImpl createBar2 --listenerId 1

解释: listenerId 1是第一个窗口的监听器id

窗口2
在这里插入图片描述
窗口一
在这里插入图片描述
可以清晰的看出耗时占比

如果telnet报错
1.打开控制面板:你可以通过在开始菜单中搜索 “控制面板” 或者在运行对话框(Win + R)中输入 “control” 来打开控制面板。
2.进入 “程序” 或 “程序和功能”:根据你的 Windows 版本,可能会有不同的选项名称。你可以通过查找类似于 “程序”、“程序和功能”、“卸载程序” 的选项来进入。
3.点击 “启用或关闭 Windows 功能”:在 “程序和功能” 窗口中,你应该能够看到一个链接,名为 “启用或关闭 Windows 功能”。点击它来打开 “Windows 功能” 对话框。
4.启用 Telnet 客户端:在 “Windows 功能” 对话框中,你会看到一些可选的 Windows 功能。在这里找到 “Telnet 客户端” 选项,并勾选它。
5.点击 “确定” 或 “应用”:勾选完 “Telnet 客户端” 后,点击 “确定” 或 “应用” 按钮来保存更改。
在这里插入图片描述

使用 Arthas 监控和查看请求耗时的过程中,可以通过多种命令实现对 Java 应用中特定类、方法以及线程的性能分析。以下是几种常用方式: ### 使用 `trace` 命令追踪方法调用链路耗时 Arthas 的 `trace` 命令可以用来追踪某个方法的执行路径及其子调用的耗时情况,这对于定位性能瓶颈非常有用。例如,若需要监控一个 Spring Boot 接口中的具体方法,可使用如下命令: ```bash trace com.example.controller.MyController myMethod ``` 此命令将输出该方法内部所有子调用的详细耗时信息,并以树状结构展示整个调用链路的时间分布。 如果希望包含 JDK 内部方法的调用信息,则可以加上 `--skipJDKMethod false` 参数[^4]: ```bash trace --skipJDKMethod false com.example.controller.MyController myMethod ``` ### 使用 `dashboard` 查看系统整体运行状态 启动 Arthas 后,可以通过 `dashboard` 命令打开监控界面,实时查看系统的线程状态、内存使用情况、GC 情况等关键指标。这有助于快速识别是否存在线程阻塞或资源占用异常等问题。 ### 通过 `thread` 和 `sm` 命令结合排查热点线程与方法 当发现应用存在明显延迟时,首先利用压测工具对系统进行压力测试,然后通过 `thread` 命令查找当前最繁忙的线程 ID。接着,使用 `thread <id>` 可以查看该线程堆栈信息,进一步结合 `sm` 命令查询该线程所属类下的所有方法列表,从而缩小问题范围并聚焦于具体的代码段[^1]。 ### 示例:监听 Controller 层接口耗时 假设有一个名为 `DataStatisticsController` 的控制器类,其中包含一个名为 `getBar2` 的接口方法,想要对其执行过程进行性能剖析,可以直接运行以下命令: ```bash trace --skipJDKMethod false com.lwy.controller.DataStatisticsController getBar2 ``` 上述操作会返回详细的调用轨迹及每一步骤的具体耗时,帮助开发者精准定位到潜在的性能瓶颈所在[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值