Technical Note/JAVA
옵션의 종류
  • -X로 시작하는 옵션 : 비표준. JDK의 버전에 따라, 예고없이 변경될 수 있다.
  • -XX로 시작하는 옵션 : 안정화되지 않음(not stable). 일반적인 사용에 권장되지 않음. 이 옵션 또한 예고없이 변경될 수 있다.
    • Boolean옵션은 -XX:+<option> 으로 켜고, -XX:-<option>으로 끈다.
    • Numeric(숫자)옵션은 -XX:<option>=<number>로 설정한다. 사용되는 숫자에 m | M (mega), k | K (kilo), g | G (giga)를 포함할 수 있다.
    • String(문자)옵션은 -XX:<option>=<string>으로 설정한다. 보통 file, path, command list를 명시하기 위해 사용한다.
      optionsdescription
      -verbose:gcGC이벤트가 발생할때 마다 메시지를 reporting한다.
      -XmsN초기 memory allocation pool의 초기사이즈
      -XmxNmemory allocation pool의 최대 사이즈
      -XssNThread stack의 사이즈를 설정
      -XX:NewSize=2.125mnew generation영역의 기본크기
      -XX:MaxNewSize=sizeNew Generation(Eden + S0 + S1) 의 최대 크기를 설정한다.
      -XX:PermSizePermanent Generation의 기본사이즈
      -XX:MaxPermSize=64mPermanent Generation의 최대사이즈
      -XX:NewRatio=2old/new generation영역 크기의 비율
      -XX:SurvivorRatio=8eden/survivor영역 크기의 비율
      -XX:ThreadStackSize=512Thread Stack의 크기
      -XX:-PrintGCGC가 일어날때 message를 출력한다.
      -XX:-PrintGCDetailsGC에 관해 더 자세한 메시지를 출력한다.
      -XX:-PrintGCTimeStampsGC의 timestamp를 출력한다.
JVM Tuning Example

JAVA_OPTS=-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=4 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

HeapSize1024M
New Generation512M
Eden348M
Survivor187M
Survivor287M
Old Generation256M
Permanent256M