JVM-Arthas高效的监控工具

一、arthas介绍

3.选择监控哪个进程

4.进入具体进程

二、arthas的基础命令与基本操作

1.查询包含Java的系统属性:

命令:sysprop |grep java

1.查询不含Java的系统属性:

命令:sysprop | grep -v java

3.打印历史命令

命令:history

4.查看当前工作目录

命令:pwd

三、如何使用arthas监控线上服务的内存状态

1.dashboard - 当前系统的实时数据面板

命令:dashboard -i 100    100毫秒刷新一次

命令:dashboard -n 2 刷新两次

命令:dashboard -n 2 -i 1000 每1秒刷新一次共刷新两次

2.thread - 查看当前线程信息,查看线程的堆栈

支持一键展示当前最忙的前N个线程并打印堆栈

命令:thread -n 3

当没有参数时,显示第一页线程的信息

命令:thread

显示指定线程的运行堆栈

命令:thread id

查看阻塞的线程

命令:thread -b

3.heapdump - dump java heap, 类似 jmap 命令的 heap dump 功能.

dump 到指定文件

命令:heapdump arthas-output/dump.hprof

4.jvm - 查看当前JVM信息

命令: jvm

5.memory - 查看JVM内存信息

命令:memory

六、如何使用arthas监控载入的类信息screenflow

1.classloader - 查看classloader的继承树、urls、类加载信息

命令:classloader

大白话:

        系统使用的类加载器种类,每种加载器创建实例数量(numberOfInstances)、加载类数量(loadedCountTotal)

2.jad - 反编译指定已加载类的源码,这个命令就可以检查线上的类是不是最新的代码

命令:jad java.lang.String

解释:

        代码是反编译出来的,可能有些代码的位置会有所变化。

3.sc - 查看JVM已加载的类信息,还具备搜索功能

搜索java.lang包下的类

命令:sc java.lang.*

搜索所有包下的MathGame类

命令: sc *.MathGame

搜索所有包下的MathGame类并且查看类的信息

命令: sc -d *.MathGame

大白话:

        -d 类的信息

        -f 类方法的信息

4.sm - 查看已加载类的方法信息

查看java.lang.String的方法信息

命令: sm java.lang.String

五、如何使用arthas追踪方法的执行情况screenflow

1.monitor - 方法执行监控

命令:monitor -c 5 demo.MathGame primeFactors

2.watch - 函数执行数据观测

观测demo包下MathGame类的primeFactors方法,-x 输出结果的属性遍历深度

1 - 第一级别,显示入参、出参的类型

命令:watch demo.MathGame primeFactors -x 1

2 - 第二级别,显示入参、出参的具体数据

命令:watch demo.MathGame primeFactors -x 2

3 - 第三级别,显示方法值的具体数据更加详细

命令:watch demo.MathGame primeFactors -x 3

4 - 第四级别,显示方法值的具体数据更加详细,更底层,一般用不到

命令:watch demo.MathGame primeFactors -x 4

[b] -在函数调用之前观测

命令:watch demo.MathGame primeFactors -x 2 -b

[s] -在函数调用之前观测

命令:watch demo.MathGame primeFactors -x 2  -s

注:目前watch命令好像不能同时既看入参也看出参,即不能同时使用-b和-s命令,只会显示一个出参或入参。

仅观测函数调用入库的参数和返回值

命令:watch demo.MathGame primeFactors "{params,returnObj}" -x 2 -b

总结,arthas的命令很多,此处仅讲了一些常用的,其他具体需要看帮助手册。

六、绘制火焰图

启动profiler

命令:profiler start

获取已采集的sample的数量

命令:profiler getSamples

停止profiler

命令:profiler stop --format html

默认情况下,arthas 使用 3658 端口,则可以打开: http://localhost:3658/arthas-output/在新窗口打开 查看到arthas-output目录下面的 profiler 结果:

命令:http://localhost:3658/arthas-output/

还有一种打开方式,进入html的存放目录,直接打开。

怎么看有没有问题呢,看一张死锁的火焰图

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vector容器解决杨辉三角

一、题目描述 118. 杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRo…

008 Linux_文件在磁盘上的管理

前言 本文将会向你介绍文件在磁盘上是如何被管理的 磁盘的物理存储结构 系统中的文件分为被打开的文件,和没被打开的文件,被打开的文件在内存中进行管理,而没有被打开的文件则在磁盘中进行管理 同样地,也需要对这些没被打开的文…

Vulnhub靶机:driftingblues 5

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:driftingblues5(10.0.2.21) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entr…

实验 2:语法分析程序的设计——以LL(1)为例(更适合njupt体质的宝宝)

实验 2:语法分析程序的设计——以LL(1)为例 PS:源码私聊 1.实验软件环境 ​ 开发平台:Windows 11 ​ 编程语言:C ​ 编译器版本:GCC 11.20 C20 ​ IDE:VS Code 2.实验原理描述 求 F i r s t First Fi…

基于springboot数码论坛系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把数码论坛与现在网络相结合,利用java技术建设数码论坛系统,实现数码论坛的信息化。则对于进一步提高数码论坛发展,丰富数码论坛经验能起到不少的促进作用。 数码论坛系统能够通过互联网得到广泛…

