jcmd
在JDK1.7以后,新增了一个命令行工具 jcmd。他是一个多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行GC、还可以进行采样分析(jmc 工具的飞行记录器)。
jconsole
JConsole图形用户界面是基于JMX规范的监视工具,可以监测有关在Java平台上运行的应用程序的性能和资源消耗的信息。
jvisualvm
jvisualvm是 JDK 内置的可视化性能诊断工具,它通过 JMX、jstatd、Attach API 等方式获取目标 JVM 的分析数据,包括 CPU 使用率、内存使用量、线程堆栈信息等。此外,它还能直观地展示 Java 堆中各对象的数量和大小、各 Java 方法的调用次数和执行时间等,可以认为jvisualvm是jconsole的升级版,是一个综合性的分析工具,可以认为其整合了jstack、jmap、jinfo等众多调试工具的功能,并以图形界面展示。
jmc
JDK7开始引入了Java 任务控制(JMC)工具,它的根源是 JRockit JVM 工具。该工具套件的目的是提供Java 监控和管理,适合在开发和产品环境中使用。JMC 与 Java Flight Recorder 一起工作,适用于 HotSpot JVM,用来记录核心数据和事件。它是一个调优工具,一旦出现问题,这些数据就可以用来分析。该工具套件由三个主要的组件组成:Java 进程浏览器、JMX 控制台和 Java Flight 记录器。
Java 进程浏览器:允许用户列出并连接到本地和远程运行的Java应用程序。它能够使用 Java发现协议(JDP)自动地发现本地和远程运行的 Java 进程。
JMX 控制台:能够通过 JMX 接口管理并监控 JDK。它提供了实时集合、堆使用情况、CPU 负载以及其他通过 MBeans 暴露的和在 MBean 服务器中注册的信息。
Java Flight 记录器:提供了一种从操作系统层、JVM 和 Java 应用程序层收集事件的方式。收集的事件包括线程延时事件,例如休眠(sleep)、等待(wait)、锁竞争、I/O、GC 和方法分析。Oracle 估计对大多数应用程序而言运行 Flight 记录器的性能开销大约在 2% 左右。
使用前需要开启JVM参数:-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
jprofiler
JProfiler 是一个商业授权的 Java剖析工具,是由 ej-technologies 公司开发的一款 Java 应用性能诊断工具。它聚焦于四个重要主题上:
方法调用 - 对方法调用的分析可以帮助您了解应用程序正在做什么,并找到提高其性能的方法。
内存分配 - 通过分析堆上对象、引用链和垃圾收集能帮您修复内存泄漏问题,优化内存使用。
线程和锁 - JProfiler 提供多种针对线程和锁的分析视图助您发现多线程问题。
高级子系统 - 许多性能问题都发生在更高的语义级别上。例如,对于JDBC调用,您可能希望找出执行最慢的 SQL 语句。JProfiler 支持对这些子系统进行集成分析。
Arthas
Arthas是什么
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
网友评论