快速入门
业务系统分析
创建业务系统
分析业务系统
Web应用性能管理
理解应用性能管理
管理应用列表
查看应用概览
追踪关键事务
追踪请求详情
分析单个请求
分析单次请求快照
追踪外部服务
分析消息队列
追踪数据库详情
追踪NoSQL详情
追踪错误&异常信息
对比分析
设置应用
后台任务性能管理
后台任务概述
管理后台任务列表
查看后台任务概览
追踪慢后台任务
追踪单次慢后台任务
追踪错误信息
运维者视图
创建运维视图
分析运维视图
设置运维视图
移动应用性能管理
理解移动应用性能管理
移动应用概览
用户行为分析
网络分析
Webview性能分析
运营分析
地域分析
崩溃分析
ANR/卡顿分析
组合分析
劫持分析
交互分析
移动拓扑分析
移动应用设置
浏览器性能管理
理解浏览器性能管理
向前端页面注入JS
查看浏览器项目列表
查看Web页面性能概览
按区域分析Web页面性能
按网页分析Web页面性能
按浏览器分析Web页面性能
按运营商分析Web页面性能
多维度追踪单页面请求性能
分析Web页面Ajax请求
分析Web页面JS错误
主机性能管理
理解主机性能管理
管理主机和服务列表
查看主机概览
分析服务器性能
分析Apache性能
分析Redis性能
分析MySQL性能
分析Memcache性能
分析Tomcat性能
分析MongoDB性能
分析Nginx性能
分析Weblogic性能
分析Oracle性能
分析SQL Server性能
分析PostgreSQL性能
分析Varnish性能
分析CouchBase性能
分析Java虚拟机性能
分析Docker性能
设置主机信息
告警管理
概述
设置应用/移动告警/浏览器告警
设置主机告警
查看并处理告警
管理告警
设置URL回调
报告管理
概述
查看在线报告
预定邮件报告
创建自定义报告
账户管理
用户权限说明
管理部门和用户
设置个人信息

在JVM页面查看主机上运行的Java虚拟机的内存、线程、CPU性能数据,掌握Java虚拟机中每个进程运行时的资源使用情况,可以帮助发现以下性能问题:

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

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

  • 发现互相死锁的线程。

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

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

1463133147674452.png

内存分析

线程分析

CPU分析


内存分析

堆&垃圾回收

在“堆&垃圾回收”页面查看内存使用状态的概要信息、内存及垃圾回收变化趋势。

1)内存使用状态

在内存使用状态的概要信息中查看内存平均使用率、最近5分钟使用率、内存大小。

1463133162884071.png

2)Heap memory和No Heap memory

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

1463133177708556.png

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

3)垃圾回收

在GC-Avg Count和GC-Avg Time这两个垃圾回收图表中,关注完全回收的次数和时间,因为它影响到系统的响应时间。不同的垃圾回收器,其完全回收的名字不一样。

1463133191952634.png

Memory Pool

在Memory Pool(内存池)中查看内存使用状态及变化趋势。不同的垃圾回收器,其各个内存的名字不一样。

1463133206331167.png

对象实例跟踪

在对象实例跟踪页面查看每个对象运行的对象实例数、对象占用内存大小及对象实例的变化趋势。

1463133220617630.png


线程分析 

在线程页面查看所有线程的运行状态和各性能指标数据,不同状态的线程用不同颜色标记。

1463133234544858.png

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

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

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


CPU分析

在CPU页面查看监控进程的CPU时间即代码执行时间,包括前后台线程。配置的debugPackg越详细,线程内代码的执行时间越精确。

在“Thread List”中,点击线程名称查看线程的Call Tree即详细的方法调用树。

1463133248631094.png

在“Call Tree”中,点击方法名称可查看该方法的父方法(Caller)及子方法(Callee)的执行时间。

1463133262508308.png

此外,还可在“Hot Spots”中查看所有的方法的执行时间。

指标说明:

  • Time(ms):该方法自身及所有子方法的执行时间。

  • Time(%):该方法自身及所有子方法占父方法的执行时间比率。

  • SelfTime(ms):该方法自身的执行时间。

  • SelfTime(%):(SelfTime/ Time )* 100%