arthas入门使用,java面试官手册

  • 线上代码有错误,不想重新发布?那能不能改class文件替换一下?

二、使用步骤

=========================================================================

1. 安装


wget https://alibaba.github.io/arthas/arthas-boot.jar

2. 启动


java -jar arthas-boot.jar

//使用arthas console时暴露本机ip

java -jar arthas-boot.jar --target-ip ...

arthas启动后会自动发现已经运行的java程序


三. 常用命令

==========================================================================

  1. 查看线程、GC、内存、运行环境信息

dashboard

arthas入门使用,java面试官手册_第1张图片

  1. 查看方法调用链路及耗时

stack com.hfi.controller.UserController getAccessToken

trace com.hfi.controller.UserController getAccessToken

trace

  1. 查看线程资源使用情况

//查看所有线程

thread

//查看指定的线程的线程栈信息

thread id

//查看最忙的前n个线程的线程栈信息

thread -n n

//查看当前阻塞其他线程的线程

thread -b

arthas入门使用,java面试官手册_第2张图片

  1. 热部署java类

//1. 编译出源码

jad --source-only com.hfi.controller.UserController > /usr/test/UserController.java

//2. 查询代码的类加载器实例

sc -d com.hfi.controller.UserController | grep classLoaderHash

//3. 编译修改后的代码:-d 指定编译后的class文件输出目录

mc -c 7daf6ecc /usr/test/UserController.java -d /usr/test

//4. 重新加载class文件到内存

redefine /usr/test/com/hfi/controller/UserController.class

四、问题处理

=========================================================================

问题一:cpu飙高,内存使用正常


《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享


  1. 查看线程资源使用情况

arthas入门使用,java面试官手册_第3张图片

  1. 线程id为13的线程占满了cpu,查看该线程的堆栈情况,可定位到代码片段为UserService的第22行

你可能感兴趣的:(程序员,面试,java,后端)