유용한 JVM 옵션 정리

JVM에 기본적으로 사용하면 좋을 옵션을 정리해 보았다.

더 자세한 내용을 보고 싶으면 출처에서 확인 바랍니다.


1) Max Heap Size Setting

-Xmx2g

unit

  • g: giga byte
  • m: mega byte
  • k: kilo byte


2) Max Stack Size Setting

-Xss256k

  • 단위는 1번 참고
  • Default는 플랫폼마다 다름
  • 값이 작으면 StackOverflowError


3) Max Metaspace Size Setting

-XX:MaxMetaspaceSize=16m

  • 단위는 1번 참고
  • 기본값은 제한 없음.


4) G1 GC 사용하기

-XX:+UseG1GC

java 8까지는 기본 설정값이 Parallel GC이고 java 9은 G1GC이다.

사용할 수 있는 GC 옵션(JDK11+)은 아래와 같다.

GC AlgorithmJVM argument
Serial GC-XX:+UseSerialGC
Parallel GC-XX:+UseParallelGC
Concurrent Market & Sweep (CMS) GC-XX:+UseConcMarkSweepGC
G1 GC-XX:+UseG1GC
Shenandoah GC-XX:+UseShenandoahGC
Z GC-XX:+UseZGC
Epsilon GC-XX:+UseEpsilonGC


5) GC Logging

-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:{file-path}

  • JDK1 ~ JDK8까지 사용하던 방법

-Xlog:gc*:file={file-path}

  • JDK 9+에서 사용할 수 있음


6) Heap Dump on OutOfMemory

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heap-dump.hprop


7) Socket Connection & Read Timeout

-Dsun.net.client.defaultConnectionTimeout=2000

-Dsun.net.client.defaultReadTimeout=2000


8) Localization

-Duser.timeZone=Asia/Seoul


ex)

$> java -Xmx2g -Xss256k -XX:MaxMetaspaceSize=256m -XX:+UseG1GC -Xlog:gc:file=./gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heap-dump.hprop -Dsun.net.client.defaultConnectionTimeout=2000 -Dsun.net.client.defaultReadTimeout=2000 -Duser.timeZone=Asia/Seoul test/collections/MinMaxTest


출처: https://dzone.com/articles/7-jvm-arguments-of-highly-effective-applications-1



댓글

이 블로그의 인기 게시물

[Protocol] WIEGAND 통신

Orange for Oracle에서 한글 깨짐 해결책

[UI] GNB·LNB·SNB·FNB 용어 설명