IT评测·应用市场-qidao123.com

标题: JDK8 Java HotSpot VM GC参数调优 [打印本页]

作者: 自由的羽毛    时间: 2023-5-14 16:32
标题: JDK8 Java HotSpot VM GC参数调优
参考文档

目录

前言

本文尽可能对GC的情况进行简要表述,目标是用最少的描述来完整阐明JDK8 Java Hotspot VM目前支持的各种GC方式及其调优方法。
为精简行文内容,正文中不包含GC观测手段的介绍,读者可以参考 Java Platform, Standard Edition HotSpot 虚拟机垃圾收集调优指南 部分获得更多相关信息。
省流

默认收集器

收集器的默认配置通常遵循如下原则:
下面提供一个简单的表格:
平台操作系统默认收集器类型i586Linux并行收集器i586Windows串行收集器SPARC (64-bit)Solaris并行收集器AMD (64-bit)Linux并行收集器AMD (64-bit)Windows并行收集器默认堆大小

参数客户端服务端-Xmx 最大堆大小物理内存小于等于192M时,为物理内存的一半;
否则为物理内存的1/4,但不超过256M物理内存小于等于192M时,为物理内存的一半;
否则为物理内存的1/4,32位JVM不超过1G,64位JVM不超过32GB-Xms 初始堆大小物理内存的1/64,但不低于8M,不超过256M物理内存的1/64,但不低于8M,不超过256M-Xmn 新生代空间总堆大小的1/3总堆大小的1/3调优策略

收集器选用原则

基本定义

调优目标

所有的GC调优主要围绕如下四个目标进行
收集器分类

内存中代的排列

默认排列

显示默认的世代安排(用于除并行收集器和 G1 之外的所有收集器):


并行收集器的排列


各个空间的使用方式与 默认排列 中的一样。
G1收集器的排列


回收算法

仅图示,各算法的描述可以参考 《Java性能优化之JVM GC(垃圾回收机制)- 大鹅coding
标记-清除 算法


标记-复制 算法


注意,从Survivor如果已满,则也会使用“标记-复制”算法将对象回收到老年代区域。
标记-整理 算法

通常用于老年代的回收。

串行收集器

步骤大致如下:
并行收集器

目标优先级

这些目标按以下顺序处理:
首先满足最大暂停时间目标。 只有在满足它之后,吞吐量目标才会得到解决。 同样,只有在满足前两个目标后,才会考虑footprint占用空间目标。
GC步骤

步骤与串行收集器基本一直,主要区别为并行收集器的垃圾收集过程使用多线程处理。
并发标记扫描(CMS)收集器

目标优先级 与并行收集器相同。
GC步骤(仅老年代)
i-cms 增量模式
在只有一或两个处理器的服务器上,由于在并发标记阶段始终需要有处理器来执行标记过程,因此可能会造成过大的应用中断。开启增量模式可以使用“占空比”来使CMS收集器自愿放弃部分工作量,从而减少垃圾收集所占用的应用程序CPU时间片。
垃圾优先(G1)垃圾收集器

目标优先级 与并行收集器相同。
GC步骤
注意,G1收集器的排列 可以参考前文
JVM重要调优参数

本节只列出部分相对重要的参数,全部可以参数描述可以参考 Java平台标准版工具参考(unix)
通用参数

串行收集器

并行收集器

大多数并发收集器

CMS

G1


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4