问题诊断神器arthas
https://github.com/alibaba/arthas
镜像地址 https://gitee.com/arthas/arthas
基本原理: 工具atach到jvm进程上, 和远程debug类似 参考premain agentmain
比较有用的内容:
查看线程数
查看cpu,内存占用率
查看方法调用参数,响应时间
反编译线上代码
1. 反编译 jad的用法
下载地址
linux下载这个

命令行下面使用方式:  jad -sjava   xxx.class

2. 类冲突,查看类是哪个jar加载的
sc -d xxx.xxx.Xxx

3. 热修复
redefine
cglib代理过的类能替换    内部类替换
默认controller没有使用cglib代理, 在使用AOP拦截controller时会生成cglib的代理
注意事项

退出使用stop shutdown,  不要使用quit exit,   终端时间过长可能自动断开, 此时JVM上的内存还在占用!!!
问题诊断神器arthas的更多相关文章
- 阿里巴巴开源性能监控神器Arthas初体验
		
如果问性能测试中最难的是哪部分,相信很多人会说“性能调优”.确实是这样,性能调优是一个非常复杂.技术含量很高的工作.涉及到的知识面很广.以我多年从业经验来看,在企业里,大多数的性能调优都是由开发架构师 ...
 - 线上问题排查神器 Arthas
		
线上问题排查神器 Arthas 之前介绍过 BTrace,线上问题排查神器 BTrace 的使用,也说它是线上问题排查神器.都是神器,但今天这个也很厉害,是不是更厉害不好说,但是使用起来非常简单.如果 ...
 - 阿里巴巴开源性能监控神器Arthas jvm
		
原文:https://www.cnblogs.com/testfan2019/p/11038791.html 如果问性能测试中最难的是哪部分,相信很多人会说“性能调优”.确实是这样,性能调优是一个非常 ...
 - Java线上问题排查神器Arthas快速上手与原理浅谈
		
前言 当你兴冲冲地开始运行自己的Java项目时,你是否遇到过如下问题: 程序在稳定运行了,可是实现的功能点了没反应. 为了修复Bug而上线的新版本,上线后发现Bug依然在,却想不通哪里有问题? 想到可 ...
 - Java线上问题排查神器Arthas实战分析
		
概述 背景 是不是在实际开发工作当中经常碰到自己写的代码在开发.测试环境行云流水稳得一笔,可一到线上就经常不是缺这个就是少那个反正就是一顿报错抽风似的,线上调试代码又很麻烦,让人头疼得抓狂:而且deb ...
 - jvm调优神器——arthas
		
在上一篇<jvm调优的几种场景>中介绍了几种常见的jvm方面调优的场景,用的都是jdk自带的小工具,比如jps.jmap.jstack等.用这些自带的工具排查问题时最大的痛点就是过程比较麻 ...
 - JAVA神操作--使用Arthas线上热更新实战
		
热更不规范,同事两行泪 背景 C君是一个javaer,最近在开发用户登出接口的时候,不小心把接口参数拼错了 正确的是: /api/v1/user/logout?referrer=www.javaer. ...
 - Java诊断利器Arthas
		
1 简介 Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 ...
 - 一文学会Java死锁和CPU 100% 问题的排查技巧
		
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开 工欲善其事,必先利其器 00 本文简介 作为一名搞技术的程序猿或者是攻城狮,想必你应该是对下面这两个问题有所了解,说不定你在 ...
 
随机推荐
- 将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'puyang.ServiceType' doesn't exist
			
将一模一样的项目从win迁移到到linux上报错: 一开始还是以为是linux不能识别hql语句,查找资料发现是因为Liunx服务器上mysql是区分大小写的,而本地是不区分的如:代码是这样写的 @E ...
 - jQuary总结11:jQuery插件封装---jQuery封装 手风琴 动画插件
			
完整代码下载点击我的GitHub: https://github.com/XingJYGo/jquery-accordion 1 手风琴的效果展示如下: 2 封装插件目录结构如下: 主要包括:HTML ...
 - SpringMVC源码解读 - HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化
			
AbstractDetectingUrlHandlerMapping是通过扫描方式注册Handler,收到请求时由AbstractUrlHandlerMapping的getHandlerInterna ...
 - MATLAB搬移到别的电脑出现License Manager Error -9
			
是注册码的问题,不需要重装,主要是以前的安装包不见了.解决办法: 下一个KeyGen的MLMCrypt.exe文件.运行之后在当前目录下出现一个LICENSE.DAT文件. 复制到matlab.exe ...
 - Eclipse快捷键和练习题(倒叙,排序)
			
1 快捷键 内容辅助键 Alt+/ 自动补齐main方法 main 然后 Alt+/ 自动补齐输出语句 syso 然后 Alt+/ 格式化Ctrl+Shift+f 代码区域右键 -- So ...
 - [Lua快速了解一下]Lua的OOP
			
__index(a, b) 对应表达式 a.b 上面我们看到有__index这个重载,这个东西主要是重载了find key的操作.这波操作可以让Lua变得有点面向对象的感觉,让其有点像Javascri ...
 - 对ArrayList(Vector)的排序
			
当需要对ArrayList(Vector)里面的元素进行简单的排序时,可以使用Collections.sort();这个方法 import java.util.ArrayList; import ja ...
 - java的++和--操作符
			
只要是会java的都知道++和—操作符的用法,如 int i = 1; int j = i++; int k = ++i; 结果i为3,j为1,k为3. 那如下代码: int j = 0; for ( ...
 - sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别(转)
			
sqlite数据库存储table1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不 ...
 - java 调用javascript
			
首先我们在D盘的根目录下有一个js文件 名叫 common.js 假设里面有一个这样的方法 /** * @param int * _number 你想要的最大值 * @param ...