Arthas阿尔萨斯的使用安装详细教程

news2025/1/16 7:51:37

Arthas阿尔萨斯的使用安装详细教程

  • 一、阿尔萨斯能解决什么什么问题
  • 二、安装与命令
  • 三、实际应用
  • 四、自学途径

本篇文章是自学B站“御风大世界”视频的提炼和总结。
原视频见:Arthas使用教程
在这里插入图片描述

一、阿尔萨斯能解决什么什么问题

alibaba出品线上JVM监控诊断利器
1、是一个全局JVM运行时监控工具,实现了 CPU,线程,内存,堆栈信息等监控。
2、CPU飙高,可以快速定位是什么原因造成的。
3、接口没反应、卡住了,定位是不是死锁。
4、CTO说你们这个接口太慢了,要优化一下,可以准确找出耗时的代码。
5、我写的代码没有执行,是部署的分支不对,还是我压根没提交?
6、线上有一个低级错误,改起来很简单,能不能在不重启应用的情况下, 进行类替换, 热部署。

二、安装与命令

1.arthas 如何安装?
Arthas下载地址

比如我们下载到F盘,共享或者发送给linux
在这里插入图片描述

2.arthas 启动
启动前先运行Java程序,我们写了一个死循环
运行程序

    @Test
    public void test2() throws InterruptedException {
        while (true) {
            Thread.sleep(1000);
            System.out.println(123);
        }
    }

JVM配置如下:

-Xms10m -Xmx10m

图示如下:
在这里插入图片描述
注意:这里不一定非要启动main方法,只需要打开IDEA即可。
之后在arthas下载路径输入cmd,之后输入如下命令:建议模拟服务器环境用Linux进行如下的所有操作

java -jar arthas-boot.jar

在这里插入图片描述
这里我们输入1,会下载Arthas,这里注意1是打不开的,会报连接失败,因为IDEA占用了那个端口,所以我们选择3
在这里插入图片描述
通过help指令可以看到操作方式
在这里插入图片描述
dashboard 命令展示
输入

dashboard -h

如图,会列举其用法
在这里插入图片描述
输入指令,
解决问题1:实现了 CPU,线程,内存,堆栈信息等监控。

dashboard

在这里插入图片描述
输入指令

thread

在这里插入图片描述
查看某个具体的线程

thread 线程ID

在这里插入图片描述
指令:查看反编译当前类,查看内容

jad 类名

在这里插入图片描述
IDEA中下载插件arthas idea
在这里插入图片描述
想对某个方法进行Arthas的调用,可以右键选择,watch
在这里插入图片描述
这时候,命令到了剪切板之中,去命令行中右键粘贴即可。
在这里插入图片描述
回车后就可以抓到了
在这里插入图片描述
trace是对耗时的分析
在这里插入图片描述
会深入到方法内部,方法比较慢会标红高亮
在这里插入图片描述
stack是调用栈
在这里插入图片描述
可以看条件分支
在这里插入图片描述

monitor是对方法级别的监控
在这里插入图片描述
做压测的时候观测
在这里插入图片描述

三、实际应用

首先用命令

dashboard

查看空间使用情况,发现noheap内存和元空间占用率很高
在这里插入图片描述
某个线程的CPU使用率达到了90%多
在这里插入图片描述

进阶着使用命令,找出CPU利用率高的前5个线程

thread -n 5

定位到死循环的类
在这里插入图片描述

查看死锁的方式

thread

定位到2个死锁
在这里插入图片描述
使用指令

thread -b

在这里插入图片描述
时空隧道功能:重放请求

tt -t 全类名 方法名

在这里插入图片描述
使用指令

tt -i 索引

可以查看某个索引的请求
在这里插入图片描述
我们通过如下指令复现请求

tt -i 索引 -p

在这里插入图片描述

热力图:

profiler start
过一会儿
profiler stop

在这里插入图片描述
访问路径会看到一个热力图
在这里插入图片描述

四、自学途径

官网文档
github用户案例

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

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

相关文章

Flask源码篇:Flask路由规则与请求匹配过程(超详细,易懂)

目录1 启动时路由相关操作(1)分析app.route()(2)分析add_url_rule()(3)分析Rule类(4)分析Map类(5)分析MapAdapter类(6)分析 url_rule_…

深度学习技巧应用2-神经网络中的‘残差连接’

大家好,我是微学AI,今天给大家介绍 深度学习技巧应用2-神经网络中的‘残差连接’。 一、残差连接介绍 残差连接是一种神经网络中的一种运用技巧。由于深层网络容易出现梯度消失或梯度爆炸的问题,因此可以通过残差连接的方式,将网…

C++数据结构 —— 红黑树

目录 1.红黑树概念 2.红黑树节点的定义 3.红黑树的插入操作 4.红黑树的调整动作 4.1调整动作1 4.2调整动作2 4.3调整动作3 4.4插入算法的完整代码 4.5验证红黑树 4.6完整代码 1.红黑树概念 与AVL树一样,红黑树也是map、set等关联式容器的底层结构。但红黑…

