Arthas 常用命令

2023-11-06

官方文档:Arthas Install — Arthas 3.5.5 文档

安装

Arthas 是阿里开源的一款 linux/mac 上性能问题排查工具。文档链接: Arthas 用户文档 — Arthas 3.5.5 文档  (这个里边具体步骤和指令讲得很详细)

  • 安装启动

wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar      (确保安装了完整 java 且 jps 命令可用)
java -jar arthas-boot.jar --repo-mirror aliyun --use-http           (下载真正的运行包,默认到 /Users/shicai.xsc/.arthas/lib/3.1.4/arthas 目录)

下载完后,可以看到 arthas 文件夹里有以下文件。可以将此文件夹打包拷贝到其他机器直接使用。
[admin@iZbp1i1vql5huywx13yay4Z arthas]$ ls
arthas-agent.jar  arthas-boot.jar  arthas-client.jar  arthas-core.jar  arthas-demo.jar  arthas-spy.jar  as.bat  as-service.bat  as.sh  install-local.sh

使用时执行 sh as.sh

  • 查看最慢的 n 个进程

thread -n 3

  • 根据线程 ID 查看线程堆栈

thread 25               25 是线程 ID

  • 利用jad反编译指定class

jad org.slf4j.Logger          出来的每个 hashcode 代表一个 classloader

jad org.slf4j.Logger -c 17a7cec2        反编译相应代码

提示:可以通过  tab 键来补全类名

  • 显示所有加载过这个类的 ClassLoader

sc -d org.slf4j.Logger

sc -d *slf4j*Logger

  • 输出当前方法被调用的调用路径

stack com.xxxxx.middleware.kkkkkkk.core.applier.opensearch.OpenSearchApplier apply

  • 方法内部调用路径,并输出方法路径上的每个节点上耗时

trace com.xxxxx.middleware.kkkkkkk.core.applier.opensearch.OpenSearchApplier apply

  • 显示方法执行时出参入参

watch com.XXXX.middleware.kkkkkkk.core.applier.opensearch.OpenSearchApplier apply  "{params[0],throwExp}" -e -x 2

watch com.XXXX.middleware.jingwei.api.mc.MetaCenterApi queryTddlRuleCached "{params, returnObj, throwExp}"

watch com.XXXX.middleware.jingwei.common.util.DefaultMessageFilter isSatisfied 'target'        target 指的是调用 isSatisfied 的对象

watch com.XXXX.middleware.jingwei.common.util.DefaultMessageFilter isSatisfied 'target.tableActionMap'      然后使用target.field_name访问当前对象的某个属性

Thread

  • thread      查看当前进程的所有线程
  • thread -n 3       展示当前最忙的前N个线程并打印堆栈
  • thread -b        找出当前阻塞其他线程的线程
  • thread id        显示指定线程的运行堆栈
  • thread -i             指定采样时间间隔
  • thread --state WAITING         查看指定状态的线程
  • thread –all, 显示所有匹配的线程

refine 动态修改代码

redefine — Arthas 3.5.5 文档

redefine /tmp/com/example/demo/arthas/user/UserController.class

