java -server
-Xmx2g -Xms2g
-Xmn700m
-XX:PermSize=256m
-Xss256k
-XX:SurvivorRatio=8
-XX:MaxTenuringThreshold=7
-XX:GCTimeRatio=19
-XX:+UseParNewGC
-XX:+DisableExplicitGC
-XX:+UseConcMarkSweepGC
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:CMSFullGCsBeforeCompaction=0
-XX:+CMSClassUnloadingEnabled
-XX:-CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=70
-XX:SoftRefLRUPolicyMSPerMB=0
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-XX:-HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/user-center-service/ -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -Dlog.env=produce -Djetty.logs=/data/logs/user-center-service -Djetty.home=/usr/local/env/jetty9 -Djetty.base=/home/user-center-service/deploy/jettybase -Djava.io.tmpdir=/home/user-center-service/tmp -jar /usr/local/env/jetty9/start.jar jetty.state=/home/user-center-service/deploy/jettybase/jetty.state jetty-logging.xml jetty-started.xm
jdk8后,增加元数据区的设定
-XX:MetaspaceSize=XXXM -XX:MaxMetaspaceSize=XXXM
G1回收器
Garbage-First 是在JDK7之后提出的,长远目标是取代CMS,属于分代垃圾回收器,区分新生代和老年代,依然有eden、from、to区,并不要求这些区域的内存空间连续,使用的算法是分区算法。
并行性:回收期间多线程同时工作。
并发性:与应用程序执行不会发生阻塞。
分代GC:依然是一个分代GC垃圾回收器,但是它兼顾新生代和老年代一起工作,之前的垃圾回收器只工作在新生代或者老年代。
空间整理:不会像CMS在若干次GC后需要进行碎片整理,G1采用有效复制对象的方式减少空间碎片。
可预见性:由于分区的原因,G1可以只选取部分区域进行回收,缩小了回收的范围,提升了性能。
-XX:+UseG1GC 开启
-XX:MaxGCPauseMillis 最大停顿时间
-XX:ParallelGCThreads 线程数