Arthas 是阿里开源的 Java 会诊器具陇南隔热条设备厂家家,需修改代码 / 重启行状,即可在线排查 Linux 下 Java 行状问题,以下是从装配到中枢用法的完好教程:
、快速装配 & 启动
1. 装配(Linux 行状器上操作)
# 下载arthas-boot.jar(阿里官源)curl -O # 启动(会列出现时Java进度,遴荐要监控的PID即可)java -jar arthas-boot.jar
启动后会披露肖似如下列表,输入数字(比如1)遴荐要会诊的 Java 进度,回车插足 Arthas 戒指台:
二、中枢:替代 JConsole 的监控武艺
1. 及时仪容盘(中枢!替代 JConsole 的概览面板)
dashboard
2. 内存监控(对应 JConsole “内存”)
jvm
3. 线程监控(对应 JConsole “线程”)
# 检察悉数线程情景(ID、称号、情景、CPU占用)thread# 检察阻难/恭候的线程(!排查卡顿)thread -b # 找出现时阻难其他线程的“元凶”线程thread -w # 检察处于WAITING情景的线程# 检察指定线程的栈信息(替换为线程ID/称号)thread 46 # 检察ID=46的线程栈,对应JConsole“线程→栈追踪”
三、频会诊场景(比 JConsole 强的)
1. 排查慢接口 / 法
# 监控指定法的推行耗时(替换为你的类+法名)trace com.xxx.Service queryData # 追踪法调用链路+耗时watch com.xxx.Service queryData '{cost}' -x 2 # 检察法推行耗时(单元:ms)
trace
trace是 Arthas 中追踪法调用链路的中枢大喊陇南隔热条设备厂家家,能输出
①主义法的总推行耗时;
②法里面调用的悉数子法(包括三库、JDK 内置法);
③每个子法的推行耗时和占比;
④甚而能拿获法推行中的十分。
粗浅说:trace 是 “追本求源”,告诉你主义法慢在哪个子才能。
电话:0316--3233399# 基础语法trace 类全杀青名 法名 [可选参数]# 示例:追踪 com.xxx.Service 类的 queryData 法trace com.xxx.Service queryData
先找到接口的旅途,推行大喊,运转监听
trace com.hnevol.client.bases.controller.org.LibDeptController getBasicDeptTree
圭臬页面考察接口,隔热条PA66输出经过
跳动分析接口
查询耗时27和48鉴识属于查询和调养两个才能
要津参数 & 进阶用法
watch
watch是 Arthas 中机动的法数据不雅测大喊,不错:
①监控法的入参、复返值、十分、推行耗时;
②按要求过滤(如只看耗时 > 500ms 的调用);陇南隔热条设备厂家家
③自界说输出体式(只看你关注的字段)。
# 基础语法watch 类全杀青名 法名 不雅测抒发式 [可选参数]# 示例:不雅测 queryData 法的推行耗时watch com.xxx.Service queryData '{cost}' -x 2
内置变量(平直可用)
基础数据不雅测
# 不雅测耗时watch com.xxx.Service query '{cost}' -x 2# 不雅测入参+复返值watch com.xxx.Service query '{params, returnObj}' -x 2# 不雅测入参(仅个入参)+耗时watch com.xxx.Service query '{params[0], cost}' -x 2# 不雅测十分信息(仅法抛出十分时输出)watch com.xxx.Service query '{throwExp, cost}' -x 2 -e
复杂数据索求(结对象属)
# 不雅测入参的某个属(如入参是User对象,索求其name属)watch com.xxx.Service query '{params[0].name, returnObj.data}' -x 3# 不雅测对象实例的属(如target是Service实例,索求其成员变量config)watch com.xxx.Service query '{target.config, cost}' -x 2
要求过滤不雅测
# 仅不雅测耗时>500ms的调用watch com.xxx.Service query '{params, cost}' -x 2 '#cost > 500'# 仅不雅测入参中id=1001的调用watch com.xxx.Service query '{params, returnObj}' -x 2 '#params[0].id == 1001'
watch com.hnevol.client.bases.service.org.impl.LibDeptServiceImpl getBasicDeptTree '{params, returnObj}' -x 2
trace vs watch:中枢区别(如何选?)
2. 反编译类(排查代码是否生)
jad com.xxx.Service # 反编译指定类,检察运行时的本色代码
jad com.hnevol.client.bases.service.org.impl.LibDeptServiceImpl
3. monitor: 法推行频率 / 奏遵循监控(永久不雅测)
# 每5秒统计次,监控queryData法的推行情况monitor -c 5 com.xxx.Service queryData
4. stack: 检察法调用栈 (定位法被谁调用)
# 检察queryData法的调用栈(只输出前5次)stack com.xxx.Service queryData -n 5# 只检察耗时>100ms的调用栈stack com.xxx.Service queryData '#cost > 100'
5. tt: 法推行数据录制 (回放问题)
录制法的入参、复返值、耗时等数据,赞助回放调用(复现偶提问题)
# 录制queryData法的推行数据(记载前10次调用)tt -t com.xxx.Service queryData -n 10# 检察录制的记载(会生成index编号)tt -l# 回放指定index的调用(复现问题,本色业务影响)tt -p -i 1000 # 1000是录制的index编号
追念:
接口慢,定位慢子法:trace -> stack
接口偶发失败/ 耗时波动:watch -> monitor -> tt
考证线上代码:jad
内存占用:dashboard -> jvm
线程监控:dashboard -> thread
四、坐蓐环境使用提议
1、加 -n 参数:避大喊直运行刷屏,比如 trace com.xxx.Service queryData -n 5(只看 5 次调用);
2、按耗时过滤:先用 #cost > 阈值 筛选慢调用,比如 watch ... '#cost > 500'(只看过 500ms 的调用);
3、权限致:启动 Arthas 的用户需和 Java 进度运行用户致(不然权限监控);
4、低峰期测试:trace 大喊有幽微能支出陇南隔热条设备厂家家,坐蓐环境提议在低峰期使用。
相关词条:不锈钢保温施工 塑料管材生产线 钢绞线厂家 玻璃棉板 泡沫板橡塑板专用胶

