美文网首页JVM
衡量垃圾收集器重要指标定义

衡量垃圾收集器重要指标定义

作者: 专职掏大粪 | 来源:发表于2020-08-18 13:07 被阅读0次

并行: 并行描述的是多条垃圾回收器线程之间的关系,说明多个线程的协同工作,通常默认为此时用户线程处于等待阶段
并发:并发描述的是垃圾收集器线程和用户线程之间的关系,说明同一时间垃圾收集器线程与用户线程都在运行.

  • 衡量垃圾收集器的三项最重要的指标是:内存占用(Footprint)、吞吐量(Throughput)和延迟(Latency),三者共同构成了一个“不可能三角”
    三者总体的表现会随技术进步而越来越好,但是要在这三个方面同时具有卓越表现的“完美”收集器是极其困难甚至是不可能的,一款优秀的收集器通常最多可以同时达成其中的两项

内存占用
吞吐量:处理器用于运行用户代码的时间与处理器总消耗时间的比值
(吞吐量=(运行代码的时间)/运行代码的时间+垃圾回收的时间)
延迟(gc暂停时间相关,一般说的是单次延迟,总的延迟是吞吐量)

一、延迟,单次的延迟
单次的延迟关系到服务的响应时延,比如,在要求接口响应不超过100ms的服务里,单次的延迟目标必然不能超过100ms。

服务的响应时间目标,不应该是指100%时间的服务响应。服务不可能是100%可用的,通常,我们对于服务的响应延迟目标也不是100%可用时间内的。

实际应用中,我们可能会以99.9%时间内,延迟不超过100ms为目标。

对于G1,会有一些默认设置,以使应用者在不做任何调整的情况下,依然能高效的运行。

-XX:MaxGCPauseMillis=200:目标最大gc暂停时间,默认为200ms,这只是期望的目标延迟。我们知道G1有相应的收集算法,会根据收集的信息及检测的垃圾量动态的调整年轻代与老年代的大小以尽力达到这个目标。

使用此配置需要注意的一点是,不要和 Xmn 年轻代同时设置,我们上面提到过,G1会为了最大gc暂停时间目标而动态的调整年轻代大小,因此,如果设定了 Xmn,那么固定了年轻代的大小就会影响G1的智能调整适应。

二、吞吐量,有多少总的延迟
总的延迟关系到服务的可用时间率、吞吐量,比如,100分钟内总的gc延迟1分钟,那么服务的可用率就是99%。如果既定的目标是99.9%,那么总的延迟就不能超过6秒钟。
总的延迟=单次延迟*gc次数。
单次延迟我们在一.1中已经论述,那么现在就需要通过降低gc次数来达到降低总延迟的目标

相关文章

  • 10-低延时垃圾收集器

    一、完美垃圾收集器 衡量垃圾收集器的三项最重要的指标是:内存占用(Footprint)、吞吐量(Throughpu...

  • 衡量垃圾收集器重要指标定义

    并行: 并行描述的是多条垃圾回收器线程之间的关系,说明多个线程的协同工作,通常默认为此时用户线程处于等待阶段并发:...

  • 【016】2020.11.16 周一 Java 低延迟收集器

    低延迟垃圾收集器 1.1 衡量指标 内存占用 Footprint 吞吐量 Throughput 延迟 Late...

  • 低延迟垃圾收集器

    衡量垃圾收集器的三项指标:内存占用、吞吐量和延迟。两款低延迟收集器Shenandoah和ZGC,它们只有初始标记、...

  • JVM垃圾收集器

    垃圾收集器的理论依据是垃圾回收算法,这里是指堆内存的垃圾收集器。 垃圾收集器的两大指标: GC时间:GC时会暂停其...

  • 垃圾收集器

    简介  垃圾收集器是垃圾收集算法的具体实现,各种垃圾收集器没有好坏之分,适合自己当前应用的垃圾收集器才是最好的垃圾...

  • JVM学习笔记之垃圾收集器【五】

    垃圾收集器 HotSpot 包含的垃圾收集器 一、串行收集器 1.1、Serial 收集器 在 JDk1.3 之前...

  • HotSpot垃圾收集器

    HotSpot虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,没有最好的垃圾收集器,只有最适合的垃圾收集器 ...

  • 5种JVM垃圾收集器特点和8种JVM内存溢出原因

    先来看看5种JVM垃圾收集器特点 一、常见垃圾收集器 现在常见的垃圾收集器有如下几种: 新生代收集器: Seria...

  • 垃圾收集器整理&Java8默认垃圾回收器

    垃圾收集器整理 1.Serial 垃圾收集器(单线程、复制算法) 2.ParNew 垃圾收集器(Serial+多线...

网友评论

    本文标题:衡量垃圾收集器重要指标定义

    本文链接:https://www.haomeiwen.com/subject/uexxqktx.html