유용한 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 Algorithm | JVM 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
댓글
댓글 쓰기