中文
注册

介绍

Java性能分析工具是针对基于鲲鹏的服务器上运行的Java程序的性能分析和优化工具,能图形化显示Java程序的堆、线程、锁、垃圾回收等信息,收集热点函数、定位程序瓶颈点,帮助用户采取针对性优化。

Java分析服务基于JDK启动,其中JDK作为开发/编译工具,建议用户仅在开发环境中部署鲲鹏DevKit,在生产环境中部署可能会增加被攻击的风险。

表1 任务描述

任务分类

描述

在线分析

在线分析包含对于目标JVM和Java程序的双重分析。包括Java虚拟机的内部状态如Heap,GC活动,线程状态及上层Java程序的性能分析,如调用链分析,热点函数,锁分析,程序线程状态及对象生成分布等。通过Agent的方式在线获取JVM运行数据,进行精确分析。

主要分析结果包含:

  1. 概览
    • 在线显示Java虚拟机系统状态。
    • 在线显示JVM的Heap大小、GC活动、Thread数量、Class加载数量和CPU使用率。
  2. 线程信息

    获取当前JVM中实时的活动线程状态和当前线程转储,图形化显示线程锁定状态,分析线程死锁情况。

  3. 内存信息
    • 通过抓取堆快照,分析应用在某时刻堆的直方图分布和支配调用关系,追溯堆内存中各Java存活对象到GC root的引用关系链,帮助定位潜在的内存问题;对比分析不同时刻的堆快照,给出堆使用与分配变化,辅助用户发现堆内存在分配和使用过程中的异常情况。
    • 获取Java堆中各个对象创建的数量及大小,显示相关内存使用情况并实时刷新。
  4. 热点信息
    • 通过工具分析的热点方法,热点方法以倒火焰图形式呈现,不同层(如Java调用层、JNI层、Native层、内核层等)的热点方法的以不同颜色区分。
    • 通过工具展开查看Java方法对应的字节码(非必须)、经JVM JIT编译器生成的机器指令,并查看这些指令的热点分布;对于不能查看的字节码的情形需要给出原因。
    • 对给定的入口方法进行调用链采集,收集采集期间的方法调用关系,方法耗时等数据;以树形式展现。
  5. GC信息

    用户可以在线统计分析目标JVM进程中发生的GC事件,分析GC原因、GC阶段分布、GC内存回收效果、GC暂停等因素,以定位潜在的GC相关的内存问题、性能瓶颈问题。

  6. IO信息

    在线分析应用中的文件IO、Socket IO时延、消耗带宽等数据,找出热点IO操作。

  7. 数据库信息
    • 监测和分析数据库连接池。监测数据库连接池连接的情况、帮助用户定位潜在的连接泄露,对不合适的连接池配置给出优化建议。
    • 分析JDBC热点SQL操作。记录应用中的SQL调用时间、耗时和堆栈跟踪,帮助用户定位耗时最长的热点SQL操作。
    • 分析NoSQL热点操作。记录应用中访问/操作NoSQL数据库调用时间、耗时和堆栈跟踪,帮助用户定位耗时最长的热点NoSQL操作。
  8. HTTP信息

    记录应用中的HTTP请求时间和耗时,找出热点HTTP请求。

  9. 快照信息

    支持在堆、IO、Workload在线分析过程中生成快照,对快照进行比对,辅助用户发现资源、业务相关指标的变化趋势,定位潜在的资源泄露问题或性能指标恶化问题。

采样分析

通过采样的方式,收集JVM的内部活动/性能事件,通过录制及回放的方式来进行离线分析。这种方式对系统的额外开销很小,对业务影响不大,适用于大型的Java程序。

主要分析结果包括:

  1. 概览
    • 显示Java虚拟机系统状态。
    • 通过采样及回放的方式显示JVM的Heap使用情况、GC活动、IO消耗和CPU使用率。
  2. 线程转储及锁分析结果
    • 分析程序线程状态及锁。获取采样时间内的线程的状态变化和当前线程转储,根据线程转储图形化地显示线程锁定状态,分析线程死锁情况。
    • 分析估计线程阻塞对象和阻塞时间。
  3. 方法采样分析结果
    • 分析Java及native代码中热点函数CPU Cycles的占比及定位。
    • 支持通过火焰图查看热点函数及其调用栈。
  4. 内存分析结果
    • Java对象在Heap中的分配情况,快速定位消耗Heap最多或数量分配最多的对象,发现潜在问题;通过堆栈追踪定位潜在的内存问题。
    • 通过对存留周期长的Java对象进行采样分析,发现潜在的堆内存泄漏点,定位潜在堆内存泄露问题。
  5. GC分析结果

    用户查看Java的GC配置,Heap大小变化以及GC事件发生情况。通过观察Heap变化,GC活动频率和暂停时间,分析和调整当前的GC策略。

  6. IO分析结果

    用户可分析目标Java应用中关于文件读写、Socket流量使用情况,以发现IO使用瓶颈;分析应用对文件的读写统计信息: 读写路径、读/写频次、读/写速率、读/写总量、堆栈跟踪(可配)及随时间变化图。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词