jvm Option 사용을 위해 기록하자.

오라클 jvm option list

Behavioral Options

Garbage First (G1) Garbage Collection Options

Performance Options

Debugging Options

현재 사용중인 tomcat 에 설정한 jvm option

export CATALINA_OPTS="-Djava.awt.headless=true -server -Xms2048m -Xmx2048m -Xmn1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=4 -XX:+PrintHeapAtGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_BASE/logs -Xloggc:$CATALINA_BASE/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -verbose:gc"
  • heap 영역 사이즈 지정
  • metaspace 영역 사이즈 지정(java8 이전엔 permGen)
  • UseConcMarkSweepGC 사용
  • UseParNewGC 사용
  • OOM 발생시 덤프 경로 지정
  • gc log 를 위해 경로 지정
  • 제한된 수와 사이즈의 gc로그를 위해 NumberOfGCLogFiles, GCLogFileSize 설정

일단은 oracle jvm 기준으로 옵션을 천천히 봐보자

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store