[JAVA] Java7,8 JVM 구조, JVM 옵션 설정

반응형
 Java 7, 8 JVM 구조

JVM 8 Heap Memory 구조

- java8 이전에는 Metaspace 영역이 아닌 Permanet 영역이 존재하였다. Permanent 영역은 Class정보나 Meta 정보, Static변수와 상수 정보들이 저장되는 공간으로 활용되었다. 하지만 Java8 버전부터는 기존의 Permanent 영역이 Native 영역으로 이동하여 metaspace 영역으로 변경되었다. 

 

 

JVM Option 설정

EX> JEUS JVM옵션 설정

EX) Jeus JVM 옵션 설정

-Xmx3000m -XX:MaxMetaspaceSize=1024m
-verbose:gc -XX:+DisableExplicitGC
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC
-Xloggc:/WAS/JEUS/logs/DEV/gclog/dev_gc.log
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/WAS/JEUS/logs/DEV/dump/

-Xms [초기 JVM이 생성될 때 설정한 Heap 메모리값]

-Xmx [JVM이 최대 사용 가능한 Heap 메모리값]

  • Heap메모리는 WAS의 경우 통상 2G ~ 4G 정도가 설정되며, 독립 실행 배치는 125M~256M 정도 설정
  • 대량 데이터를 로드하여 분석하는 시스템의 경우 10G이상도 설정함

-XX:PermSize=64M

  • JDK 1.8부터 삭제

-XX:MetaspaceSize=256m

  • [Metaspace 영역 크기]

-verbose:gc -XX:+DisableExplicitGC
????


-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC
-Xloggc:/WAS/JEUS/logs/DEV/gclog/dev_gc.log

  • -XX:+PrintGC 나 혹은 별명인 -verbose:gc는 모든 young generation GC와 모든 풀 GC에 대해 라인으로 출력되는 단훈히 GC 로깅 모드를 활성화 한다. 
  • -XX:+PrintGCDetails를 사용하면 상세한 GC로깅 모드를 활성화 한다.
  • -XX:+PrintGCTimeStamps and -XX:+PrintGCDateStamps는 GC로그에 시간과 날짜 정보를 추가하는 기능이다. 

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/WAS/JEUS/logs/DEV_MUI/dump/

  • Heap Dump 생성

 

반응형