大厂面试真题-Arthas有哪些常用的命令

Arthas是Alibaba开源的一款Java诊断工具,它可以在不重启JVM的情况下,动态地查看JVM运行状态、类加载情况、内存使用情况、线程执行情况等,帮助开发者轻松排查线上问题。以下是Arthas排查线上问题时常用的命令:

  1. dashboard:进入仪表盘,可以监控线程、内存状态、GC(垃圾回收)等信息,是查看JVM整体运行情况的快速入口。

  2. thread:用于查看线程情况。可以打印出所有线程的信息,或者打印出最忙的前N个线程。此外,还可以通过特定参数找出阻塞其他线程的线程,以及查看线程的堆栈信息等。

    • 打印全部线程:thread
    • 打印最忙的前10条线程:thread -n 10
    • 找出阻塞其他线程的线程:thread -b
  3. sc(search-class) :查看已经加载的类。例如,sc com.XXX.sgw.controller.* 可以查看指定包下的所有类。

  4. trace :追踪方法堆栈调用时间,输出各个节点的耗时。主要用于响应慢的时候,帮助开发者找到性能瓶颈。例如,trace com.XXX.controller.api.ServiceGatewayV1Controller list 可以追踪指定方法的调用链路和耗时。

  5. watch :查看程序调用的入参和出参,类似于debug功能。例如,watch com.XXX.controller.api.ServiceGatewayV1Controller list "{params[0],params[1],returnObj}" 可以观察指定方法的参数和返回值。

  6. tt(time-tunnel) :记录方法执行数据的时空隧道,可以回溯方法的执行情况。例如,tt -t com.XXX.vo.PageVo getPageSize 可以记录指定方法的执行情况,然后通过tt -i <record-id> -w "target.getPageSize()"来回溯方法的执行结果。

  7. stack :查看方法被调用的路径。例如,stack com.XXX.service.impl.PostgresqlServiceImpl customQuery 可以查看指定方法的调用路径。

  8. jad :反编译线上代码,查看源代码的详细信息。例如,jad --source-only com.yingzi.data.sgw.controller.api.ServiceGatewayV1Controller 可以反编译指定类并查看其源代码。

  9. monitor :统计方法的调用情况,包括调用次数、成功次数、失败次数和平均响应时间等。例如,monitor -c 3 com.yingzi.data.sgw.controller.api.ServiceGatewayV1Controller list 可以以3秒为一个时间窗口,统计指定方法的调用情况。

  10. profiler :生成火焰图,帮助分析CPU占用情况。例如,profiler start 可以启动CPU火焰图的采集,profiler stop 可以停止采集并生成火焰图文件。火焰图的X轴代表采样总量(所有执行的耗时CPU的方法),Y轴代表方法的调用栈深度,每一层都是一个方法。通过火焰图,开发者可以直观地看到哪些方法占用了大量的CPU资源。

此外,还有一些其他常用的命令,如cls(清空面板)、exit(退出当前会话)、stop(关闭Arthas)等。这些命令可以帮助开发者更高效地排查线上问题,提高问题解决的效率。

相关推荐
武子康1 小时前
AI-调查研究-76-具身智能 当机器人走进生活:具身智能对就业与社会结构的深远影响
人工智能·程序人生·ai·职场和发展·机器人·生活·具身智能
Bellafu6661 小时前
spring项目部署后为什么会生成 logback-spring.xml文件
java
递归不收敛1 小时前
一、Java 基础入门:从 0 到 1 认识 Java(详细笔记)
java·开发语言·笔记
沐浴露z2 小时前
【Java SpringAI智能体开发学习 | 2】SpringAI 实用特性:自定义Advisor,结构化输出,对话记忆持久化,prompt模板,多模态
java·spring·springai
小沈同学呀2 小时前
创建一个Spring Boot Starter风格的Basic认证SDK
java·spring boot·后端
码农小伙2 小时前
通俗易懂地讲解JAVA的BIO、NIO、AIO
java·nio
不要再敲了3 小时前
JDBC从入门到面试:全面掌握Java数据库连接技术
java·数据库·面试
潇I洒4 小时前
若依4.8.1打包war后在Tomcat无法运行,404报错的一个解决方法
java·tomcat·ruoyi·若依·404
凤山老林4 小时前
SpringBoot 轻量级一站式日志可视化与JVM监控
jvm·spring boot·后端
Funcy4 小时前
XxlJob 源码分析05:执行器注册流程
java