吞吐量优先

一、概述:

HotSpot的年轻代中除了拥有ParNew收集器是基于并行回收的以外,Parallerl Scavenge收集器同样也是采用了复制算法、并行回收、“Stop-the-World”机制。

二、和ParNew并行收集器比较:

a、ParNew收集器不同,Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量(Throughput),它也被称为吞吐量优先的垃圾收集器。

b、自适应调节策略也是Parallel Scavenge 与ParNew一个重要区别。

三、使用场景:

高吞吐量则可以高效的利用CPU时间,尽快完成程序运算任务,主要适合在后台运算而不需要太多交互的任务。因此常见的服务器环境中使用。例如,那些执行批量处理,订单处理,工资支付,科学计算的应用程序。

四、老年代垃圾收集器:

Parallel 收集器在JDK1.6时提供了用于执行老年代垃圾收集的Parallel Old收集器,用于代替老年代的Serial Old收集器。

五、Parallel Old采用的机制:

Parallel Old 收集器采用了标记-压缩算法,但同样也是基于并行回收和“Stop-the-World”机制、

六、图解:

 七、组合使用:

八、Parallel Scavenge 的垃圾收集器的相关参数设置:

(1)-XX:+UserParallelGC  :手动指定年轻代使用Parallel 并行收集器执行内存回收任务。

(2)-XX:+UserParallelOldGC :手动指定老年代都是使用并行回收收集器。

         分别适用于新生代和老年代。默认jdk8是开启的。

上面两个参数,默认开启一个,另一个也会被开启。(互相激活)

(3)-XX:ParallelGCThreads 设置年轻代并行收集器的线程数。一般地,最好与CPU数量相等,

以避免过多的线程数影响垃圾收集性能。

默认情况下,当CPU数量小于8个,ParallelGCThreads的值等于CPU数量。

当CPU数量大于8个,ParallelGCThreads的值等于3+[5*CPU_Count/8].

(4)-XX:MaxGCPauseMillis 设置垃圾收集器最大停顿时间(即STW的时间)。单位是毫秒。

为了尽可能地把停顿时间控制在MaxGCPauseMills以内,收集器在工作时会调整Java堆大小或者其他一些参数。

对于用户来讲,停顿时间越短体验越好,但是在服务器端,我们注重高并发,整体的吞吐量,所以服务器端适合Parallel,进行控制。

该参数使用需谨慎。

(5)-XX:GCTimeRatio 垃圾收集时间占总时间的比例(=1/(N+1))。用于衡量吞吐量的大小。

取值范围(0,100).默认值是99,也就是垃圾收集时间不超过1%.

与前一个-XX:MaxGCPauseMilis 参数有一定的矛盾性。暂停时间越长,Radio参数就容易超过设定的比例。

(6)-XX:+UserAdaptiveSizePolicy 设置Parallel Scavenge 收集器具有自适应调节策略。

在这种模式下,年轻代的大小、Eden和Survivor的比例、晋升老年代的对象年龄等参数会被自动调整,已达到在堆大小,吞吐量和停顿时间的平衡点。

在手动调优比较困难的场合,可以直接使用这种自适应的方式,仅指定虚拟机的最大堆大小,目标吞吐量(GCTimeRatio)和停顿时间(MaxGCPauseMills),让虚拟机自己完成调优工作。

JVM之Parallel Scavenge回收器相关推荐

  1. JVM学习笔记——垃圾回收器

    经典收集器与垃圾分代之间的关系 新生代收集器:Serial.ParNew.Parallel Scavenge 老年代收集器:Serial Old.Parallel Old.CMS 整堆收集器:G1 如 ...

  2. JVM七大垃圾回收器上篇Serial、ParNeW、Parallel Scavenge、 Serial Old、 Parallel Old、 CMS、 G1

    GC逻辑分类 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本. 从不同角度分析垃圾收 ...

  3. Parallel Scavenge垃圾回收器

    Parallel与Parallel Old垃圾回收器(学习笔记) 简介 全称为Parallel Scavenge收集器. HotSpot中,除了ParNew收集器是基于并行回收以外,Parallel ...

  4. 在linux上gc日志详解,JVM Parallel Scavenge GC日志详解

    Parallel Scavenge 日志格式 -XX:+PrintGCDetails [GC (Allocation Failure) [PSYoungGen: 127520K->20064K( ...

  5. Parallel Scavenge和Parallel Old垃圾回收器组合

    8.5.2. Parallel Scavenge和Parallel Old垃圾回收器组合 1)工作地点 Parallel Scavenge垃圾回收器工作在年轻代,而Parallel Old工作在老年代 ...

  6. Jvm垃圾收集器总结之 Parallel Scavenge 收集器

    Parallel Scavenge 收集器是个新生代收集器.它也是使用复制算法的收集器,又是并行的多线程收集器....看上去和ParNew 都一样,那它有什么特别之处呢? Parallel Scave ...

  7. JVM笔记6-垃圾回收器

    2019独角兽企业重金招聘Python工程师标准>>> JVM进行垃圾回收时要考虑哪的问题如下: 1.如何判定对象为垃圾对象? 1.引用计数法:在对象中添加一个引用计数器,当有地方引 ...

  8. JVM笔记:垃圾回收器总结

    垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本.从不同角度分析垃圾收集器,可以将GC ...

  9. 【JVM · GC】垃圾回收器

    1. GC分类与性能指标 1.1 垃圾回收期器概述 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于 JDK 版本处于高速迭代过程中,因此Java 发展至今已经衍 ...

  10. JVM中的垃圾回收器详解

    垃圾回收器的种类和使用 1.概述 1.1垃圾回收器和垃圾回收算法的关系 1.2垃圾回收器的分类 1.3 如何使用参数查看当前使用的垃圾回收器 2 串行收集(Serial) 2.1 概念 3 并行收集( ...

最新文章

  1. codevs 5963 [SDOI2017]树点染色
  2. 可变参数中size_t遇见的问题
  3. Linux数据报文接收发送总结5
  4. trait功能 php,PHP之Trait功能与用法实例分析
  5. 解决Android中的ERROR: the user data image is used by another emulator. aborting的方法
  6. 如何看计算机几核,windows7系统怎么看CPU是几核的?win7查看CPU是几核的方法
  7. java classpath详解_java Classpath全解(转)
  8. 自动触发click事件
  9. Java敏捷开发框架
  10. java写的网络版斗地主_JAVA网络版斗地主游戏
  11. 保研之路——北航网安学院直硕夏令营
  12. 常用的国产计算机软件,国产常用操作系统介绍,亲身使用告诉你答案!
  13. k均值算法原理及matlab实现
  14. 如何将ts格式文件转成MP4格式文件
  15. Notepad远程Xftp服务器使用技巧
  16. IDEA 生成代码神器
  17. 将Vue通过nginx部署到阿里云服务器上
  18. 成都网站优化之企业网站内部优化
  19. 再见,世界首富!再见,马云!
  20. Android——top命令

热门文章

  1. Linux内核info leak漏洞
  2. 质量与规范,敬我们那些年欠下的技术债
  3. 使用petalinux编译工程,报错:Unable to parse input tree,已解决
  4. flea-common使用之本地国际化实现
  5. 带sex的net域名_域名劫持的几种方法、域名劫持有什么方式
  6. java8使用Comparator.comparing进行排序
  7. 《地球概论》(第3版)笔记 第四章 地球运动的地理意义
  8. 基于SSM的医院科室人员管理系统
  9. 教你10分钟电脑配置挑选装机速成攻略
  10. java tld tag_jsp中引用的tag和tld文件