如何判断售卖的医疗器械产品是二类还是三类

售卖医疗器械需关注产品本身是否为一、二、三类医疗器械。第一类医疗器械为一般项目的经营范围无需取得备案或许可证即可销售。第二类医疗器械产品需办理第二类医疗器械的备案方可销售。第三类医疗器械需取得医疗器械经营许可证且许可证上的经营范围需与销售的产品对应方可销售…

IIC协议

文章目录 IIC介绍通信距离通信速度主从方式通信方式物理结构 IIC协议空闲状态开始信号、结束信号和应答信号向从机发送数据的过程读取从机数据的过程数据有效性协议一帧构成 IIC介绍 IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线。…

ArkUI-X跨平台已至,何需其它!

运行环境 DevEco Studio:4.0Release OpenHarmony SDK API10 开发板:润和DAYU200 自从写了一篇ArkUI-X跨平台的文章之后,好多人都说对这个项目十分关注。 那么今天我们就来完整的梳理一下这个项目。 1、ArkUI-X 我们之前可能更多接触的…

class_5:在c++中一个类包含另一个类的对象叫做组合

#include <iostream> using namespace std;class Wheel{ public://成员数据string brand; //品牌int year; //年限//真正的成员函数void printWheelInfo(); //声明成员函数 };void Wheel::printWheelInfo() {cout<<"我的轮胎品牌是&#xff1a;"<…

MySQL之多表查询

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下&#xff1a; CREATE TABLE sc…

数据库多表查询练习题

二、多表查询 1. 创建 student 和 score 表 CREATE TABLE student ( id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR ( 20 ) NOT NULL , sex VARCHAR ( 4 ) , birth YEAR , department VARCHAR ( 20 ) , address VARCHAR ( 50 ) ); 创建 s…

02章【JAVA编程基础】

变量与标识符 变量 数学名词&#xff1a;变数或变量&#xff0c;是指没有固定的值&#xff0c;可以改变的数。变量以非数字的符号来表达&#xff0c;一般用拉丁字母。变量是常数的相反。变量的用处在于能一般化描述指令的方式。计算机解释&#xff1a;变量就是系统为程序分配…

IOS自动化测试元素定位

一、元素属性介绍 1、元素属性 2、查看各定位方式执行效率 二、iOS常用定位方法 1、accessibility_id 2、class_name 3、Xpath 4、ios_class_chain(类型链) 5、ios_predicate(谓词) 一个页面最基本组成单元是元素&#xff0c;想要定位一个元素&#xff0c;我们需…

德语B2 SampleAcademy

德语B2 SampleAcademy 一, Zweigliedrige Konnektion1, entweder... oder2, nicht nur... sondern auch3,sowohl... als auch4,einerseits... andererseits5, zwar...aber6, weder...noch7,je...desto/umso 一, Zweigliedrige Konnektion discontinuous conjunctions 1,…

基础面试题整理4

1.mybatis的#{}和${}区别 #{}是预编译处理&#xff0c;${}是字符串替换#{}可以防止SQL注入&#xff0c;提高安全性 2.mybatis隔离级别 读未提交 READ UNCOMMITED&#xff1a;读到了其他事务中未提交的数据&#xff0c;造成"脏读","不可重复读","幻读&…

Vue-19、Vue监测数据的原理_对象

1、数据代理 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vue监测数据改变的的原理</title><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue2/dist…

翻译: Streamlit从入门到精通 部署一个机器学习应用程序 四

Streamlit从入门到精通 系列&#xff1a; 翻译: Streamlit从入门到精通 基础控件 一翻译: Streamlit从入门到精通 显示图表Graphs 地图Map 主题Themes 二翻译: Streamlit从入门到精通 构建一个机器学习应用程序 三 1. 5. 如何部署一个Streamlit应用 部署是将应用程序从开发…

如何用ArcGIS制作城市用地适应性评价

01概述 “城市用地适宜性评价是城市总体规划的一项重要前期工作&#xff0c;它首先对工程地质、社会经济和生态环境等要素进行单项用地适宜性评价&#xff0c;然后用地图叠加技术根据每个因子所占权重生成综合的用地适宜性评价结果&#xff0c;俗称“千层饼模式”。 做用地适…

C#,字符串匹配(模式搜索)AC(Aho Corasick)算法的源代码

Aho-Corasick算法简称AC算法&#xff0c;也称为AC自动机(Aho-Corasick)算法&#xff0c;1975年产生于贝尔实验室&#xff08;The Bell Labs&#xff09;&#xff0c;是一种用于解决多模式字符串匹配的经典算法之一。 the Bell Lab 本文的运行效果&#xff1a; AC算法以模式树…

阳光抑郁症测试

大部分人对抑郁症的理解&#xff0c;就是每天无精打采&#xff0c;死气沉沉&#xff0c;可实际上&#xff0c;还有一种阳光抑郁症&#xff0c;完全不是这个样子。这种抑郁症的人&#xff0c;做事情非常有活力&#xff0c;魅力十足&#xff0c;给人感觉十分有自信&#xff0c;但…