进程不用重启就直接使用新代码逻辑

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arthas 常用命令 的相关文章

  • Unity优化总结(持续更新)

    工欲善其事 必先利其器 优先利用性能分析工具快速找出性能瓶颈 从瓶颈入手分析性能问题产生原因 可以事半功倍 尽量减少占用的内存 资源体积 和CPU 计算量 首先着重减少总量才能更好的进行后续细节的优化 总量降低后 性能依旧有问题 那么可以考
  • Unity UGUI Canvas基础知识及优化

    unityUGUI源码 https github com Unity Technologies uGUI git 官方API https docs unity3d com cn 2018 4 ScriptReference Canvas h
  • 千万数据量下的真实业务场景SQL性能优化!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 前 言 通过前几期文章的积累 现在我们的理论知识已经极为扎实了 这个时候就可以动手开始sql优化了 sql优化是非常重要 因为即使再好的MySQL设计架构 也扛不住一
  • Unity游戏性能分析最终指南 02

    设置每帧时间预算 帧率 fps 并不是衡量游戏稳定体验的理想指标 考虑以下情况 在运行时的前0 75s内渲染了59帧 然后接下来的1帧需要0 25s才能渲染完毕 虽然是60fps 但实际上会让玩家感觉卡顿 这是需要设置帧时间预算的重要原因之
  • 腾讯业务百万数据 6s 响应,APIJSON 性能优化背后的故事

    最近发生了一件大事儿 APIJSON 再也不用担心被人质疑性能问题了哈哈 某周三腾讯 CSIG 某项目组 已经用 APIJSON 做完一期 突然反馈了查询大量数据性能急剧下降的情况 某张表 2 3KW 记录 用 APIJSON 万能通用接口
  • 如何设计一个分布式系统去分析3亿条数据?

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 从一个新闻门户网站案例引入 推算一下你需要分析多少条数据 黄金搭档 分布式存储 分布式计算 这篇文章聊一个话题 什么是分布式计算系统 一 从一个新闻门户网站案例
  • 【MySQL】《狂飙》电视剧火了,如果程序一直狂飙,扛不住了,怎么办呢?

    程序如果狂飙了怎么办呢 狂飙 电视剧你看了吗 程序 狂飙 你担心吗 性能优化步骤 适合创建索引的情况 不适合创建索引的情况 Explain 性能分析 id说明 select type 说明 type字段说明 Extra说明一下 狂飙 电视剧
  • Android性能优化大法——内存优化

    作者 layz4android 内存 是Android应用的生命线 一旦在内存上出现问题 轻者内存泄漏 重者直接crash 因此一个应用保持健壮 内存这块的工作是持久战 而且从写代码这块就需要注意合理性 所以想要了解内存优化如何去做 要先从
  • Direct3D纹理映射

    借助纹理映射技术 我们可将图像数据映射到三角形单元中 这种功能可以显著地增加所绘制场景的细节和真实感 例如创建一个立方体然后为其每个面映射一个板条纹理 从而将该立方体变为一个板条箱 在Direct3D中纹理用接口IDirect3DTextu
  • nodejs性能优化——多进程

    1 引言 现在在准备毕设 打算还是使用nodejs作为后端 遇到了一些知识上的瓶颈 主要是想要写出一个高性能点的爬虫 由于每次请求的http数量上万 经常挂了 要么是他人的服务器终止了连接 要么是node经不起密集CPU 毕竟请求完成之后还
  • 性能篇之对象拷贝工具BeanUtils.copyProperties和BeanCopier.copy的比较

    对象的拷贝在开发过程中肯定非常常见 想必大家使用spring中的BeanUtils copyProperties来完成的 小编最初也是用习惯了这个工具 但是在一次codereview中 大佬给我提出建议使用cglib的BeanCopier
  • 前端性能优化:7.页面渲染优化

    本文将主要关注浏览器获取到资源后 进行渲染部分的相关优化内容 7 1 页面渲染性能 页面渲染阶段对性能体验的应i昂与资源加载阶段同样重要 而对于设计高交互频次的应用来说可能更加重要 本节将整个渲染过程划分为五个串行阶段进行概述 优化渲染的实
  • 掌握MySQL分库分表(二)Mysql数据库垂直分库分表、水平分库分表

    文章目录 垂直分表 拆分方法 举例 垂直分库 水平分表 水平分库 小结 垂直角度 表结构不一样 水平角度 表结构一样 垂直分表 需求 商品表字段太多 每个字段访问频次不 样 浪费了IO资源 需要进行优化 也就是 大表拆小表 基于列字段进行的
  • 性能测试,服务器资源监控工具nmon常用操作

    在性能测试过程中 对服务端的各项资源使用情况进行监控是很重要的一环 这篇博客 介绍下服务端监控工具 nmon的使用方法 一 认识nmon 1 简介 nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具 它能在系统运行过程
  • Allure在自动化测试中的应用!

    01 Allure的简介及使用 1 应用场景 自动化的结果一定是通过一个报告来进行体现 Allure 是一个独立的报告插件 生成美观易读的报告 目前支持Python Java PHP C 等语言 为dev QA 提供详尽的测试报告 测试步骤
  • C之(9)函数内联(inline)深入分析

    C之 9 函数内联 inline 深入分析 Author Once Day Date 2023年8月9日 漫漫长路 有人对你微笑过嘛 参考引用文档 Using the GNU Compiler Collection GCC Inline 文
  • 提升应用性能的关键步骤——UniApp性能优化策略与技巧详解

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 代
  • Linux绑核效率优化

    Linux绑核效率优化 原理概述 cpu一般有多个物理核心 但在运行进程和线程时候 可以将其绑定或者指定到某一个或者多个核心上运行 这样做的好处是 一般在核数比较多的机器上 会有多个CPU共享三级缓存cache的情况 当出现跨cache数据
  • Redis10大性能优化策略

    1 Redis为什么变慢了 1 Redis真的变慢了吗 对 Redis 进行基准性能测试 例如 我的机器配置比较低 当延迟为 2ms 时 我就认为 Redis 变慢了 但是如果你的硬件配置比较高 那么在你的运行环境下 可能延迟是 0 5ms
  • Golang拼接字符串性能对比

    g o l a n g golang g o l an g

