【Java】java | arthas 使用 | arthas分析接口性能

文章介绍了如何利用Arthas工具对响应时间长达9s的查询接口进行排查。通过安装和运行Arthas,使用dashboard命令查看JVM配置,以及trace命令追踪接口耗时,发现耗时点在于多个逻辑部分,提出了针对统计查询的缓存优化策略和对于for循环的潜在优化可能性。
摘要由CSDN通过智能技术生成

一、概述

        1、有个查询接口,响应9s,需要排查下什么问题

        2、常规操作是在关键节点的前后获取System.currentTimeMillis(),然后相减

        3、其实阿里好用的工具arthas,学用分析

二、安装arthas

1、指导文档

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

2、直接下载

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

3、jdk依赖

        1)说是1.7+,现在直接用1.8吧

        2)jdk11及以上,没有试,自行尝试

~~

 三、运行与使用说明

1、使用说明

        1)arthas提供两种方式,一种是按需运行、实时排查;一种是agent代理运行应用jar包

        2)agent代理方式,本文不描述;实际场景,用实时排查就行,毕竟不是一直有问题

2、运行arthas

java -jar arthas-boot.jar

        1)运行时候,第一次会下载依赖,默认走的是阿里的源,一般没问题

        2)运行成功,选择准备分析的项目,就进入到控制台了

~~

 四、常用指令

1、命令使用说明

1)文档地址

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

2)退出的话用指令quit即可

quit

~~

2、dashboard

1)命令

dashboard

2)进入控制台,直接输入即可

3)这个只是了解当前JVM的配置

4)框出来的是什么意思,自行学习吧

~~

3、接口耗时定位

1)首先启动arthas并进入相应项目

2)确定接口所在类-方法,类需要全路径

3)执行命令

trace com.包路径.TestController list

4) 类名TestController,换成自己的

5) 方法名list,换成自己的

6)回车执行,等待收集结果

7) trace是个非实时命令,即会收集多次请求接口

8)看图

9)前面是耗时,后面是方法调用跟踪,真实项目就删掉了

10)分析耗时1: 本来认为只有一个地方耗时,没想到是多个

11)分析耗时2: 对比业务场景,耗时也是合理;第一次接口请求涉及计算,耗时可以正常;第二次耗时,在for遍历,看下代码,的确有优化的空间

12)分析耗时3: 有个统计,实时查了;统计虽然讲实时性,也有优化的方案

13)分析结论

        - 第一次请求需要计算的逻辑,不能修改,保留

        - 统计查询,增加缓存,即key为查询条件md5,用redis;新增记录时,手动删除缓存

        - for耗时,待定

~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值