Arthas在线java进程诊断工具在线调试神器详解

Arthas在线java进程诊断工具在线调试神器详解

Arthas是阿里开源的一款基于Java的实时诊断和监控工具。它可以在生产环境中实时诊断Java线程、查看应用内部信息、动态修改变量等,对于线上问题的排查和性能优化非常有帮助。本文主要介绍Arthas的使用方法,包括Arthas的安装、启动和基本功能的应用。

安装Arthas

Arthas支持多种安装方式,包括Maven、Docker等,这里以Maven方式为例。

  1. 在项目中添加arthas依赖

xml
<dependency>
<groupId>com.taobao.arthas</groupId>
<artifactId>arthas-client</artifactId>
<version>3.2.2</version>
</dependency>

  1. 使用Maven打包生成可执行jar

xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

启动Arthas

使用以下命令启动Arthas:

java -jar arthas-boot.jar

如果需要查看进程列表,可以使用以下命令:

ps

Arthas基本功能

Arthas提供了丰富的功能,这里介绍其中的几项。

查看Java进程信息

使用以下命令来查看Java进程的信息:

dashboard

查看类信息

使用以下命令来查看类信息:

class

举个例子,我想查看java.lang.String的信息,可以使用以下命令:

class java.lang.String

查看函数信息

使用以下命令来查看函数信息:

method

举个例子,我想查看java.lang.String类的indexOf函数,可以使用以下命令:

method java.lang.String indexOf

Profiler(性能分析)

使用以下命令来进行性能分析:

profiler start

使用以下命令来查看性能分析结果:

profiler stop && profiler

示例说明

示例一:查看Java进程信息

  1. 使用以下命令来启动Arthas:

bash
java -jar arthas-boot.jar

  1. 使用以下命令来查看Java进程的信息:

bash
dashboard

输出结果如下:

```
[ 1F1C] [dashboard] java -jar xxx.jar
Waiting for application to start, Ctrl-C to interrupt.

[ 1F45] [dashboard]
Arthas 內部命令:
KEYWORD COMMAND DESCRIPTION
dashboard Display the connection status, The target process info, instrumentation info 显示连接状态、目标进程信息、instrumentation的信息
help Display the help summary or command manual 显示帮助信息
history Display the command history 显示命令历史记录
...
```

示例二:Profiler(性能分析)

  1. 使用以下命令启动Arthas:

bash
java -jar arthas-boot.jar

  1. 使用以下命令来开始性能分析:

bash
profiler start

  1. 运行相应的Java程序,停止性能分析:

bash
profiler stop && profiler

输出结果可能如下所示:

Time: 100ms
Thread STATISTICS CPU(ms) SELF(ms) INVOKE_COUNT LATENCY(ms)
pool-1-thread-8 com.hkc.model.UserService.getUserList(int,int) 16.67 16.67 1 69
pool-1-thread-9 com.hkc.model.UserService.getUserList(int,int) 16.67 16.67 1 76
...

经过性能分析后,可以知道哪些函数比较耗费时间,对于性能优化非常有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Arthas在线java进程诊断工具在线调试神器详解 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • mysql建表常用的sql语句汇总

    下面我将详细讲解“mysql建表常用的sql语句汇总”的完整攻略。 一、创建数据库 在使用mysql建表之前,我们需要根据需求创建一个数据库。创建数据库的sql语句如下: CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci; 上面的sql语句创建了一个名为mydb的数据库,并设置了数…

    database 2023年5月21日
    00
  • 使用Jedis操作Redis-使用Java语言在客户端操作—对Sorted-Sets的操作

        1 //对Sorted-Sets操作 2 /** 3 * Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。 4 * 它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。 5 * 然而需要额外指出…

    Redis 2023年4月12日
    00
  • MySQL 和 IBM Db2的区别

    MySQL和IBM Db2都是流行的关系型数据库管理系统,但它们之间有许多不同之处。以下是MySQL和IBM Db2之间的区别,以及一些示例说明。 MySQL和IBM Db2之间的区别 语法 MySQL使用类似于SQL的语言来查询和管理数据库,而Db2使用SQL的变体。例如,Db2具有许多MySQL没有的高级特性,如分析函数和存储过程。这些特性使得Db2在某…

    database 2023年3月27日
    00
  • Mysql索引分类及其使用实例详解

    MySQL索引分类及其使用实例详解 一、MySQL索引分类 MySQL索引主要分为B-tree索引和哈希索引两种,其中B-tree索引又包括主键索引、唯一索引、普通索引、全文索引、空间索引等。 1. B-tree索引 B-tree索引是MySQL中最常用的索引类型,其优点是检索速度快,缺点是对于索引列有前缀的字段,需要存储较多的内容。 B-tree索引又包括…

    database 2023年5月22日
    00
  • Centos 7下Mongodb开机无法自启动的解决方法

    下面是CentOS 7下Mongodb开机无法自启动的解决方法的完整攻略。 问题描述 在CentOS 7下安装Mongodb后,发现Mongodb服务无法在开机时自动启动,需要手动启动。 解决方法 1. 修改systemd的配置文件 systemd是CentOS 7默认的服务管理工具,我们需要修改它的配置文件来实现Mongodb的自启动。 编辑/usr/li…

    database 2023年5月22日
    00
  • intro.js 页面引导简单用法 分享

    Intro.js 页面引导简单用法 简介 Intro.js 是一个轻量级的网页引导库,可以用来为用户展示页面功能、元素位置、操作流程等,能够帮助用户更好地理解网站的使用方法,提高用户的满意度。 安装 可以通过 npm 或 yarn 安装 intro.js: npm install intro.js –save # 或者 yarn add intro.js …

    database 2023年5月22日
    00
  • FREEBSD安装POSTGRESQL笔记

    FREEBSD安装POSTGRESQL笔记 安装前的准备工作 在安装PostgreSQL之前,需要确保系统中已经安装必要的依赖库。首先可以使用以下命令安装: sudo pkg install readline libxml2 其中,readline是GNU的一个库,提供了基本的命令行编辑和历史记录功能。libxml2是一个用于XML解析的库。 下载并安装Po…

    database 2023年5月22日
    00
  • sql server2012附加数据库问题解决方法

    SQL Server 2012 附加数据库问题解决方法 在 SQL Server 2012 附加数据库过程中,可能出现多种问题。本文将介绍一些常见问题及其解决方法,帮助您成功附加数据库。 问题一:无法附加数据库,提示文件已存在 问题描述: 在附加数据库时,提示文件已存在,无法继续操作。 解决方法: 找到提示中已存在的文件路径(如D:\Data\test.md…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部