JVM监控能够监控透视宝Java应用程序的资源和性能,帮助运维人员分析内存、线程、线程池的性能数据,掌握每个进程运行时的资源使用情况,判断是否有内存溢出或应用运行异常情况。

提醒:在使用应用服务JVM前,您需要确保已具有应用服务JVM的页面访问权限和应用服务数据的维护权限。如果您没有相关权限,请联系用户中心管理员为您配置权限,相关操作管理员请参见授权

配置入口: 门户首页>APM-Server>应用服务卡片>JVM

  • 内存持续增长,如果内存持续增长有可能会导致内存溢出。

  • 频繁的完全垃圾回收,JVM在完全垃圾回收时会使所有正在运行的程序停顿,直至垃圾回收完毕,此段时间内,应用系统的响应就会变慢。

  • 发现互相死锁的线程。

  • 监控线程中的代码堆栈执行时间。

  • 监控所有线程状态、CPU使用率。要特别注意,长时间处于Blocked、Waiting和Timed_Waiting状态的线程,其阻塞和等待的代码处会有潜在的性能问题,根据我们统计出来的这些状态的线程,用户可以用jstack命令,具体检查阻塞和等待的代码。

注意:只有Java应用支持JVM监控。

JVM页面的JVM进程列表查看进程名称、进程路径、主机、响应时间、吞吐率、错误率、cpu最大使用率、JVM版本和启动时间等。单击进程名称查看JVM的内存、线程及线程池运行情况。

1646274296602946.png

内存分析

内存页签,查看堆&垃圾回收情况,包括内存使用状态的概要信息、堆内存及非堆内存的使用情况、垃圾回收情况。

  • 堆内存和非堆内存

    查看堆内存和非堆内存在一段时间内的变化趋势,包括Usage、MAX、Commited。

1646274379964994.png1646274394165329.png


  • 堆的持续增长意味着潜在的内存泄漏或溢出,通过变化趋势图发现潜在风险。

  • 垃圾回收

    在垃圾回收数量&响应时间图表中,关注垃圾回收的数量和响应时间,垃圾回收的响应时间影响到系统的响应时间。

1646274445176215.png

线程分析

线程页签,查看线程数变化趋势、所有线程的运行状态及各性能指标数据,不同状态的线程用不同颜色标记。

1646274487299188.png

1646274510774773.png

其中,Cpu使用时长是指从线程启动到现在为止共运行的时间;Cpu则是以jvm_period为周期,在这个周期内,该线程执行的CpuTime占jvm_period的比率。

要特别注意,长时间处于Blocked、Waiting和TimedWaiting状态的线程,其阻塞和等待的代码处会有潜在的性能问题,根据我们统计出来的这些状态的线程,用户可以用jstack命令,具体检查阻塞和等待的代码。

通过线程的运行状态能够发现死锁问题,但没有必要监控的线程,不需要监控时在配置文件中将dumpThread配置为false即可。

线程池分析

线程池页签,查看线程池容量变化趋势、队列容量变化趋势、所有线程池的运行状态及各性能指标数据。