大数据开发学习好找工作么

工作到底好不好找,市场需求是一方面,更多的还是要看个人成长背景和实际能力抛开两点都不谈就单说好找或者不好找纯属有点耍流氓了大数据需求越来越多,只有技术在手不愁找不到工作。 大数据开发主要是负责大数据挖掘,大数据清洗处…

谷歌验证码的使用

1. 表单重复提交之验证码 1.1 表单重复提交三种常见情况 提交完表单。服务器使用请求转来进行页面跳转。这个时候,用户按下功能键 F5,就会发起最后一次的请求。造成表单重复提交问题。解决方法:使用重定向来进行跳转用户正常提交服务器&…

行为型模式之策略模式

行为型模式:类和对象如何交互,划分责任和算法,即对象之间通信。 概念 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面…

Servlet请求响应

文章目录Servlet请求响应进阶内容回顾Servlet 体系结构get/post 请求Servlet 的生命周期web.xml 配置文件HttpServletRequest 接口文件上传HttpServletResponse 接口文件下载响应表格的案例转发与重定向简介请求转发原理请求转发案例重定向原理重定义与请求转发的区别Servlet请…

分巧克力(二分)

儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 HiWi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形…

百度“松果“ OJ赛第一周 题解

百度"松果" OJ赛第一周 题解 第一周的周赛基本考察的都是模拟和递推递归问题,虽然不涉及很难的算法,但是还是比较考察代码能力和思维能力的。 1.数据流的中位数 题意:要求你做一个系统可以进行两个操作,第一个操作是…

cloud flare 真不错(常规思路)

2022-10-20 前言 接到一个测试目标,开局cloudflare,最后运气不错还是拿下了。因授权测试等原因,文章仅展示思路历程。 过程 信息搜集 给的目标是test.com,前期经过一些基本的信息搜集,发现了一个求职子域employee…

FreeRTOS入门

目录 一、简介 二、堆的概念 三、栈的概念 四、从官方源码中精简出第一个FreeRTOS程序 五、修改官方源码增加串口打印 一、简介 FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、…

嵌入式开发:McObject eXtremeDB嵌入式数据库系统

嵌入式数据库已经成为数据库技术的一种流行应用,尤其是对于企业中的物联网应用。有很多理由将数据库嵌入到应用程序的端点中,而不仅仅是将数据推送到设备中。嵌入式开发人员在选择嵌入式数据库时,真正重要且与众不同的解决方案是写入速度、大…

【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)

【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)0.JetPack1.安装输入法2.安装docker和nvidia-docker3.拉取l4t-pytorch镜像4.拉取l4t-tensorflow镜像5.拉取l4t-ml镜像6.拉取tensorrt镜像7.镜像换源8.其他&am…

三数之和(双指针 or hash表)

给你一个整数数组nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]]满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 3 < …

ubuntu22.04 Desktop 服务器安装

操作系统 使用的是Uubntu22.04 Desktop的版本&#xff0c;系统安装后&#xff0c;默认开启了53端口和631端口 关闭udp 5353、53791端口&#xff08;avahi-daemon服务&#xff09; sudo systemctl stop avahi-daemon.socket avahi-daemon.service sudo systemctl disable ava…

[1.2]计算机系统概述——操作系统的发展与分类

文章目录第一章 计算机系统概述操作系统的发展与分类&#xff08;一&#xff09;手工操作阶段&#xff08;二&#xff09;批处理阶段——单道批处理系统&#xff08;三&#xff09;批处理阶段——多道批处理系统&#xff08;四&#xff09;分时操作系统&#xff08;五&#xff…

【Java开发】JUC进阶 01:Lock锁详解

1 Lock锁介绍已经在【JUC基础】04简单介绍过了&#xff0c;本文做进一步的拓展&#xff0c;比如公平锁和非公平锁、&#x1f4cc; 明白锁的核心四个对象&#xff1a;线程&#xff0c;共享资源&#xff0c;锁&#xff0c;锁操作包括线程如何操作资源&#xff0c;使用锁锁哪个资源…

xgboost: 分割查找算法:贪婪算法、分桶算法

1、Basic Exact Greedy Algorithm 树学习的关键问题之一是找到最好的分割&#xff0c;如Eq(7)所示。 贪婪算法:分割查找算法枚举所有特征上的所有可能的分割。精确的贪婪算法如Alg. 1所示。为了高效地完成这一任务&#xff0c;算法必须首先根据特征值对数据进行排序&#xff…

SpringMVC 参数绑定(视图传参到控制器)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

Vue组件基础(父向子、子向父、子向子传值)

Vue组件基础-父向子、子向父、子向子传值一、Vue组件概念,创建和使用1.1 组件概念1.2 组件基础使用1.3 组件-scoped作用二、Vue组件通信2.1 父向子传值(props)2.2 子向父传值($emit)2.3 子与子传值(EventBus)一、Vue组件概念,创建和使用 1.1 组件概念 组件是可复用的Vue实例,封…