阿里开源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日

相关文章

  • SpringBoot多数据源配置并通过注解实现动态切换数据源

    下面就为你详细讲解如何实现Spring Boot多数据源配置,并通过注解实现动态切换数据源的完整攻略。 1. 添加依赖 首先,在pom.xml文件中添加Spring Boot与MySQL相关的依赖: <dependencies> <!– Spring Boot相关依赖 –> <dependency> <group…

    Java 2023年5月20日
    00
  • Javascript加载速度慢的解决方案

    当我们的网站或应用程序使用了大量的Javascript脚本时,会导致页面加载速度变慢,影响用户的使用体验。这时候,我们需要通过优化Javascript代码和加载方式来提高加载速度。以下是Javascript加载速度慢的解决方案的完整攻略: 1. 压缩和合并 Javascript代码可通过压缩和合并来减少其大小和数量。压缩能够减少不必要的空格和注释,从而减小文…

    Java 2023年6月15日
    00
  • java 文件和byte互转的实例

    讲解Java文件和Byte数组的互转需要以下步骤: 1. 获取Java文件的字节数组 Java文件的字节数组通常用于网络传输或者是保存到数据库等操作。可以使用Java中的IO流来读取文件,然后将其转换为字节数组。 以下是一个示例,演示如何将Java文件转换为字节数组: import java.io.File; import java.io.FileInput…

    Java 2023年5月20日
    00
  • Android实现IOS相机滑动控件

    下面我会详细讲解在Android平台上实现类似IOS相机滑动控件的完整攻略。实现该控件需要涉及到自定义控件的开发和手势识别等技能。 一、基本原理 自定义滑动控件:为了实现类似IOS相机的滑动效果,需要将Android的默认控件ScrollView转换为自定义控件,在该自定义控件中重写touch事件以及scroll事件,实现手势识别和滑动效果。 手势识别:在自…

    Java 2023年5月26日
    00
  • Java代码读取properties配置文件

    读取properties配置文件 package com.easycrud.utils; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import java.util.Map; import java.util.Properties; i…

    Java 2023年5月2日
    00
  • Kafka多节点分布式集群搭建实现过程详解

    接下来我将详细讲解 “Kafka多节点分布式集群搭建实现过程详解” 的完整攻略。 1. 什么是Kafka Kafka 是一种高吞吐量的分布式发布订阅消息系统,应用于大规模的消息处理环境中,具有高可用、高性能的特点。 2. Kafka 集群搭建 2.1 环境准备 在搭建Kafka集群之前,需要准备好以下环境: Oracle JDK 1.8或以上版本 Zooke…

    Java 2023年5月20日
    00
  • Springboot之restTemplate的配置及使用方式

    Spring Boot之RestTemplate的配置及使用方式 在Spring Boot中,可以使用RestTemplate来发送HTTP请求。RestTemplate是Spring框架提供的一个用于访问RESTful服务的客户端工具,可以方便地发送HTTP请求并处理响应。本文将详细讲解RestTemplate的配置及使用方式,包括如何配置RestTemp…

    Java 2023年5月15日
    00
  • Java技能点之SimpleDateFormat进行日期格式化问题

    下面是Java技能点之SimpleDateFormat进行日期格式化问题的完整攻略。 简介 SimpleDateFormat是Java SE自带的日期时间格式化工具,可以用来将日期时间类型的数据按照指定格式输出。SimpleDateFormat支持多种格式化输出,如输出年月日、输出时分秒、输出星期几等。 使用方法 1. 创建SimpleDateFormat对…

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