Arthas之类操作】的更多相关文章

Arthas之类操作 1. classLoader 查询当前JVM中存在的classloader classloader name numberOfInstances loadedCountTotal BootstrapClassLoader 1 2340 com.taobao.arthas.agent.ArthasClassloader 1 1345 sun.misc.Launcher$AppClassLoader 1 145 sun.misc.Launcher$ExtClassLoader…
前言 在使用 Arthas 之前,当遇到 Java 线上问题时,如 CPU 飙升.负载突高.内存溢出等问题,你需要查命令,查网络,然后 jps.jstack.jmap.jhat.jstat.hprof 等一通操作.最终焦头烂额,还不一定能查出问题所在.而现在,大多数的常见问题你都可以使用 Arthas 轻松定位,迅速解决,及时止损,准时下班. 1.Arthas 介绍 Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具.支持 JDK6+, 采用命令行交互模式,提供…
Arthas之实例操作 1. 静态类属性操作 获取public静态属性 ognl -c 7cd84586 '@com.system.framework.ArtahsDemoClassLoader@pubTestPrex' ognl -c 7cd84586 "@com.system.framework.ArtahsDemoClassLoader@pubfinalTestPrex" 输出各式 @Type[属性值],内容如下 @String[static public] ... @Strin…
热更不规范,同事两行泪 背景 C君是一个javaer,最近在开发用户登出接口的时候,不小心把接口参数拼错了 正确的是: /api/v1/user/logout?referrer=www.javaer.com 结果不小心把referrer写成了referre,把字母 r 给丢了,带来的影响就是用户登出后再登陆就无法回到正确的地址,而且代码已经上生产了,这可怎么办?! 偷偷发一版?那么多用户已经在线了,如果被发现就GG了. 下一版再修复?那等待时间也太长了,让BOSS知道也是一首凉凉啊,有可能还的找…
在之前的文章中,我介绍了使用 Btrace 工具进行线上代码的debug (https://www.cnblogs.com/yougewe/p/10180483.html),其大致原理就是通过字节码注入的方式进行辅助排查. 可以说,btrace 已经给我们的开发调试一带来了许多的方便,我们在上面做任何想要的调试!但是,明显, btrace 的使用还是有一定成本的,比如:安装应用,写调试脚本... 所以,今天我们再来看一大利器: arthas (阿尔萨斯) arthas 官网地址:https://…
Alibaba Java诊断工具Arthas简单介绍 : 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?2.我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?3.遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?4.线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!5.是否有一个全局视角来查看系统的运行状况?6.有什么办法可以监控到JVM的实时…
背景: 一次线上问题的综合排查排查,两个相同的系统的某个模块,数据量更少的系统查询更慢. 先说下整体思路: 查看系统整理负载,网络有100左右毫秒的延迟,看起来影响不大 查看正序运行整体情况,一次查询会经历3次FGC,有问题,解决后虽然会快一些但是还是有点慢 跟踪调用栈,发现有点在获查询结果的时候特别慢 排查是否有mysql慢查询(定义为1秒以上的查询),结果是没有 通过arthas发现调用了20多次查询,每次网络延迟100ms,加起来就有2s了,定位出问题. 这样看起来arthas真的很强大,…
如果问性能测试中最难的是哪部分,相信很多人会说“性能调优”.确实是这样,性能调优是一个非常复杂.技术含量很高的工作.涉及到的知识面很广.以我多年从业经验来看,在企业里,大多数的性能调优都是由开发架构师来完成,涉及到数据库的,可能需要DBA的介入. 而性能测试工程师在实际工作中,主要的职责是发现问题和定位问题,确定性能问题出现在哪部分,需要定位到具体函数.类.SQL,某些参数配置.某些硬件限制等.如果能做到这一点,那就是一个很称职的性能测试工程师了. 那么如何去定位问题呢?不能靠猜测和想象,这个时…
## 背景 最近来了个实习僧小弟,安排他实现对目标网站 连通性检测的小功能,简单讲就是将下边的shell 脚本换成Java 代码来实现 ``` 1#!/bin/bash 2URL="https://www.baidu" 3HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${URL}"` 4#echo $HTTP_CODE 5if [ $HTTP_CODE != '200' ];then 6cu…
官方文档 下载arthas-boot.jar,然后用java -jar的方式启动: curl -O https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar 执行该程序的用户需要和目标进程具有相同的权限.比如以admin用户来执行:sudo su admin && java -jar arthas-boot.jar 或 sudo -u admin -EH java -jar arthas-boot.…