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: `…

前端框架的发展史

前端框架的发展历程是互联网技术演进的生动体现。从最早的简单静态页面到交互丰富的Web应用,再到如今智能化、多平台适配的复杂系统,前端框架一直扮演着关键角色。让我们一起回顾一下前端框架的发展脉络及其背后的推动力。 原始阶段:手工编写…

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

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

Elasticsearch架构原理

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

Java通过Excel批量上传数据!!!

一、首先在前端写一个上传功能。 <template><!-- 文件上传 --><el-upload class"upload-demo" drag action"" :on-change"onChange" :auto-upload"false"><el-icon class"el-icon--upload"><up…

贪心区间问题(最大不相交区间数量)

题目 给定 N 个闭区间 [ai,bi]&#xff0c;请你在数轴上选择若干区间&#xff0c;使得选中的区间之间互不相交&#xff08;包括端点&#xff09;。 输出可选取区间的最大数量。 输入格式 第一行包含整数 N&#xff0c;表示区间数。 接下来 N 行&#xff0c;每行包含两个整…

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

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

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

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

2023年第三届中国高校大数据挑战赛(第二场)C题思路

赛题C&#xff1a;用户对博物馆评论的情感分析 博物馆是公共文化服务体系的重要组成部分。国家文物局发布&#xff0c;2021年我国新增备案博物馆 395 家&#xff0c;备案博物馆总数达 6183 家&#xff0c;排名全球前列&#xff1b;5605 家博物馆实现免费开放&#xff0c;占比达…

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

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

xxl-job学习记录

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

设计模式 单例模式

单例模式就是在整个程序运行的过程中&#xff0c;这个类的实例化对象只有一个。 单例模式和private static 有密切的关系。 举一个例子&#xff1a; 一个wife&#xff0c;在法律允许的范围内&#xff0c;只能有一个。 public class Wife{private static Wife wife null; //…

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

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

设计模式学习笔记 - 规范与重构 - 2.保证重构不出错的技术手段

前言 很多工程师对重构这种做法是很认同的&#xff0c;面对项目中的烂代码&#xff0c;也想重构一下&#xff0c;但有担心重构之后出问题&#xff0c;出力不讨好。确实&#xff0c;如果你需要重构的代码是别的同事开发的&#xff0c;你不是特别熟练&#xff0c;在没有任何保障…

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

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

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

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

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

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

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

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