Arthas jvm诊断工具入门到精通

JVM内存分析工具-Arthas 教程[详细] Arthas(阿尔萨斯)是阿里巴巴开源的一款Java诊断工具,用于实时检测、诊断Java应用程序的性能问题。它是一个命令行工具,提供了丰富的功能,包括查看类加载信息、方法执行耗时、线程堆栈、内存分析等。Arthas 的设计目标是在生产环境中实时诊断和解决Java应用程序的问题。实时性: Arthas 可以在运行中的 Java 进程中实时进行诊断,无需重新启动应用。丰富的命令: 提供了众多的命令,涵盖了类加载、方法执行、线程、内存、GC 等多个方面。动态追踪。 阅读详情

我举个常见场景,你有没有遇到有没有觉得难搞,熟练使用Arthas会让以下问题非常简单:

  1. 生产环境慢接口分析,不知道接口耗时的原因 (trace命令)
  2. 生成环境断点,查看某个方法入参返回值(watch命令)
  3. 觉得运维发版的代码和我本地代码不一样,需要反编译 (Decompile Class Jad 命令)
  4. 查看内存中,变量的值 (OGNl表达式)
  5. cpu高时,分析造成cpu高的代码 (thread命令)
  6. 拦截某个方法,并且以同样的入参进行重试调用 (TT命令)
  7. 调用代码中任意方法 (OGNl表达式)

arthas支持非常丰富的功能,以上只是我平时生成环境调优经常遇到几个场景,相信大家也经常遇到,下面对arthas进行详细介绍。

一. 主要功能概览

官方文档:https://arthas.aliyun.com/doc/install-detail.html
在这里插入图片描述

二. idea插件介绍

插件管理,搜索:arthas idea。该插件提供了arthas几乎所有命令快捷生成以及中文说明。
在这里插入图片描述
在类和方法上单机右键,选择Arthas Command。
在这里插入图片描述

三. 举例

  1. 安装
    正常安装需要下载arthas-boot.jar然后启动,每次还要找到arthas-boot.jar所在目录。使用工具提供的命名行安装,会把as.sh写入环境变量,在任何地方都可以直接使用,更方便。
curl -sk https://arthas.aliyun.com/arthas-boot.jar -o ~/.arthas-boot.jar  && echo "alias as.sh='java -jar ~/.arthas-boot.jar --repo-mirror aliyun --use-http 2>&1'" >> ~/.bashrc && source ~/.bashrc && echo "source ~/.bashrc" >> ~/.bash_profile && source ~/.bash_profile

在这里插入图片描述
2. 慢接口分析
在方法上单机右键,选择Trace会复制一下命令到剪切板

trace com.chainup.debt.utils.HttpUtils postWithHeaders -v -n 5 --skipJDKMethod false 

-v 是过滤掉没匹配到的空请求
-n 是抓取5次
在这里插入图片描述
在这里插入图片描述
从官网找了一个结果显示,可以看到每个方法调用的次数、执行时间和代码行数。

其他命令就不逐一演示了,使用起来比较简单,实战很重要,需要大家挨个体验,最上面对应的问题已经给出了建议使用的命令。又不懂的欢迎评论区留言

Arthas从入门到精通 本文全面介绍了阿里巴巴开源Java诊断工具Arthas的核心功能与实战应用,旨在帮助开发者快速掌握线上问题排查与性能优化技巧。 核心内容包括: 入门指南:覆盖多平台安装步骤(Linux/Windows/Mac)、启动流程及首个命令(如dashboard实时监控面板),零基础即可上手。 核心功能:详解线程分析(thread)、方法追踪(watch/trace)、JVM监控(jvm)、热更新(redefine)等18+诊断命令,结合参数示例说明适用场景。 实战案例:通过CPU飙高定位、死锁排查、内存泄漏分析 阅读详情

相关推荐

详解Alibaba开源的Java诊断工具Arthas的常用命令

Arthas 是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作。支持JDK 6+,支持Linux/Mac/Windows。这个工具真的很好用,而且入门超简单,十分推荐。

白话机器学习 1889

利用arthas 调用任意bean中的方法

