阿里开源Java诊断工具神器使用及场景详解

yizhihongxing

阿里开源Java诊断工具神器使用及场景详解

简介

阿里开源Java诊断工具(Arthas)是一款基于Java管理Java进程以及诊断问题的工具,它可以帮助开发人员或者运维人员快速定位问题点以及提高调试效率,广泛应用于阿里巴巴内部Java开发及O&M团队。

安装

安装前提

  • 必须已经安装了JDK1.8+

安装步骤

  1. 从Arthas Github官方网站https://alibaba.github.io/arthas/下载arthas-boot.jar。
  2. 执行下列命令安装Arthas:
# 检查本机是否有远程连接的能力
$ java -jar arthas-boot.jar --version
# 连接本机,JVM号为20430的一个Java进程
$ java -jar arthas-boot.jar 20430

注:具体版本号请按照实际下载的版本为准。

Arthas使用场景

场景一:动态修改日志级别

在生产环境中一般将日志级别设置为error或者info,以避免因日志输出过多而导致的系统性能瓶颈。但是,在调试和排错阶段,需要查看更多的日志输出,这时候我们可以通过Arthas动态修改日志级别来满足我们的需求。

操作步骤

  1. 进入arthas的交互模式,输入log4jlogback命令选择要修改的日志框架。
  2. 输入如下命令,即可将日志级别修改为debug。
# 将日志级别修改为debug
ls /logback.xml logger setLevel root debug

场景二:在线查看JVM内存池信息

如果Java应用内存使用率过高,可以通过Arthas来动态地查看Java应用的内存池信息,以便快速定位内存泄露问题。

操作步骤

  1. 进入arthas的交互模式,输入jvm命令选择要查看的内存池信息。
# 查看JVM内存池信息
jvm MemoryPool
  1. 控制台会输出如下信息。
{
    "Eden Space": {
        "committed": 163577856,
        "init": 167772160,
        "max": 167772160,
        "used": 118730608
    },
    "Code Cache": {
        "committed": 26004608,
        "init": 2555904,
        "max": 536870912,
        "used": 24973856
    },
    ...
}

总结

Arthas作为阿里巴巴内部使用的Java诊断工具,能够快速地帮助我们定位和解决Java应用的问题,在实际使用中发挥了非常重要的作用。阿里开源的Arthas,也同样继承了阿里的开源精神,是Java开发者一款非常实用的诊断工具。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:阿里开源Java诊断工具神器使用及场景详解 - Python技术站

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

相关文章

  • java求三个数的最大值的示例分享

    下面是关于“Java求三个数的最大值的示例分享”的详细攻略。 函数原型 在Java语言中,使用函数来求解三个数的最大值。函数原型如下: public static int max(int a, int b, int c) 其中,参数a、b、c分别是三个整数,函数返回值是这三个整数的最大值。 函数实现 在函数体中,可以使用嵌套的if else语句来实现三个数的…

    Java 2023年5月26日
    00
  • Java之通过OutputStream写入文件与文件复制问题

    Java之通过OutputStream写入文件 1. 使用OutputStream写入文件 通过Java程序创建一个文件并往其中写入数据的方法之一就是使用java.io.OutputStream。下面是一个可以将一些文本写入到文件中的Java程序的示例代码: import java.io.File; import java.io.FileOutputStre…

    Java 2023年5月26日
    00
  • 深入了解Java Object类的使用

    深入了解Java Object类的使用 在Java中,所有类都继承自Object类,并且Object类提供了许多有用的方法,因此了解Object类的使用可以帮助我们更好地编写Java代码。本文将深入介绍Java Object类的使用方法,包括toString()、equals()、hashCode()和getClass()方法等。 toString()方法 …

    Java 2023年5月26日
    00
  • SpringBoot使用Jsp的示例代码

    下面是 Spring Boot 使用 JSP 的详细攻略,内容包括: 添加 Maven 依赖 配置 Spring Boot 创建 JSP 页面 创建 Controller 类 运行并访问页面 1. 添加 Maven 依赖 首先在 pom.xml 文件中添加以下依赖: <dependencies> <dependency> <gr…

    Java 2023年6月15日
    00
  • Java BeanUtils工具类常用方法讲解

    Java BeanUtils工具类常用方法讲解 Java BeanUtils是Apache Commons BeanUtils组件的一部分,常用于Java Bean之间的复制、属性的拷贝等操作。下面详细讲解该工具类的常用方法。 1. BeanUtils.copyProperties方法 该方法用于将源对象的属性值拷贝到目标对象中。 public static…

    Java 2023年5月26日
    00
  • Java数据库连接池连接Oracle过程详解

    Java数据库连接池连接Oracle过程详解 本文将详细讲解Java数据库连接池连接Oracle的过程,包括连接池的作用、如何配置连接池、连接池连接Oracle的步骤、注意事项等。 连接池的作用 连接池是为了提高系统性能和稳定性而设计的。在Java中,使用连接池可以避免频繁地打开和关闭数据库连接,从而节省系统资源。当一个请求需要访问数据库时,连接池会从连接池…

    Java 2023年6月16日
    00
  • 史上最牛的游戏2 第11关 详细图文攻略

    史上最牛的游戏2 第11关 详细图文攻略 关卡介绍 史上最牛的游戏2 第11关,是一款类似推箱子的益智游戏。玩家需要控制主角将兔子们推到相应的颜色区域,即可通过本关卡。但是,随着关卡的深入,游戏难度会不断升级,玩家需要不断思考才能顺利通关。 攻略步骤 步骤1:分析地图结构与兔子位置 首先,进入第11关后,需要先仔细地观察当前地图的结构和兔子们的初始位置。在第…

    Java 2023年5月26日
    00
  • Java Apache Commons报错“TransformerException”的原因与解决方法

    “ChainProcessorException”是Java的Struts框架中的一个异常,通常由以下原因之一引起: 链处理器错误:如果Struts框架无法处理链,则可能会出现此异常。例如,可能会使用错误的拦截器或拦截器顺序。 链处理器配置错误:如果Struts框架中的链处理器配置不正确,则可能会出现此异常。例如,可能会缺少必需的拦截器或拦截器配置。 以下是…

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