当前位置: 首页 > news >正文

Jvm GC 参数总结「二」

针对吞吐量优先的GC配置参数

配置项说明例子
-XX:+UseParallelGC选择垃圾收集器为并行收集器。-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20-XX:+UseParallelGC此配置仅对年轻代有效,即在示例配置下,年轻代使用并发收集,而年老代仍旧使用串行收集
-XX:ParallelGCThreads

配置并行收集器的线程数,即同时多少个线程一起进行垃圾回收。

<另外建议与处理器的数保持一致>

-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20-XX:ParallelGCThreads=20表示配置并行收集器的线程数为20个。
-XX:+UseParallelOldGC配置年老代垃圾收集方式为并行收集。-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC-XX:+UseParallelOldGC表示对年老代进行并行收集。
-XX:MaxGCPauseMillis设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100-XX:MaxGCPauseMillis=100设置每次年轻代垃圾回收的最长时间为100 ms
-XX:+UseAdaptiveSizePolicy设置此选项后,并行收集器自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低响应时该间或者收集频率,该值建议使用并行收集器时,并且一直打开-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100 -XX:+UseAdaptiveSizePolicy

响应时间优先GC参数

配置说明说明例子
-XX:+UseConcMarkSweepGC设置年老代为并发收集-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
-XX:+UseParNewGC

设置年轻代为并行收集。

可与CMS收集同时使用。JDK 5.0以上版本,JVM根据系统配置自行设置,无需再设置此值。

-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
-XX:CMSFullGCsBeforeCompaction由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行多少次GC以后对内存空间进行压缩、整理。-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection-XX:CMSFullGCsBeforeCompaction=5,表示运行GC5次后对内存空间进行压缩、整理
-XX:+UseCMSCompactAtFullCollection打开对年老代的压缩-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection

辅助GC的常用参数

配置参数说明
-XX:+PrintGC用于输出GC日志。
-XX:+PrintGCDetails用于输出GC日志详情。
-XX:+PrintGCTimeStamps

用于输出GC时间戳(JVM启动到当前日期的总时长的时间戳形式)。示例如下:

0.855: [GC (Allocation Failure) [PSYoungGen: 33280K->5118K(38400K)] 33280K->5663K(125952K), 0.0067629 secs] [Times: user=0.01 sys=0.01, real=0.00 secs]

-XX:+PrintGCDateStamps

用于输出GC时间戳(日期形式)。示例如下:

2022-01-27T16:22:20.885+0800: 0.299: [GC pause (G1 Evacuation Pause) (young), 0.0036685 secs]

-XX:+PrintHeapAtGC在进行GC前后打印出堆的信息。
-Xloggc:../logs/gc.log日志文件的输出路径。

相关文章:

  • 【make/Makefile】Linux下进度条的设计与实现
  • 2-高可用-负载均衡、反向代理
  • Apache Tomcat httpoxy 安全漏洞 CVE-2016-5388 已亲自复现
  • Axure中继器的使用实现表格的增删改查的自定义文件
  • LVS负载均衡器(DR模式)+nginx七层代理+tomcat多实例+php+mysql 实现负载均衡以及动静分离、数据库的调用!!!
  • Rabbitmq 死信取消超时订单
  • olap/clickhouse-编译器优化与向量化
  • 数据结构学习 Leetcode300最长递增子序列
  • YOLOv8改进 | 2023注意力篇 | HAttention(HAT)超分辨率重建助力小目标检测 (全网首发)
  • XXE漏洞 [NCTF2019]Fake XML cookbook1
  • SQL Server 安装教程
  • MySQL——表的增删查改
  • 软件设计模式:UML类图
  • 概率论复习
  • 竞赛保研 python的搜索引擎系统设计与实现
  • 基于YOLOv8的草莓病害检测,加入EMA注意力和GPFN提升病害检测能力
  • [Ray Tracing in One Weekend] 笔记
  • Golang(壹)
  • OpenHarmony开发环境快速搭建(无需命令行)
  • LeetCode 每日一题 Day 17 || 二分
  • 印度最新发声:对所有敌对行动均予以反击和回应,不会升级冲突
  • 巴基斯坦称对印精准打击造成设施损坏和人员伤亡
  • 巴基斯坦称成功拦截印度导弹,空军所有资产安全
  • 习近平会见斯洛伐克总理菲佐
  • 850亿元!2025年中央金融机构注资特别国债(一期)拟第一次续发行
  • 赵作海因病离世,妻子李素兰希望过平静生活