十一、JVM 监控工具

【目录】 【上一篇:JVM 监控及诊断工具 - 命令行】 【下一篇:JVM 运行时参数】

十一、JVM 监控工具

1、JConsole

  • 用于对 JVM 中内存、线程和类等信息的监控;
  • 命令 jconsole 启动即可,JVM 自带

2、Visual VM

  • Visual VM可用于显示虚拟机进程及进程的配置和环境信息(jps,jinfo),监视应用程序的CPU、GC、堆、方法区及线程的信息(jstat、jstack)等,甚至代替JConsole;
  • jdk 自带,在 jdk 包的 lib 文件目录下(JDK 11 及之后就没自带了)

主要功能:

  • 1.生成/读取堆内存/线程快照
  • 2.查看JVM参数和系统属性
  • 3.查看运行中的虚拟机进程
  • 4.程序资源的实时监控
  • 5.JMX代理连接、远程环境监控、CPU分析和内存分析

3、eclipse MAT

  • 分析堆(dump 文件)的工具

OQL 语句

MAT 支持一种类似于 SQL 的查询语句 OQL,可以在堆中进行对象的查找和筛选

自行了解吧,跟 sql 差不多

4、JProfiler

主要功能:

  • 1-方法调用:对方法调用的分析可以帮助您了解应用程序正在做什么,并找到提高其性能的方法
  • 2-内存分配:通过分析堆上对象、引用链和垃圾收集能帮您修复内存泄露问题,优化内存使用
  • 3-线程和锁:JProfiler提供多种针对线程和锁的分析视图助您发现多线程问题
  • 4-高级子系统:许多性能问题都发生在更高的语义级别上。例如,对于JDBC调用,您可能希望找出执行最慢的SQL语句。JProfiler支持对这些子系统进行集成分析

5、Arthas(神器)

Arthas是Alibaba开源的Java诊断工具,在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。Arthas 支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

  • 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  • 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  • 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  • 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  • 是否有一个全局视角来查看系统的运行状况?
  • 有什么办法可以监控到JVM的实时运行状态?
  • 怎么快速定位应用的热点,生成火焰图?

官方地址:https://arthas.aliyun.com/doc/quick-start.html

【目录】 【上一篇:JVM 监控及诊断工具 - 命令行】 【下一篇:JVM 运行时参数】

你可能感兴趣的:(深入了解,JVM,jvm,java,开发语言)