首页 > 其他分享 >Arthas 使用

Arthas 使用

时间:2024-09-26 23:13:20浏览次数:1  
标签:MathGame demo 使用 jar primeFactors Arthas arthas boot

Arthas 是一款线上监控诊断产品,用来做线上问题排查。详细介绍见官方文档

安装并启动

可访问外网时

下载 arthas-boot.jarjava -jar arthas-boot.jar启动程序:

$ java -jar arthas-boot.jar
* [1]: 35542
  [2]: 71560 math-game.jar

选择需要排查问题的进程的序号,math-game进程是第 2 个,则输入 2。有时候程序无法列出进程,可以使用java -jar arthas-boot.jar <PID>直接连接指定 PID 的进程。

无法访问外网时

上面执行java -jar arthas-boot.jar时需要连接外网,没有外网时:

  1. 下载全量包并解压
  2. 在解压得到的文件夹中找到arthas-boot.jar,执行java -jar arthas-boot.jar启动

简单使用

启动程序并连接到进程后:

使用 dashboard

输入dashboard,按回车/enter,会展示当前进程的实时数据面板,按 Ctrl+C 可以中断执行。

image-20240926220042373

使用 thread

输入thread,按回车/enter,会展示线程信息。

image-20240926220212735

执行thread 1会打印线程 ID 1 的栈。

image-20240926220359747

使用 jad

通过jad <className>来反编译指定类,<className>为类的全路径。

image-20240926220534726

使用 watch

通过watch demo.MathGame primeFactors returnObj命令来查看demo.MathGame#primeFactors方法的返回值。

image-20240926221119855

更多命令见命令列表

常用命令及解析

下面将基于 MathGame.java 介绍arthas idea提供的一些常用的命令,arthas idea是一个方便生成 Arthas 命令的 IDEA 插件。

查看方法入参/返回值/异常

选中指定primeFactors的方法名,右键——Arthas Command——Quickly Get Available Command,其中提供了如下命令:

watch demo.MathGame primeFactors '{params,returnObj,throwExp}'  -n 5  -x 3 
  • watchwatch 命令用于监控指定类中的方法调用,并输出相关信息。

  • demo.MathGame:这是要监控的类的全限定名。

  • primeFactors:这是要监控的方法名。

  • '{params,returnObj,throwExp}':这是输出格式,指定了您希望在方法调用时记录的信息。

    • params:表示输出方法的参数。
    • returnObj:表示输出方法的返回值。
    • throwExp:表示输出方法抛出的异常(如果有的话)。

    可以看到三者和输出信息之间的对应关系:

    image-20240926224005706

  • -n 5:指定监控的次数。在这个例子中,-n 5 表示监控前 5 次方法调用。

  • -x 3:指定输出的参数深度。-x 3 表示在输出参数时,最大递归深度为 3。

查看方法堆栈
stack demo.MathGame primeFactors  -n 5 

image-20240926225943488

查看方法代码
jad --source-only demo.MathGame primeFactors 

image-20240926230118122

查看类中所有方法的入参/返回值/异常
watch demo.MathGame * '{params,returnObj,throwExp}'  -n 5  -x 3 

image-20240926231203215

参考:官方文档

标签:MathGame,demo,使用,jar,primeFactors,Arthas,arthas,boot
From: https://www.cnblogs.com/Higurashi-kagome/p/18434733

相关文章

  • 02 loads 使用最多
    importjson#反序列化,将json格式的字符串转换成python的数据类型v2='["alex",123]'#json格式是一个字符串#print(type(v2))v3=json.loads(v2)#由json字符串转换成列表print(v3,type(v3))>load会进行两件事,>>第一、找到文件,进行打开文件>>......
  • 01 dump 使用最多
    dump使用最多importjson#序列化,将python的值转换为json格式的字符串。v=[12,3,4,{'k1':'v1'},True,'asdf']#外层必须是一个列表,内部字符串:必须得是双引号v1=json.dumps(v)#'[]'print(v1)dump会进行两件事,第一、先进行序列化第二、序列化后,进行写入到......
  • 03 json支持的类型: 爬虫场景使用的比较多。
    #json支持的类型:爬虫场景使用的比较多。+-------------------+---------------+|Python|JSON|+===================+===============+|dict|object|+-------------------+---------------+|l......
  • 17 shutil 模块 文件操作 运维时会使用此模块
    4.2shutil模块文件操作运维时会使用此模块importshutil#删除目录常用返回值为None#shutil.rmtree('test')#重命名常用#shutil.move('test','ttt')#压缩文件#shutil.make_archive('zzh','zip','D:\code\s21day16\lizhong&......
  • 03 sys.argv 运维使用比较多
    sys.argv运维使用比较多获取用户执行脚本时,传入的参数,将执行空格后的路径,进行append到一个列表让用户执行脚本传入要删除的文件路径,在内部帮助用完后将目录删除#!/usr/bin/envpython#-*-coding:utf-8-*-"""让用户执行脚本传入要删除的文件路径,在内部帮助用将目录删除......
  • 使用 Redis 记录用户连续登录天数的方法及代码分享
    目录标题:使用Redis记录用户连续登录天数的方法及代码分享一、为什么不适合放在数据库中二、Redis的bitmap介绍三、存储方式及统计方法(一)以每天维度存储(二)以用户维度存储在本文中,我们将探讨如何使用Redis记录用户连续登录天数的问题。这是一个在面试中可能会遇到......
  • 使用Conda配置python环境到Pycharm------Window小白版
    使用Conda配置python环境到Pycharm一、Conda安装和环境配置1.1安装Conda软件1.2判断是否安装成功1.3创建Conda虚拟环境二、pycharm的安装2.1Pycharm使用手册2.2安装pycharm三、pycharm导入Conda环境一、Conda安装和环境配置anaconda官网1.1安装Conda软......
  • OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建
    判题机模块预开发(架构师)(工厂模式)判题机模块是为了把代码交个代码沙箱去处理得到结果返回代码沙箱梳理判题模块和代码沙箱的关系判题模块:调用代码沙箱把代码和输入交给代码沙箱去执行代码沙箱:只负责接受代码和输入返回编译的结果不负责判题这两个模块完全解耦......
  • 前端使用webpack本地实现编译时出现错误[cached] 1 asset ERROR in main Module not
    一:概述Webpack是一个现代JavaScript应用程序的静态模块打包工具。它主要用于将JavaScript代码、CSS、图片等资源模块化管理,并最终打包成一个或多个文件,方便在浏览器中使用。以下是对Webpack的详细介绍:主要特点模块化:Webpack支持ES6模块、CommonJS和AMD模块,能够将各种......
  • java使用webservice 调用天气预报接口
    市场上有许多免费的和付费的天气预报API,例如OpenWeatherMap、WeatherAPI、Weatherstack等。这里我们以OpenWeatherMap为例,因为它提供了广泛的天气数据和相对简单的API接口。访问OpenWeatherMap的官网(https://openweathermap.org/) ,注册一个账户,并创建一个API密钥(APIkey)。这个密钥将......