arthas之生产环境排查问题常用功能

背景

生产环境调试使用。对问题进行高效排查。

目录

一、watch

  • idea安装arthas插件
  • idea插件下载代理配置
    • A. 选择Http Proxy Settings, 打开配置页面
    • B. 选择 Auto-detect proxy setting
    • C. 上图中选择Ok即可, plugin 列表 刷新得到插件内容
  • 启动arthas客户端
  • watch监听
    • 通过arthas提示进入进程监听环境
    • 执行命令, 等待拦截
    • 接口调用测试
    • 查看arthas监听结果
    • 手动生成异常并调用和捕获
  • 参数 x 的解释
  • 静态方法使用 watch
  • arthas正确退出方式

二、JPS 反编译查看源码

  • sc命令查看class类路径
  • jps + grep 命令查看源码中指定的关键字

三、trace 跟踪查看方法调用时间及耗时占比

  • 测量方法调用的耗费时间
  • 使用arthas测试结果

总结


watch com.home.api.Controller getStudies '{params,returnObj,throwExp}' -n 5 -x 3
注:上述参数 -x 可比喻是望远镜的放大倍数 >> 解释

一. 使用watch方法查看

  • 插件的安装

注:在idea平台中,对arthas进行安装,重启idea
在这里插入图片描述

  • idea插件下载代理配置

注:若打开plugin后marketplace中无法看到插件列表内容,可通过如下步骤进行配置 引用内容链接 >> |

A. 选择Http Proxy Settings, 打开配置页面

在这里插入图片描述

B. 选择 Auto-detect proxy setting

注:配置url https://plugins.jetbrains.com
在这里插入图片描述

C. 上图中选择Ok即可, plugin 列表 刷新得到插件内容

在这里插入图片描述

注:鼠标右键点击需要监听的方法生成 watch 命令
在这里插入图片描述

  • 启动arthas客户端
    注:arthus 客户端下载目录 https://arthas.gitee.io/doc/download.html
    注:java命令启动 arthas 客户端
java -jar ./arthas-bin/arthas-boot.jar

注:找到列表中对应的进程,找到对应的序号,这里是序号 [8], 输入8进入
在这里插入图片描述

  • watch 监听

注:通过arthas提示进入进程监听环境
注:红框标注的为进程 pid 号码
在这里插入图片描述

  • 执行命令, 等待拦截

注:将idea中获取的watch命令复制到命令号后回车执行
在这里插入图片描述注:接口调用测试。输入请求命令,访问成功
在这里插入图片描述
注:查看arthas监听结果
在这里插入图片描述
注:手动生成异常并调用和捕获
注:修改程序添加异常
在这里插入图片描述
注:被捕获
在这里插入图片描述

  • 参数 x 的解释

注:x 设置数值的是被监视方法的调用深度。
注:可以解释为放大倍数。及0,1,2,3倍,数字越大放大的倍数越大,看到的监测内容越清楚
在这里插入图片描述

  • 静态方法使用 watch

注:同上也是相同的步骤
在这里插入图片描述

  • arthas正确退出方式

注:退出arthas需要使用stop退出,避免下次进入端口号冲突

在这里插入图片描述

二、JPS 反编译查看源码

  • sc命令查看class类路径

注:sc 命令根据关键字查找类的路径,并提供给 jps 命令查看源码使用
注:可使用模糊查询(使用*进行模糊)和精确查询
在这里插入图片描述

  • jps + grep 命令查看源码中指定的关键字
jad --source-only com.home.api.Controller | grep Controller

在这里插入图片描述

三、trace 跟踪查看方法调用时间及耗时占比

  • 测量方法调用的耗费时间

注:添加Thread.sleep(2000) 睡眠2s中进行测试
注:同理使用生成watch命令的方式得到 trace命令 跳转看watch 命令如何生成 >>|
在这里插入图片描述

  • 使用arthas测试结果

在这里插入图片描述

总结

1. 生产环境调试最常用的内容 watch jad。建议在使用arthas的基础上还是要将日志打印尽可能做的完善,可以提供足够的诊断信息。如在调用 第三方 接口时打印 入参、出参、接口调用时间等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/733610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(关键点检测)YOLOv8实现多类人体姿态估计的输出格式分析

(关键点检测)YOLOv8实现多类人体姿态估计的输出格式分析 任务分析 所使用的数据配置文件 网络结构 导出模型 用 netron 可视化 输出格式分析 参考链接 1. 任务分析 判断人体关键点时一并给出关键点所属的类别,比如男人,女…

【Redis知识点总结】(二)——Redis高性能IO模型剖析

Redis知识点总结(二)——Redis高性能IO模型及其事件驱动框架剖析 IO多路复用传统的阻塞式IO同步非阻塞IOIO多路复用机制 Redis的IO模型Redis的事件驱动框架 IO多路复用 Redis的高性能的秘密,在于它底层使用了IO多路复用这种高性能的网络IO&a…

vue 自定义组件绑定model+弹出选择支持上下按键选择

参考地址v-modelhttps://v2.cn.vuejs.org/v2/guide/components-custom-events.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6%E7%9A%84-v-model 原文代码 Vue.component(base-checkbox, {model: {prop: checked,event: change},props: {checked: Boolean},template: `…

2.4_3 死锁的处理策略——避免死锁

