为服务器编写的启动参数, 已更新G1GC和ShenandoahGC. 测试中, 不保证稳定
[这个MD的样式好难看啊]
## G1GC
如果下方的SGC参数占用的CPU太多, 可以尝试使用这个. 它基于Aikar的参数
- GC
 
- -XX:+UseG1GC 使用G1GC
 
- -XX:+ParallelRefProcEnabled 尽可能启用并行引用处理 缓存
 
- -XX:MaxGCPauseMillis=200 预期GC最大占用时间 毫秒
 
- -XX:G1MixedGCCountTarget=4 设置并发周期后需要执行多少次混合收集
 
- -XX:G1MixedGCLiveThresholdPercent=90 控制何时在新的GC集合中包含混合GC % [90%尽可能快地回收旧代中的垃圾]
 
- -XX:G1RSetUpdatingPauseTimePercent=5 如果减小这个值, G1会并发的做更多的更新RS的工作
 
- -XX:MaxTenuringThreshold=1 新生代经过多少次GC晋升为老年代中的最大阈值
- 内存
 
- -Xms16G -Xmx16G #堆栈大小
 
- -XX:+AlwaysPreTouch -XX:-ZUncommit 分配连续的内存并在启动时保留, 阻止jvm释放内存给系统
 
- -XX:+UseLargePages 启用大页面内存
 
- [LINUX] -XX: UseTransparentHugePages 透明大页面, 提高大堆的性能
 
- -XX:G1NewSizePercent=40 为新生代指定总体所需范围 %
 
- -XX:G1MaxNewSizePercent=50 新生代最大值 %
 
- -XX:G1HeapRegionSize=16M Region的大小?
 
- -XX:G1ReservePercent=15 老年代预留多少空间为新生代对象晋升 %
 
- -XX:G1HeapWastePercent=5 释放出的Region占整个堆空间多少时停止混合回收 %
 
- -XX:InitiatingHeapOccupancyPercent=20 启动并发GC周期的整个堆占用 %
 
- -XX:SurvivorRatio=32 设置Eden区的占比 %
 
- -XX:+PerfDisableSharedMem 将匿名内存用于性能计数器 [禁止写统计文件]
- 其他
 
- -XX:+UnlockExperimentalVMOptions 启用实验性选项
 
- -XX:+DisableExplicitGC 防止代码调用GC
 
- -Dusing.aikars.flags=https://mcflags.emc.gs
 
- -Daikars.new.flags=true
 
 
- [系统支持] -XX:+UseNUMA
 
- -XX:ReservedCodeCacheSize=512M 代码缓存大小
 
- -XX:MaxInlineSize=256 方法内联条件 小于此值进行内联
 
- -XX:+OmitStackTraceInFastThrow 省略异常栈信息从而快速抛出
 
- -XX:+UseBiasedLocking 开启偏向锁
 
 
- --add-modules=jdk.incubator.vector
- -server -Xms16G -Xmx16G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:MaxTenuringThreshold=1 -XX:+AlwaysPreTouch -XX:-ZUncommit -XX:+UseLargePages -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:InitiatingHeapOccupancyPercent=20 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:+DisableExplicitGC -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:ReservedCodeCacheSize=512M -XX:MaxInlineSize=256 -XX:+OmitStackTraceInFastThrow -XX:+UseBiasedLocking --add-modules=jdk.incubator.vector -jar
## [] 注意, SGC比G1GC更占用CPU
此参数将尽可能的减少GC次数以及降低GC时间, 但不保证CPU占用低
- GC
 
- -XX:+UseShenandoahGC 启用SGC
 
- [暂时禁用] -XX:ShenandoahGCMode=iu [可能影响CPU]
 
- -XX:GCTimeRatio=98 应用程序运行时间百分比[与GC] 给GC更多时间_减少GC次数
 
- -XX:ConcGCThreads=1 单线程GC, SGC的速度足够快
 
- -XX:+ParallelRefProcEnabled 尽可能启用并行引用处理 缓存
 
- -XX:+DisableExplicitGC 忽略代码中的 System.gc() 调用 防止插件调用GC
- 内存
 
- -Xms16G -Xmx16G #堆栈大小
 
- -XX:+AlwaysPreTouch -XX:-ZUncommit 分配连续的内存并在启动时保留, 阻止jvm释放内存给系统
 
- -XX:+UseLargePages 启用大页面内存
 
- -XX:LargePageSizeInBytes=1G 内存分页
 
- [LINUX] -XX: UseTransparentHugePages 透明大页面
 
- -XX:+PerfDisableSharedMem 将匿名内存用于性能计数器
- 其他
 
- [不使用] -XX:CICompilerCount=12 编译器线程数, 分层编译自动改为内核数
 
- [系统支持] -XX:+UseNUMA 若干CPU组成一个组, 组之间有点对点的通讯 [测试]
 
- -XX:ReservedCodeCacheSize=512M 代码缓存大小
 
- -XX:MaxInlineSize=256 方法内联条件 小于此值进行内联
 
- -XX:+OmitStackTraceInFastThrow 省略异常栈信息从而快速抛出
 
- -XX:+UseBiasedLocking 开启偏向锁
 
- --add-modules=jdk.incubator.vector
- 临时, 不要添加
 
- -XX:+CITime JVM关闭时得到各种编译的统计信息
 
- -XX:+UnlockExperimentalVMOptions 启用实验性选项
 
- -XX:+UnlockDiagnosticVMOptions 启用诊断选项
- -server -Xms16G -Xmx16G -XX:+UseShenandoahGC -XX:GCTimeRatio=98 -XX:ConcGCThreads=1 -XX:+ParallelRefProcEnabled -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:-ZUncommit -XX:+UseLargePages -XX:LargePageSizeInBytes=1G -XX:+PerfDisableSharedMem -XX:+UseNUMA -XX:ReservedCodeCacheSize=512M -XX:MaxInlineSize=256 -XX:+OmitStackTraceInFastThrow -XX:+UseBiasedLocking --add-modules=jdk.incubator.vector -jar
又是一篇科普贴
很好,收藏了,谢谢楼主
这个太久没更新了, 请看这里: https://ipacel.cc/Range/?p=%E5%B ... 3%E6%96%87%E6%A1%A3
复制代码
- -server -Xms16G -Xmx16G -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -XX:+DisableExplicitGC -XX:+UseNUMA -XX:ReservedCodeCacheSize=512M -XX:NonNMethodCodeHeapSize=16M -XX:NonProfiledCodeHeapSize=194M -XX:NmethodSweepActivity=1 -XX:+UseCriticalJavaThreadPriority -XX:MaxInlineSize=256 -XX:+SegmentedCodeCache -XX:-DontCompileHugeMethods -XX:+OmitStackTraceInFastThrow -XX:ThreadPriorityPolicy=1 -XX:+TrustFinalNonStaticFields -XX:+UseFastUnorderedTimeStamps -XX:+AllowParallelDefineClass -XX:UseAVX=3 -XX:+UseFMA -XX:+UseSSE42Intrinsics -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseVectorCmov -XX:+UseNewLongLShift -XX:+UseFastStosb -Dlog4j2.formatMsgNoLookups=true --add-modules=jdk.incubator.vector -jar
看不懂系列+1