垃圾回收機制
https://yemengying.com/2016/05/13/jvm-GC/
http://www.cnblogs.com/jing99/p/6072059.html
CMS組合
-Xms3g -Xmx3g -XX:NewRatio=2 -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=2 -XX:+UseCompressedClassPointers -XX:MetaspaceSize=200m -XX:MaxMetaspaceSize=1024m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=1M -Xloggc:/var/app/log/front-server/gc.log -XX:+PrintTLAB -XX:+PrintCodeCache -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=85
G1組合
-Xms1024m -Xmx1024m -XX:SurvivorRatio=8 -XX:-UseCompressedClassPointers -XX:MetaspaceSize=150m -XX:MaxMetaspaceSize=1024m -XX:+UseG1GC -XX:+PrintGCDetails -Xloggc:/var/log/gc.log -XX:+PrintGCTimeStamps
UseParallelOldGC組合
-Xms1024m -Xmx1024m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+UseParallelOldGC -XX:-UseAdaptiveSizePolicy -XX:-UseCompressedClassPointers -XX:MetaspaceSize=150m -XX:MaxMetaspaceSize=1024m
參數(shù)說明
- -Xms:最小堆內(nèi)存空間
- -Xmx:最大堆內(nèi)存空間,最好和Xms一致,避免分配內(nèi)存空間浪費系統(tǒng)資源
- -XX:SurvivorRatio:單個幸存區(qū)和伊甸區(qū)(Eden)的比例 S0:Eden=1:8
- -XX:+UseParNewGC:新生代的多線程收集器
- -XX:+UseConcMarkSweepGC:老年代的短暫停頓并發(fā)收集器
- -XX:-UseCompressedClassPointers:指針壓縮
- -XX:MaxMetaspaceSize:最大元素據(jù)空間,默認為無限大,最好設(shè)置,避免無限大進程被OS KILL
GC組合

GC組圖
jmap轉(zhuǎn)儲dump文件
jmap -dump:file=DumpFileName.txt,format=b pid
jhat分析dump文件
jhat -J-Xmx1024m dump-file
OOM生成dump文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/heap/dump
查看JVM進程參數(shù)
jcmd pid VM.flags
jinfo -flags pid