arthas精准定位Java应用CPU负载过高问题

简介: 通过Arthas的watch命令监控DispatcherServlet的getHandler方法,快速定位Spring MVC中处理请求的Controller;结合反编译功能,实时查看目标代码,提升排查效率。

1.前言
尝试一:定位哪个Controller执行了代码
前言

trace指令能追踪调用链路,而Springmvc应用都是借助于:javax.servlet.Servlet * 执行的
watch指令能够实时监测指定方法的:返回值,抛出异常,入参,同时支持OGNL操作
实践
为了节省时间,这里直接给出实施方案,采用watch指令,命令如下[监听内容是依靠trace的内容决定的,但是SpringMvc应用都是一样的,所以可以复用]:
watch org.springframework.web.servlet.DispatcherServlet getHandler returnObj
发起调用会看到打印信息,就能迅速定位到对应的代码
image.png

尝试二:反编译查看代码

image.png

相关文章
|
3天前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍如何使用Arthas排查线上Java应用CPU占用过高问题。通过`thread`定位高耗能线程,`watch`监控方法调用与异常,结合`jad`反编译与`redefine`实现热更新,无需重启服务即可修复代码,提升线上问题响应效率。适用于SpringBoot + JDK8环境。
|
4天前
|
存储 安全 网络协议
web阶段
HTTP协议即“超文本传输协议”,是客户端与服务器通信的规则,基于TCP协议,具有无状态、面向连接的特点。现代Web开发多采用HTTP或HTTPS协议。二者主要区别在于安全性:HTTP明文传输,端口80;HTTPS通过SSL加密,端口443,更安全但耗资源。常见请求方式中,GET用于获取数据,参数暴露在URL,有长度限制。
|
4天前
|
Java Nacos 数据安全/隐私保护
ruoyi 微服务版本
若依(RuoYi-Cloud)是基于Spring Boot、Spring Cloud与Alibaba的分布式微服务权限管理系统,支持Vue3前端。含网关、认证、系统、监控等模块,集成Nacos、Sentinel,提供代码生成、定时任务等功能,适用于快速构建企业级云架构应用。
|
4天前
|
前端开发 算法 Java
2025最新Java面试题
涵盖Java基础、算法、Web开发、主流框架(Spring/SpringBoot/SpringCloud)、数据库及常用组件,提供前端、人事、Agent等多类面试题,含《中州养老》《云岚到家》等实战项目解析,持续更新面试录音与复盘资料。
|
5月前
|
监控 安全 Java
SpringBoot应用-Actuator监控
Spring Boot Actuator 是 Spring Boot 提供的一个独立模块,旨在通过简单的方式提供应用程序的监控和管理功能。Actuator 内置了多种端点(Endpoints),可以用于查看应用的健康状况、配置属性、日志级别等。
953 1
|
消息中间件 存储 设计模式
Kafka原理篇:图解kakfa架构原理
Kafka原理篇:图解kakfa架构原理
876 1
|
Kubernetes 监控 网络协议
在K8S中,Pod不同探针有何区别?
在K8S中,Pod不同探针有何区别?
|
SQL 缓存 安全
深入解析MyBatis-Plus LambdaQueryWrapper与QueryWrapper:高效数据查询的秘密
深入解析MyBatis-Plus LambdaQueryWrapper与QueryWrapper:高效数据查询的秘密
14240 2
|
Kubernetes 负载均衡 应用服务中间件
k8s学习--ingress详细解释与应用(nginx ingress controller))
k8s学习--ingress详细解释与应用(nginx ingress controller))
2305 0