JVM监控展示基于Java应用的JVM运行环境的内存和线程指标,您可以实时监控指标趋势进行性能分析。
JVM监控功能提供JVM内存和线程指标,您可以单击“内存”和“线程”两个页签,查看内存和线程指标图,快速分析定位内存泄漏、线程异常等问题。
如图1所示,展示设置的时间段内某个实例的总内存、堆内存、非堆内存等JVM不同内存区域的最大值、分配值和使用情况的趋势,也展示设置的时间段内某个实例的垃圾收集堆的GC时间和GC次数趋势。
JVM内存介绍
JVM区域总体分为Heap memory和Non-Heap memory。
Java堆是垃圾收集器管理的主要区域,又称为Garbage Collection Heap,GC方式包括Full GC和Minor GC。
区域名称 |
说明 |
---|---|
Eden Space |
用于最初从线程池分配内存给大部分对象。 |
Survivor Space |
用于保存在Eden区内存池中经过垃圾回收后没有被回收的对象。 |
Tenured Space |
用于保持已经在Survivor区内存池中存在了一段时间的对象。 |
Code Cache |
用于编译和保存本地代码的内存。 |
Permanent Space |
用于保存虚拟机的静态数据,例如,类和方法对象。 |
Meta Space |
用于保存本地化内存中类的元数据。Java 8之后Meta Space替代Permanent Space。 |
Direct Buffer |
监控直接缓冲区的使用情况。 |
Full GC |
当内存回收之后仍无法满足内存空间分配需求时, 对整个堆空间(新生代、老年代和永久代)进行垃圾收集。 |
Minor GC |
当分配对象遇到内存不足时,对新生代空间(Eden区和Survivor区)进行垃圾收集。 |
JVM采用分代垃圾回收。在JVM的内存空间中把堆空间分为老年代和新生代。将大量(90%以上)创建后短期消亡的对象存储在新生代,而老年代中存放生命周期长久的实例对象。新生代空间分为Eden区和两个Survivor区。新对象首先分配在Eden区,Survivor区作为Eden区和Tenured区的缓冲,在Survivor区的对象经历若干次收集仍然存活的,就会被转移到老年区,如图2所示。
新生代共有两个Survivor区,分别用from和to指针指代,其中to指针指向空的Survivor区。
如图3所示,展示设置的时间段内某个实例的New线程数、Runnable线程数、Blocked线程数、Waiting线程数等线程执行情况的趋势。
线程名称 |
说明 |
---|---|
总数 |
是指总线程数,包含活动线程数和备用线程数。粘滞线程和专用线程在执行完成后变为备用线程。 |
死锁 |
是指两个或两个以上的线程在执行过程中,由于竞争资源或彼此通信而造成的阻塞现象,导致系统处于死锁状态。 |
New线程数 |
新建线程数量。 |
Runnable线程数 |
可运行线程数量。 |
Blocked线程数 |
阻塞线程数量。 |
Waiting线程数 |
等待中线程数量。 |
TimedWaiting线程数 |
限时等待线程数量。 |
Terminated线程数 |
终结线程数量。 |
最大连接数 |
Tomcat可用的最大连接数。 |
当前连接数 |
Tomcat当前已占用的连接数。 |
最大线程数 |
Tomcat最大执行线程数。 |
当前线程数 |
Tomcat当前执行线程数。 |
繁忙线程数 |
Tomcat当前处理任务的执行线程数。 |
您可以给JVM内存及线程的各个指标添加阈值规则,当满足规则条件时会触发告警,提醒您关注。
添加至服务参数说明:
本文介绍如何通过阿里云的服务快速创建Sharepoint2016。 说明 本文示例由阿里云...
由于刀片服务器的技术非常特殊,价格当然也不会让中小企业接受了,但是目前刀片...
哈喽各位同学们大家好呀 小编今天带着开发者学院中课程“Dubbo集成Nacos注册中心...
对企业上云有需求的用户,百度云是广大用户的首...
如今,许多公司都使用Jenkins完成了他们的持续集成,测试和持续部署。他们中的大...
网站的 虚拟主机 买多大的合适?虚拟主机买多大的,就要看网站的实际需求。不同...
本文介绍查看弹性保障的状态、实例规格、私有池容量使用情况、关联实例等信息。 ...
Kubernetes Operators是为特定应用程序而构建的,目的是为了简化在Kubernetes上...
刀片服务器于2001年诞生后的数年间,众多大厂看好而加入,走向多元应用型态时期...
申请续用Windows Server 2008 镜像服务协议,请参见 这里 。...