随机推荐

  • 关于distcc安装和使用

    distcc a fast free distributed C C compiler NEWS distcc 3 1 released Distcc release 3 1 is now available at Downloads Se
  • java 是怎么在中删除下拉列表_删除在一个下拉列表字段中选择的选项,并且不显示在该行中存在的其他下拉列表中不工作-jquery...

    我有一个包含多列的html表 在两列中我显示下拉列表 当用户从一个下拉列表中选择值时 选择Product1或Select Product2下拉列表 我想删除在一个下拉列表中选择的选项 并且不要在另一个下拉列表中显示该选项 下面的示例代码适用
  • Springboot 集成Druid

    Springboot 集成Druid Druid是Java语言中最好的数据库连接池 Druid能够提供强大的监控和扩展功能 本篇主要讲解一下 Springboot中如何集成 Druid 1 添加Druid依赖
  • QML 信号 槽 传递参数

    详细的C QML 的信号与槽 初学者教程 请参考该文 QML 中信号和槽之间传递参数并不需要在连接的时候特别声明 只需要将其关联在一起即可 main qml import QtQuick 2 13 import QtQuick Contro
  • flask web 01--基础入门案例

    flask web 01 基础入门案例 1 介绍 2 功能说明 3 源码分析 3 1 功能 3 2 源码 3 3 测试结果 4 注意事项 5 说明 1 介绍 最近由于需要 开始补了一些python web相关的技能 考虑到高效和简洁 就补了
  • Spring Boot 依赖注入

    Spring Boot 依赖注入 SpringBoot的实现方式基本都是通过注解实现的 跟Spring注解注入差不多 相关的常见注解有Autowired Resource Qualifier Service Controller Repos
  • 个人简历小程序

    为了熟练掌握微信小程序开发的一些基本技巧 熟悉微信小程序开发流程 特此 运用所学知识 做了一个个人简历小程序 效果图如下 代码如下 index js const app getApp Page data userInfo hasUserIn
  • Unity制作自定义消息提示框

    工作中使用软件经常会出现各种提示框 确定XXXXXX吗 选项一般是三个 是 否 取消 今天心血来潮 于是也尝试自己用unity制作一个简单的消息提示框 准备工作 首先需要搭建一个最简单的消息框界面 然后开始编写编写一个单例模式类 专门用来管
  • MySQL高级篇——事务

    一 简介 1 什么是事务 事务是由一个或多个sql语句组成一个最小的不可再分的工作单元 里面的内容要么都执行成功 要么都不成功 2 事务的ACID特性 原子性 atomicity 事务是一个不可分割的工作单元 要么全部提交 要么全部失败回滚
  • PhotoShop 之图层蒙版

    分黑色蒙版和白色蒙版 使用效果不同 黑色蒙版是表现 隐藏 当前图层的内容 是透明的 可以看到背景图层的内容 透明 白色蒙版是表示 显示 当前图层的内容 使用黑色画笔涂抹可以显示出背景图层的样子 不透明 总之记住一句话 黑色透明 白色不透明
  • 大学最应该学习的 5 门课, 毕业后大厂 Offer 直接拿到手软!

    时间如白驹过隙 我竟然已经是一名拥有 13 年编程经验的老油条了 有些自豪 因为自己从大一就开始学习的 Java 语言依然坚挺 几乎是编程语言中的霸主了 但也有些遗憾 大学的时候没有把这些计算机基础课程学好 有些甚至没有学 导致工作后有很长
  • C语言实现RGB packet格式转YUV(NV21)格式

    前言 此函数用于RGB packet R G B R G B 格式转YUV的NV21格式 保存NV21图像的内存由外部申请并传入 函数的具体实现原理在这里不做介绍 对RGB格式和YUV格式不熟悉的请自行查阅资料 该函数可直接拷贝过去使用 代
  • 智能排水解决方案,设备实时监控+预测分析,真正实现“无人值守”!

    什么是矿山排水 随着煤炭开采深度不断增加 地质条件也愈加复杂 井下综采作业会面临越来越高的渗水风险 为确保井下综采作业安全 需要设置大量排水系统 在矿山建设和生产过程中排除进入矿山的地下水和地表水 矿井排水系统是保障煤矿安全生产的关键环节
  • 求助关于speedtest中ookla跨域问题

    报错导致speedtest一直未上线 系统为windows 2012 求助给出合适的解决办法
  • Unity2D敌人/怪物AI控制 第一期

    AI 原地巡逻自动攻击型 AI会在横版地图上向左向右移动 移动一段距离后会原地停止移动 等待一段时间后 会随机向左或向右移动 以此循环 其中AI移动速度 移动时间 停留时间均可以自行调控 当人物进入怪物攻击范围后 会自动面向人物进行攻击 攻
  • 网络编程(20)—— 广播的编程实现

    一 广播和多播的区别 广播是向同一网络中所有主机传播数据的一种方式 它和多播的主要区别在于 1 从范围上来说 多播即使在跨越不同网络的情况下 只要加入多播组就能接受数据 而广播只能向同一网络中的主机传输数据 这种网络可以是发送者所在的网络
  • 一次完整的渗透测试流程,网站渗透存在哪些漏洞和隐藏的风险?

    渗透测试 渗透测试就是利用我们所掌握的渗透知识 对网站进行一步一步的渗透 发现其中存在的漏洞和隐藏的风险 然后撰写一篇测试报告 提供给我们的客户 客户根据我们撰写的测试报告 对网站进行漏洞修补 以防止黑客的入侵 渗透测试的前提是我们得经过用
  • LNK2005: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj)

    今天使用VS2003创建一个MFC 的dll工程时 出现以下错误 VPR error LNK2005 DllMain 12 already defined in LIBCMTD lib dllmain obj VPR error LNK20
  • 安全形势不容乐观 信息安全调查揭露五大误区

    日前 信息周刊 研究部和国际商业机器公司 IBM 合作进行了2008年 中国信息安全调查 这也是 信息周刊 以 11 年全球信息安全调查为基础 在中国开展的第四次安全调查 调查结果全面揭示了当前不容乐观的安全形势 对首席信息官 CIO 而言
  • Arthas 常用命令

    官方文档 Arthas Install Arthas 3 5 5 文档 安装 Arthas 是阿里开源的一款 linux mac 上性能问题排查工具 文档链接 Arthas 用户文档 Arthas 3 5 5 文档 这个里边具体步骤和指令讲