jvm8 参数

####################CMS
ERROR_LOG_DIR="/data/www/wifiin/logs/jvm"
JAVA_OPTS=" $JAVA_OPTS -server "
JAVA_OPTS=" $JAVA_OPTS -Xmx4000M -Xms4000M -Xmn600M "
JAVA_OPTS=" $JAVA_OPTS -XX:LargePageSizeInBytes=128M -XX:MaxDirectMemorySize=512m "
JAVA_OPTS=" $JAVA_OPTS -XX:+UseConcMarkSweepGC " 
JAVA_OPTS=" $JAVA_OPTS -XX:+CMSScavengeBeforeRemark -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 "
JAVA_OPTS=" $JAVA_OPTS -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -XX:MaxTenuringThreshold=2 -XX:+CMSClassUnloadingEnabled -XX:-UseCounterDecay -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+ExplicitGCInvokesConcurrent -XX:SoftRefLRUPolicyMSPerMB=0 -XX:-OmitStackTraceInFastThrow -XX:-UseBiasedLocking -XX:+UseCodeCacheFlushing -XX:+UseLargePages "
JAVA_OPTS=" $JAVA_OPTS -XX:ErrorFile=${ERROR_LOG_DIR}/hs_err_%p.log "
JAVA_OPTS=" $JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${ERROR_LOG_DIR} "
JAVA_OPTS=" $JAVA_OPTS -Djava.security.egd=file:/dev/urandom “
JAVA_OPTS=" $JAVA_OPTS -XX:+UseNUMA"
JAVA_OPTS=" $JAVA_OPTS -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "
JAVA_OPTS=" $JAVA_OPTS -XX:+PrintCommandLineFlags -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintGCApplicationStoppedTime -Xloggc:${ERROR_LOG_DIR}/gc.log “
JAVA_OPTS=" $JAVA_OPTS -XX:+UseGCLogfileRotation -XX:NumberOfGCLogfiles=2 -XX:GCLogfileSize=1024M "

JAVA_OPTS=“ $JAVA_OPTS -Djava.util.concurrent.ThreadJoinPool.common.parallelism=500

JAVA_OPTS=" $JAVA_OPTS -XX:+LogCommercialFeatures -XX:+UnlockCommercialFeatures -XX:+FlightRecorder "

#######################    G1
ERROR_LOG_DIR="/data/www/wifiin/logs/jvm"
JAVA_OPTS=" $JAVA_OPTS -server "
JAVA_OPTS=" $JAVA_OPTS -XX:+UseG1GC "
JAVA_OPTS=" $JAVA_OPTS -Xmx4000M -Xms4000M "
JAVA_OPTS=" $JAVA_OPTS -XX:LargePageSizeInBytes=128M -XX:MaxDirectMemorySize=512m "
JAVA_OPTS=" $JAVA_OPTS -XX:+UseStringDeduplication -XX:+AlwaysPreTouch  -XX:MaxTenuringThreshold=2 -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+ExplicitGCInvokesConcurrent -XX:-UseBiasedLocking -XX:+UseCodeCacheFlushing -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+UseLargePages -XX:-OmitStackTraceInFastThrow -XX:-UseCounterDecay "
JAVA_OPTS=" $JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${ERROR_LOG_DIR}  -XX:ErrorFile=${ERROR_LOG_DIR}/hs_err_%p.log -XX:+PrintCommandLineFlags "
JAVA_OPTS=" $JAVA_OPTS -Djava.security.egd=file:/dev/urandom “
JAVA_OPTS=" $JAVA_OPTS -XX:+UseNUMA"
JAVA_OPTS=" $JAVA_OPTS -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "
JAVA_OPTS=" $JAVA_OPTS -XX:+PrintCommandLineFlags -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintGCApplicationStoppedTime -Xloggc:${ERROR_LOG_DIR}/gc_%p.log “
JAVA_OPTS=" $JAVA_OPTS -XX:+UseGCLogfileRotation -XX:NumberOfGCLogfiles=2 -XX:GCLogfileSize=1024M "

JAVA_OPTS=“ $JAVA_OPTS -Djava.util.concurrent.ThreadJoinPool.common.parallelism=500

JAVA_OPTS=" $JAVA_OPTS -XX:+LogCommercialFeatures -XX:+UnlockCommercialFeatures -XX:+FlightRecorder "

TiredCompilation在jdk8默认开启
-XX:+AlwaysPreTouch jvm启动时将预分配的内存都初始化为零
-XX:MaxTenuringThreshold,为了尽快使不会回收的对象晋升到老年代,可将此值设置的小一些
-XX:CMSFullGCsBeforeCompaction默认是0
CMS默认新生代GC是ParNew,不必显式指定
-XX:+CMSClassUnloadingEnabled 如果不是频繁动态生成类关闭比较好
-XX:ErrorFile=${ERROR_LOG_DIR}/hs_err_%p.log  %p是进程号
-XX:HeapDumpPath 指定目录就行,jvm会为dump的文件自动命名,如果指定具体文件可能会因为文件已存在而不能Dump
-XX:ParallelGCThreads=N ParalleGC CMS G1的GC线程数
-Djava.util.concurrent.ThreadJoinPool.common.parallelism  默认是CPU数,它控制着并行stream的并行度,所有并行stream共享同一个ForkJoinPool对象
-XX:+ParallelRefProcEnabled  默认关闭,并行处理java.lang.Ref.*。但是jvm的一个bug,开启这个参数导致CMSRefProcTaskProxy一直自旋

猜你喜欢

转载自my.oschina.net/u/658658/blog/1612918