复制代码

为懒人提供无限可能,生命不息,code不止

人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
  • 首页
  • 前端
  • 后台
  • 数据库
  • 运维
  • 资源下载
  • 实用工具
  • 接口文档工具
  • 登录
  • 注册

其它

【原创】arthas排查java应用中的cpu,内存,性能异常

作者: whooyun发表于: 2024-07-16 10:31


环境:

jdk17

框架:

spring6,springboot3,arthas-boot3.7.2

目标:

熟悉springboot3整合arthas,并能通过网页进行命令操作,排查内存异常,cpu异常,java代码性能异常


操作步骤:
1、springboot项目中引入 arthas-spring-boot-starter 3.6.7
2、application.properties配置一下属性:
arthas.telnet-port=-1    # 禁止了telnet端口,也可以开启
arthas.http-port=8563    ##http请求的端口地址,没被占用就行
arthas.agent-id=werttyrty3456  ##唯一id就行,无其他要求
arthas.tunnel-server=ws://10.1.4.64:7777/ws #tunnel-server web-console地址,可不配置
3、使用命令启动arthas-boot.jar,并选择对应的java进程
命令:java -jar arthas-boot.jar
3、页面访问地址:
http://localhost:3658/
4、核心命令:thread,stack,heapdump(个人觉得好用的)
thread 可查看当前容器内的所有线程及简单的堆栈信息,类似于thread --all(显示所有匹配的线程),更多看文档https://arthas.aliyun.com/doc/thread.html
stack  跟踪被调用的类及方法,尤其出现aop注解等情况时,可跟踪类调用顺序及调用了哪些
heapdump 可导出当前java应用中java对象信息,堆栈信息(可用idea直接open这个文件)


扩展知识:
1、紧急情况,我更喜欢使用jstate,jstack 排查问题,毕竟jdk内置的,更方便和快捷(虽然提供的特性没arthas多),实在不行再上arthas