JVM 监控工具可以监控JVM 运行状态和性能,下面给大家分享主流的4款JVM 监控工具@mikechen
JConsole
JConsole可以监控正在运行的 JVM 的各种指标,例如:线程数、堆使用情况、垃圾回收次数和持久代大小。
打开命令行窗口,进入Java的安装目录下的bin目录,然后运行jconsole.exe就可以运行JConsole了。
选择需要监控和管理的Java应用程序,新建链接:
连接成功后,JConsole将会显示应用程序的概览信息,如下图所示:
然后,点击内存、线程、类就可以查看详细的JVM监控信息了。
JVisualVM
JVisualVM 是一个用于监视和分析正在运行的 JVM 的可视化工具,是JVM性能调优的必备工具。
JVisualVM可以显示堆转储和线程转储,并提供了一些分析工具。
如下图所示:
主要提供以下工具:
1.堆分析
JVisualVM可以显示Java应用程序的内存使用情况,包括有关内存中分配的对象的详细信息。
2.CPU分析
JVisualVM可以显示Java应用程序的CPU使用情况,允许开发人员识别性能瓶颈并优化他们的代码。
3.线程分析
JVisualVM可以显示Java应用程序中的线程信息,包括它们的状态、堆栈跟踪和CPU使用情况。
4.JMX监控
JVisualVM可以连接到Java管理扩展(JMX)代理并显示有关代理管理的资源的信息。
Arthas
Arthas是一款能够实时查看系统运行状态、监控JVM的运行状态、查看类的依赖关系、获取堆栈信息的JVM监控工具。
如下图所示:
使用Arthas可以进行如下操作:
1.方法调用追踪
可以查看某个方法的调用情况,了解方法的调用栈、调用时间、调用次数等信息。
2.线程状态分析
可以查看线程状态、线程堆栈、线程调用时间等信息。
3.堆内存分析
可以查看Java堆内存的使用情况,了解内存的使用情况、内存泄漏等问题。
4.监控应用性能
可以监控应用的各种性能指标,例如QPS、响应时间、GC时间等。
5.动态修改代码
可以在应用程序运行时,修改应用程序的代码,从而快速修复线上问题。
Arthas是一款非常强大、易用、方便的JVM监控工具,可以帮助开发者快速地诊断和解决Java应用程序的问题。
JProfiler
JProfiler 是一款功能强大的 Java 应用程序性能监控和分析工具,可以用于本地和远程 JVM。
如下图所示:
使用JProfiler可以进行如下操作:
- 堆分析器 JProfiler提供了一个堆分析器,可以帮助开发人员快速了解应用程序的内存使用情况。堆分析器可以帮助开发人员查找内存泄漏和过度分配等问题。
- 线程分析器 线程分析器可以帮助开发人员理解应用程序中线程的运行情况。开发人员可以查看每个线程的状态、调用栈和锁定情况,以及线程之间的相互关系。
- CPU分析器 CPU分析器可以帮助开发人员查找应用程序中的性能瓶颈。它可以告诉开发人员应用程序的哪些部分正在使用大量的CPU时间。
- 数据库分析器 JProfiler可以与各种数据库进行集成,提供了一个数据库分析器,可以帮助开发人员查找慢查询和数据库连接池等问题。
- 实时监控 JProfiler提供了实时监控功能,可以帮助开发人员实时地监控应用程序的性能。开发人员可以查看应用程序的各种指标,例如CPU使用率、内存使用率和线程数等。
- 报告和导出 JProfiler可以生成各种报告,例如堆分析、线程分析和CPU分析等报告。开发人员可以将这些报告导出为各种格式,例如PDF、HTML和XML等。
以上就是JVM监控工具详解,更多JVM调优内容,请查看:JVM性能调优的6大步骤,及关键调优参数详解
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》