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一直自旋java

相關文章
相關標籤/搜索