你把回收机制发出来参考下
目前我使用这三个测试的,G1会偶发FULL GC,没有调试好,你可以测试下。
我目前使用第一个,使用正常,回收也正常
#吞吐量优先
JAVA_OPTS="-server -Xmx20g -Xms20g -Xmn6g -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:MaxTenuringThreshold=0 -XX:MaxGCPauseMillis=100 -XX:+UseAdaptiveSizePolicy -XX:MetaspaceSize=256m -XX:+UnlockExperimentalVMOptions -XX:+UseCodeCacheFlushing -XX:ParallelGCThreads=8 -XX:+UseFastUnorderedTimeStamps -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/home/fine/tomcat/logs/gc.log"
#使用G1回收机制
#JAVA_OPTS="-server -XX:+UseG1GC -Xms16g -Xmx16g -XX:MaxGCPauseMillis=150 -XX:InitiatingHeapOccupancyPercent=30 -XX:MaxTenuringThreshold=14 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -XX:G1ReservePercent=15 -XX:MaxMetaspaceSize=512M -XX:+PrintFlagsFinal -XX:+PrintReferenceGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/home/fine/tomcat/temp/gc.log -XX:+PrintAdaptiveSizePolicy -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:+PrintGCCause "
#并行量优化
#JAVA_OPTS="-server -Xmx20g -Xms20g -Xmn6g -Xss128k -XX:+UseConcMarkSweepGC -XX:+UserParNewGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection -XX:ParallelGCThreads=8 -XX:+UseAdaptiveSizePolicy -XX:+CMSClassUnloadingEnabled -XX:+PrintFlagsFinal -XX:+PrintReferenceGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintPromotionFailure -Xloggc:/home/fine/tomcat/logs/gc.log "