从spring context里获取任意bean 步骤1 获取所有加载com.alibaba.dubbo.config.spring.extension.SpringExtensionFactory的classLoaderHash sc -d com.alibaba.dubbo.config.spring.extension.SpringExtensionFactory class-i...

CTLLIN的专栏 9177

RunHarmony报错解析:如何解决data.use与cell.embeddings维度不匹配问题

本文深入解析了单细胞数据分析中RunHarmony函数报错'non-conformable arguments'的根源,即data.use与cell.embeddings矩阵维度不匹配。核心原因是assay(如RNA与integrated)错配导致细胞ID或数量不一致。文章提供了三种解决方案:最推荐显式指定assay.use参数,也可设置project.dim=FALSE或统一数据环境,并给出了最佳实践指南以避免此类错误。

weixin_29093017的博客 576

Arthas 关于方法调用命令实战

一点睛 1 monitor 方法执行监控,调用次数、执行时间、失败率 -c 统计周期,默认值为120秒 2 watch 方法执行观测,能观察到的范围为:返回值、抛出异常、入参,通过编写 groovy 表达式进行对应变量的查看 -b 在方法调用之前观察(默认关闭) -e 在方法异常之后观察(默认关闭) -s 在方法返回之后观察(默认关闭) -f 在方法结束之后(正常返回和异常返回)观察(默认开启) -x 指定输岀结果的属性遍历深度,默认为0 3 trace 方法内部调用路径,并输出方法路.

实践求真知 5033

医疗器械软件测试输出内容(1)

*单元测试(Unit Testing):**单元测试是软件测试的最底层,用于验证软件中最小的可测试单元——函数、方法或模块。系统测试是在集成测试之后进行的,它对整个系统进行测试,验证系统在不同部分集成在一起后是否满足需求和规格。: 集成测试是在单元测试之后进行的,它关注不同单元之间的交互和集成。对于不同安全级别的软件(IEC 62304 A类、B类、C类),在体系上要求输出的文件内容有所区别。**说明:**将集成测试和软件系统测试合并为一项单一的计划和一组活动是可接收的。

ct745363083的博客 1867

MIA文献阅读 —— 深度学习在医学图像分析中的最新进展及临床应用【2024】_再现性;深度学习

coderVAEVAEVAE) (Kingma威林,2014)在概率性的工作方式学习观测数据之间的映射空间x∈Rmx∈R^mx∈Rm 和潜在的空间z∈Rnmnz∈Rn(m>>n)。作为一个潜变量模型,VAEVAEVAE制定这个问题作为观察样品的最大化对数似logpxlog∫px∣zpzdzpx∣zp (x | z)p(x∣z)可以很容易地使用神经网络建模,和pzp (z)

2401_84181704的博客 1243

使用arthas调用带参数的方法-傻瓜式教程

GitHub地址:https://github.com/alibaba/arthas/releases官方文档地址:https://arthas.aliyun.com/doc/download.html下载后解压。

HuangJiaxinZ的博客 1530

如何处理MIGO取消物料凭证报错:“只是可能对有相同的价格控制进行倒记账(本月S,前月V)” & “仅在 QM 中修改物料质量检验库存”

记录一次处理MM模块的报错。这次连续处理了两个错误,“只是可能对有相同的价格控制进行倒记账(本月S,前月V)” & “仅在 QM 中修改物料质量检验库存”。把过程和操作步骤记录下一。方便日后回头查找。

IT小职员 6232

Arthas使用说明

arthas 使用

tian830937的专栏 1078

【GameFramework框架内置模块】8、文件系统(File System)

最近好忙,鸽了好久。不能颓废了,继续发力。今天分享的是GF框架的文件系统。首先,引用比较官方的说法:GF的FileSystem虚拟文件系统,使用类似磁盘存储的感念对零散的文件进行集中管理,优化资源加载时产生的内存分配,也可以对资源进行局部片段加载,极大的提升了资源加载的性能。通俗点讲就是,我这个模块就是加载磁盘文件的,优化加载时产生的内存分配。那么,它是怎么优化的呢?

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2452

OpenHarmony开发一个App,安装到BearPi-HM Micro开发板

建议先阅读我们这篇,这里面详细介绍了,以及hap包安装的全过程。本篇是介绍如何开发一个App,然后安装到开发板上,比如hap包,无法安装等问题。

