JVM之Parallel Scavenge回收器
吞吐量优先
一、概述:
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回收器相关推荐
- JVM学习笔记——垃圾回收器
经典收集器与垃圾分代之间的关系 新生代收集器:Serial.ParNew.Parallel Scavenge 老年代收集器:Serial Old.Parallel Old.CMS 整堆收集器:G1 如 ...
- JVM七大垃圾回收器上篇Serial、ParNeW、Parallel Scavenge、 Serial Old、 Parallel Old、 CMS、 G1
GC逻辑分类 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本. 从不同角度分析垃圾收 ...
- Parallel Scavenge垃圾回收器
Parallel与Parallel Old垃圾回收器(学习笔记) 简介 全称为Parallel Scavenge收集器. HotSpot中,除了ParNew收集器是基于并行回收以外,Parallel ...
- 在linux上gc日志详解,JVM Parallel Scavenge GC日志详解
Parallel Scavenge 日志格式 -XX:+PrintGCDetails [GC (Allocation Failure) [PSYoungGen: 127520K->20064K( ...
- Parallel Scavenge和Parallel Old垃圾回收器组合
8.5.2. Parallel Scavenge和Parallel Old垃圾回收器组合 1)工作地点 Parallel Scavenge垃圾回收器工作在年轻代,而Parallel Old工作在老年代 ...
- Jvm垃圾收集器总结之 Parallel Scavenge 收集器
Parallel Scavenge 收集器是个新生代收集器.它也是使用复制算法的收集器,又是并行的多线程收集器....看上去和ParNew 都一样,那它有什么特别之处呢? Parallel Scave ...
- JVM笔记6-垃圾回收器
2019独角兽企业重金招聘Python工程师标准>>> JVM进行垃圾回收时要考虑哪的问题如下: 1.如何判定对象为垃圾对象? 1.引用计数法:在对象中添加一个引用计数器,当有地方引 ...
- JVM笔记:垃圾回收器总结
垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本.从不同角度分析垃圾收集器,可以将GC ...
- 【JVM · GC】垃圾回收器
1. GC分类与性能指标 1.1 垃圾回收期器概述 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于 JDK 版本处于高速迭代过程中,因此Java 发展至今已经衍 ...
- JVM中的垃圾回收器详解
垃圾回收器的种类和使用 1.概述 1.1垃圾回收器和垃圾回收算法的关系 1.2垃圾回收器的分类 1.3 如何使用参数查看当前使用的垃圾回收器 2 串行收集(Serial) 2.1 概念 3 并行收集( ...
最新文章
- codevs 5963 [SDOI2017]树点染色
- 可变参数中size_t遇见的问题
- Linux数据报文接收发送总结5
- trait功能 php,PHP之Trait功能与用法实例分析
- 解决Android中的ERROR: the user data image is used by another emulator. aborting的方法
- 如何看计算机几核,windows7系统怎么看CPU是几核的?win7查看CPU是几核的方法
- java classpath详解_java Classpath全解(转)
- 自动触发click事件
- Java敏捷开发框架
- java写的网络版斗地主_JAVA网络版斗地主游戏
- 保研之路——北航网安学院直硕夏令营
- 常用的国产计算机软件,国产常用操作系统介绍,亲身使用告诉你答案!
- k均值算法原理及matlab实现
- 如何将ts格式文件转成MP4格式文件
- Notepad远程Xftp服务器使用技巧
- IDEA 生成代码神器
- 将Vue通过nginx部署到阿里云服务器上
- 成都网站优化之企业网站内部优化
- 再见,世界首富!再见,马云!
- Android——top命令