Jvm监控工具的作用:
对JVM运行期间内部情况进行监控,比如JVM参数,CPU,内存,堆信息
辅助进行性能调优
辅助解决一些应用运行时的问题,比如OutOfMemoryError,内存泄漏,线程死锁,进程消耗CPU过高等
JPS
- JPS 主要用来输出JVM状态信息
jinfo
- 打印给定进程或核心文件或远程调试服务器的配置信息
jstack
- 主要用来查看某个java线程内的线程堆栈信息
jmap
- jmap用来查看堆内存使用情况
jstat
- JVM统计监测工具,查看各个区内存和GC状况
jstated
- 虚拟机的jstat守护进程,主要用于监控JVM的创建与终止,并提供一个接口,以允许远程监控工具附加到本地系统的JVM上
jcmd
- JVM诊断命令工具,将诊断命令请求发送到正在运行的Java虚拟机上
Jconsole
- 一个监视java虚拟机符合的JMX图形工具,可以监视远程和本地JVM
开启jconsole:
jconsole界面:
JMC
- JMC客户端包括用于监控和管理Java应用程序的工具,不会引入通常与这些类型的工具相关联的性能开销
- JMC需要单独下载
JMC的特点是拥有飞行记录器
飞行记录器结果目录:
Visual VM
一个图形工具,提供在JVM中运行的java程序的信息
主要提供内存,CPU信息,堆转存信息,内存泄漏检测
现在可以通过命令行启动JFR,然后再用Visual VM打开JFR文件
远程连接
- JMX连接可以查看:系统信息,CPU使用情况,线程多少,手动执行垃圾回收比例等比较偏向系统层面的信息
- jstated连接方式可以提供:JVM内存分布详细信息,垃圾回收分布图,线程详细信息,某个对象使用内存大小