Halifax 1030

Arthas入门

作为一个小菜鸟,写写arthas 的使用体验 Arthas作为一款线上排错的工具,侵入性极低、操作简单对新手很友好.平常在开发工具开发有可以debug断点调试较为方便,但是线上 的项目运行在Linux上无法进行断点调试只能通过看日志的手段进行排查.这种方式对于现场以及开发都比较繁琐、针对性较低.针对这种情况Arthas有很好的解决方式,我们来看下 环境:只需要jdk就可以,具体版本...

qq_37172643的博客 898

手把手教你学simulink(90.1)--直流电动机实例:基于Simulink的基本模型的直流电动机(DC Motor)建模

直流电动机(DC Motor)因其结构简单、控制方便和良好的调速性能,广泛应用于各种工业自动化、机器人技术、家用电器以及航空航天等领域。为了更好地理解和应用直流电动机的工作原理及其控制系统,本项目旨在通过Simulink对直流电动机进行基本模型的建模与仿真。

MHD0815的博客 439

Java诊断工具Arthas入门教程

下载与安装 Linux安装 下载arthas-boot(推荐) 下载arthas-boot.jar,然后用java -jar的方式启动: wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar 打印帮助信息: java -jar arthas-boot.jar -h ...

淡淡的说非 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Arthas使用教程 阿里巴巴开源项目、史上最强java线上诊断工具

什么是 Arthas 摘录一段官方 Github 上的简介 Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来.

叶新东老师的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java诊断工具Arthas

简介 Arthas 是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作 。支持JDK 6+,支持Linux/Mac/Windows。 使用场景 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上...

dan_seek的博客 1354

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java 诊断利器 Arthas 快速入门

Java 诊断利器 Arthas 快速入门

前尘忆梦Memory的博客 2515

JVM——Java诊断工具Arthas

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。

庄小焱 1206

Arthas阿里开源的 Java 诊断工具

Arthas能做什么 当我们的项目上线后可能遇到以下问题: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态? 怎么快速定位应用的热点,生成火焰图? 怎样直接从JVM内查找某个类的实例.

个人站点:javatv.net 879

JVM工具之Arthas使用

写在前面 源码 。 Arthas是淘宝开源的JVM问题定位工具,本文一起来看下。 1:准备 arthas是一个可执行的jar包,可以从这里 下载,运行jar包后会列出所有的java进程,用户可以选择附加到哪个java进程,进而就可以使用arthas提供的各种命令来定位问题和辅助性能优化了。如下开始使用操作步骤: 在arthas的交互命令行中就可以执行其提供的命令来进行操作了,下面一起来看下。 2:命令的使用 2.1:thread thread命令用来查看线程信息,如线程的名称,所属组,优先级,占用CPU,

wang0907的博客 8415

【Java虚拟机】JVM诊断神器Arthas入门实操

阿里开源的Java诊断工具,Arthas入门实操

互联网小阿祥 1181

JVM 性能调优 -- Arthas

之前陆陆续续的分享了 JDK 自带的相关调优命令、图形化界面工具、第三方网站工具等,本篇我们分享一下 Alibaba 开源的工具 Arthas。

weixin_42118323的博客 2563

【Arthas】阿里的线上jvm监控诊断工具的基本使用

Arthas 是阿里开源的 Java 诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪 Java 代码;实时监控 JVM 状态。Arthas 支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

真的好想再回到那时,可现在能做的只有补救。————个人博客:https://w7h1te.github.io/ 2512

JVM内存模型与Arthas诊断实战

本文将从‌JVM内存模型‌的基础原理出发,结合‌Arthas诊断工具‌的实战应用,系统性地讲解内存问题排查、性能调优策略。

递归尽头是星辰 1346

Java-JVM诊断工具Arthas

Java诊断工具Arthas3.5.3 https://arthas.aliyun.com/doc/ 官网 介绍 Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法

weixin_45203607的博客 1316
上一篇: TIDB和mysql优缺点对比
下一篇: 深拷贝(clone)最佳实践 -- 考虑拷贝消耗的cpu和拷贝速度
鲫鱼哥
博客等级 码龄10年 18粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值