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

阿里开源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】BigDecimal实现加减乘除运算代码

    Java BigDecimal实现加减乘除运算代码 Java中原生数据类型double和float的计算结果不一定准确,在金额等精度要求高的场景下,需要使用BigDecimal类进行运算。 BigDecimal概述 BigDecimal类是一个任意精度的,有符号十进制数的不可变对象,它提供了精确的数值运算。它比基本数据类型double和float更准确。在商…

    Java 2023年5月23日
    00
  • java门禁系统面向对象程序设计

    Java门禁系统面向对象程序设计的攻略如下: 1.系统需求分析 在进行Java门禁系统的设计之前,需要对系统的需求进行分析,包括基本功能、用户需求、系统限制等,从而有针对性地设计程序。 2.系统设计 在完成需求分析后,可以开始设计系统,包括系统架构、类的设计、模块的分配等,充分考虑系统的可扩展性、可维护性等方面,尽量使系统的设计更加合理化。 3.系统实现 实…

    Java 2023年5月24日
    00
  • PHP Parse Error: syntax error, unexpected $end 错误的解决办法

    当PHP代码运行过程中发生了语法错误,导致编译器无法正确解析代码时,会出现“PHP Parse Error: syntax error, unexpected $end”错误。这一错误的出现会导致程序运行异常终止。本文将详细讲解此类错误的解决办法,帮助读者更好地理解和解决这种常见的错误。 原因分析 这种错误通常是由于编写代码时,存在以下几种问题导致的:1. …

    Java 2023年6月15日
    00
  • springboot整合springsecurity与mybatis-plus的简单实现

    那么让我们来探讨一下如何实现“springboot整合springsecurity与mybatis-plus的简单实现”,包含以下步骤: 1.创建一个springboot项目,添加相关依赖 为了实现该功能,我们首先需要创建一个springboot项目,并添加所需的依赖项。在pom.xml文件中添加以下依赖项: <dependency> <g…

    Java 2023年5月20日
    00
  • Gradle的使用教程详解

    Gradle的使用教程详解 Gradle 是一款基于 Java 平台构建工具,既可用于构建 Java 应用程序,也可用于构建 Android 应用程序。Gradle 使用一种声明式语言来描述构建自动化任务和构建新的依赖关系,以简化开发人员的构建流程。 Gradle安装 在Gradle官网下载最新的Gradle压缩文件。 解压Gradle文件到你选择的安装位置…

    Java 2023年5月27日
    00
  • 详解Spring AOP 实现“切面式”valid校验

    关于“详解Spring AOP 实现‘切面式’valid校验”的完整攻略,这是一个相对比较复杂的话题,需要我们详细来讲解一下。下面是我的分享: 什么是AOP AOP,Aspect Oriented Programming,面向切面编程,是OOP(Object Oriented Programming,面向对象编程)的一种补充。其实现是基于代理模式的基础之上的…

    Java 2023年5月20日
    00
  • 在JS中a标签加入单击事件屏蔽href跳转页面

    在JS中,我们可以通过添加单击事件来屏蔽a标签的href跳转页面。下面是实现这个功能的完整攻略: 使用addEventListener函数添加单击事件 我们可以通过addEventListener函数来为a标签添加单击事件,代码如下: document.querySelector(‘a’).addEventListener(‘click’, function…

    Java 2023年6月15日
    00
  • 小程序获取用户信息的两种方法详解(getUserProfile和头像昵称填写)

    小程序获取用户信息的两种方法包括getUserProfile和头像昵称填写。下面将详细讲解这两种方法的使用攻略和示例说明。 getUserProfile方法详解 什么是getUserProfile? getUserProfile是一种小程序的API,可以获取到用户的个人信息,包括昵称、头像、性别等。 如何使用getUserProfile? getUserPr…

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