文章目录 2.4_3 死锁的处理策略——避免死锁(一)什么是安全序列(二)安全序列、不安全状态、死锁的联系(三)银行家算法 总结 2.4_3 死锁的处理策略——避免死锁 银行家算法是“避免死锁”策略的最著名的一个…

Elasticsearch架构原理

一. Elasticsearch架构原理 1、Elasticsearch的节点类型 在Elasticsearch主要分成两类节点,一类是Master,一类是DataNode。 1.1 Master节点 在Elasticsearch启动时,会选举出来一个Master节点。当某个节点启动后,然后使用Zen D…

时间感知自适应RAG(TA-ARE)

原文地址:Time-Aware Adaptive RAG (TA-ARE) 2024 年 3 月 1 日 介绍 随着大型语言模型(LLM)的出现,出现了新兴能力的概念。前提或假设是LLMs具有隐藏的和未知的能力,等待被发现。企业家们渴望在LLMs中发现一些无人知晓…

论文笔记 - 基于振动信号的减速器故障诊断方法

1.论文摘要 基于振动信号的减速器故障诊断方法, 沈晴,《起重运输机械》,2018 原作者联系方式: shenqing@zmpc.com 这篇文章包含了一个从工程到数据处理和故障定位的完整过程。是一篇综述文档。它介绍了机械设备常见的三类故障(轴,齿轮、轴承)的故障特征,并在一个故障追…

指针数组和数组指针(详细解释)

指针数组 指针数组的作用 指针数组和数组指针是C语言中常用的概念,它们分别有不同的作用和用法。 指针数组: 指针数组是一个数组,其中的每个元素都是指针类型。它可以用来存储多个指针,每个指针可以指向不同的数据类型或者相同…

xxl-job学习记录

1、应用场景 例: 某收银系统需要在每天凌晨统计前一天的财务分析、汇总 某银行系统需要在信用卡还款日前三天发短信提醒等 2、为什么需要使用任务调度 spring中提供了注解Scheduled的注解,这个注解也可以实现定时任务的执行 我们只需要在方法上使用这…

人工智能|机器学习——K-means系列聚类算法k-means/ k-modes/ k-prototypes/ ......(划分聚类)

1.k-means聚类 1.1.算法简介 K-Means算法又称K均值算法,属于聚类(clustering)算法的一种,是应用最广泛的聚类算法之一。所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,…

2024 年中国高校大数据挑战赛赛题 D:行业职业技术培训能力评价完整思路以及源代码分享

中国是制造业大国,产业门类齐全,每年需要培养大量的技能娴 熟的技术工人进入工厂。某行业在全国有多所不同类型(如国家级、 省级等)的职业技术培训学校,进行 5 种技能培训。学员入校时需要 进行统一的技能考核&#xf…

数字化转型导师坚鹏:科技金融政策、案例及数字化营销

科技金融政策、案例及数字化营销 课程背景: 很多银行存在以下问题: 不清楚科技金融有哪些利好政策? 不知道科技金融有哪些成功案例? 不知道科技金融如何数字化营销? 课程特色: 以案例的方式解读原…

【个人开发】llama2部署实践(二)——基于GPU部署踩坑

折腾了一整天,踩了GPU加速的一堆坑,记录一下。 1.GPU加速方式 上篇已经写了llama2部署的大概流程:【【个人开发】llama2部署实践(一)】——基于CPU部署 针对llama.cpp文件内容,仅需再make的时候带上参数…

数字建筑欢乐颂,智慧工地共筑美好未来!

在解决农民工人欠薪这一长期困扰建筑业的难题上,某建筑公司响应政策,严格按照实名制管理,实施过程中发现并克服了传统管理模式的痛点:聊天群组的信息时,往往会被淹没在“收到”回复中,影响沟通效率&#xf…

探索React中的类组件和函数组件

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

每日一题leetcode-找出数组的第K大和

一.题目解析 读完题目后我们知道,该题就是让我们在子序列中求和,我们要在不同的子序列中排序找到第K大的和。何为子序列? 子序列就是在一个数组中抽出一些元素构成一个新的数组即可,不要求一定是连续的; 例如&#x…

深入解析汽车MCU的软件架构

一、背景知识 电动汽车(EV)正在成为首选的交通方式,为传统内燃机汽车提供了一种可持续发展的环保型替代方案。在电动汽车复杂的生态系统中,众多电子控制单元(ECU)在确保其高效运行方面发挥着至关重要的作用…

《IAB视频广告标准:综合指南(2022)》之概述篇 - 我为什么要翻译介绍美国人工智能科技公司IAB 系列(2)

IAB平台,使命和功能 IAB成立于1996年,总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司,互动广告局(IAB- the Interactive Advertising Bureau)自1996年成立以来,先后为700多家媒体…

最优算法100例之03-判断是否是栈的弹出序列

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 例…

20、电源管理入门之Hypervisor中的电源管理

目录 1. Hypervisor概念介绍 2. 汽车软件中的Hypervisor应用 3. QNX Hypervisor 4. Hypervisor中的多OS通信技术 5. 电源管理相关 参考: 很多时候听说Hypervisor,但是对底层软件技术不了解的人感觉挺神秘。本篇文章简单介绍下Hypervisor的基本概念,另外介绍下电影管理…