jvm参数模板

-Xms4096M -Xmx4096M -Xmn3072M -Xss1M -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=10 -XX:PretenureSizeThreshold=2M -XX:CMSInitiatingOccupancyFaction=92 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSParallelInitialMarkEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:./gclog/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/app/oom

解释:

-Xms4096M  堆初始大小

-Xmx4096M  堆最大大小

-Xmn3072M  新生代大小

-Xss1M          线程栈大小

-XX:MetaspaceSize=256m  元空间初始大小

-XX:MaxMetaspaceSize=256m   元空间最大大小

-XX:SurvivorRatio=8  新生代Eden取Survivor区的比例

-XX:+UseParNewGC  新生代垃圾收集器

-XX:+UseConcMarkSweepGC   老年大垃圾收集器

-XX:MaxTenuringThreshold=10    设置的是年龄阈值,默认是15

-XX:PretenureSizeThreshold=2M  大对象的大小,默认值为0,也就是任何对象都先进入新生代;如果设置了这个值,超过这个值直接进入老年代。

-XX:CMSInitiatingOccupancyFaction=92   默认值92,是指设定CMS在对内存占用率达到92%的时候开始GC(因为CMS会有浮动垃圾,所以一般都较早启动GC)

-XX:+UseCMSCompactAtFullCollection   只是用设定的回收阈值(上面指定的92%),如果不指定,JVM仅在第一次使用设定值,后续则自动调整(不理解)

-XX:CMSFullGCsBeforeCompaction=0  CMS牢记收集器会产生内存碎片,这个参数指定多少次full GC,会压缩内存;默认值为0,就是每次full GC都会压缩内存

-XX:+CMSParallelInitialMarkEnabled  在GC的初始标记阶段,开启并发标记

-XX:+CMSScavengeBeforeRemark  

-XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:./gclog/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/app/oom

原文地址:https://www.cnblogs.com/rana4504/p/14658301.html