티스토리 뷰

728x90
SMALL

#!/bin/sh

# JVM Options : Server
export JAVA_OPTS="-server $JAVA_OPTS"


G1GC
export JAVA_OPTS="$JAVA_OPTS -XX:+DoEscapeAnalysis -XX:+UseG1GC"
export JAVA_OPTS="$JAVA_OPTS -Xms1024M -Xmx1024M -XX:CompressedClassSpaceSize=1024M  -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M"
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps"
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDateStamps"
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"
#export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCApplicationStoppedTime"
export JAVA_OPTS="$JAVA_OPTS -Xloggc:$JBOSS_LOG_DIR/gclog/${LOG_FILE_PREFIX}_gc_$DATE.log"
export JAVA_OPTS="$JAVA_OPTS -XX:+ExplicitGCInvokesConcurrent"
export JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
export JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=$JBOSS_LOG_DIR/heapdump"
export JAVA_OPTS="$JAVA_OPTS -XX:+UseCompressedOops"
export JAVA_OPTS="$JAVA_OPTS -XX:+UseCompressedClassPointers"
export JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC -XX:-UseAdaptiveSizePolicy -XX:CodeCacheMinimumFreeSpace=8M"
export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT -Dfile.encoding=UTF-8 -Dfile.client.encoding=UTF-8"

 

# CMS
export JAVA_OPTS="$JAVA_OPTS -Xms4g -Xmx4g -XX:NewSize=1536M -XX:MaxNewSize=1536M -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M -XX:SurvivorRatio=8 -XX:CodeCacheMinimumFreeSpace=8M"
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintHeapAtGC -XX:+PrintGCDetails  -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps"
export JAVA_OPTS="$JAVA_OPTS -Xloggc:$JBOSS_LOG_DIR/gclog/${LOG_FILE_PREFIX}_gc.log"
export JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80  -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseLargePagesInMetaspace"
export JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$JBOSS_LOG_DIR/heapdump"
export JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC -XX:-UseAdaptiveSizePolicy"
export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT -Dfile.encoding=UTF-8 -Dfile.client.encoding=UTF-8"

 

# ParallelGC
export JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m -Xss256k"
#export JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m -XX:MaxPermSize=256m -Xss256k"
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps"
export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"
export JAVA_OPTS="$JAVA_OPTS -Xloggc:$JBOSS_LOG_DIR/gclog/${LOG_FILE_PREFIX}_gc_$DATE.log"
export JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"
export JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelOldGC"
#export JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"
export JAVA_OPTS="$JAVA_OPTS -XX:+ExplicitGCInvokesConcurrent"
export JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
export JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=$JBOSS_LOG_DIR/heapdump"

728x90
LIST
댓글
  • 프로필사진 marco 혹시 해당 옵션들을 이렇게 설정하게된 의사결정 과정에 대해서 설명해주실 수 있을까요?
    2019.12.20 17:33
  • 프로필사진 와스프로 GodNR 아쉽지만 해당내용은 결정된사항이 아닙니다.
    memory라는게 아시겠지만 굉장히 민감하게 동작하는 튜닝 펙터 중 하나기에 사이트 마다 애플리케이션 마다 환경 마다 각기 다른 옵션을 적용해야합니다.
    본 글은 그 가이드라인이 될만한 파라미터들을 단순히 정리한 내용정도로 이해하셨으면 합니다.
    감사합니다.
    2019.12.20 18:11 신고
댓글쓰기 폼