JAVA_MEM_OPTS=" -server -XX:+UseG1GC -Xmx2G -XX:MaxGCPauseMillis=10 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=15 -XX:G1MaxNewSizePercent=30 -XX:SurvivorRatio=6 -XX:InitiatingHeapOccupancyPercent=30 -XX:G1MixedGCLiveThresholdPercent=50 -XX:G1HeapWastePercent=5 -XX:+PrintGCDetails -Xloggc:gc/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=home/fore/heapdump.hprof "
- -XX:+UnlockExperimentalVMOptions 解锁实验参数
- -XX:InitiatingHeapOccupancyPercent=30 如果整个堆的使用率超过这个值,g1会触发一次并发周期 提前启动标记周期
- -XX:G1HeapWastePercent=5 设置您愿意浪费的堆百分比。如果可回收百分比小于堆废物百分比,Java HotSpot VM 不会启动混合垃圾回收周期。默认值是 10%
- XX:G1MixedGCLiveThresholdPercent=50 为混合垃圾回收周期中要包括的旧区域设置占用率阈值。默认占用率为 65%。这是一个实验性的标志。必须要加 -XX:+UnlockExperimentalVMOptions 默认为65%,意思是垃圾占内存分段比例要达到65%才会被回收。如果垃圾占比太低,意味着存活的对象占比高, 在复制的时候会花费更多的时间