Print
카테고리: [ Java ]
조회수: 1421

IBM JVM의 주요 Parameter를 설명하는 문서이다.

옵션 기본값 설명
Xclasshc TRUE . 클래스로더가 변했을 때만 Class GC를 수행할지 여부
Xalwaysclassgc   . GC 수행 동안 항상 동적 Class 로드 해제를 수행
. Default는 -Xclassgc에 의해 정의
Xclassgc    . 동적인 Class 로드 해제를 사용 가능하게 함
Xcompactexplicitgc           . System.gc()가 호출될 때마다 압축을 가능하게 함
Xcompactgc    . 모든 GC에 대하여 압축을 가능하게 함
. 성능 감소를 감수해야 함
. 이 옵션으로 AF가 많이 줄어든다고 판단되면 dosed object에 의한 AF가 많다라고 간주할 수도 있음
Xgcpolicy<option> optthruput . GC의 종류를 결정
  1) optthruput : Throughput Collector. 처리량이 중요시 사용. 디폴트임
  2) optavgpause: Response Time Collector. 응답시간 중요시 사용, Concurrent Mark/Sweep 수행. 처리량은 다소 떨어짐
  3) gencon: Concurrent Generational Collector 사용. IBM JDK 1.5에서 추가. HotSpot의 CMS Collector와 거의 동일함
  4) subpool: Subpool Collector 사용. 16 CPU이상의 processor의 SMP system에서 실행, Heap에 Pool 형태로 Object 배치
Xgcthreads<value>   . GC Thead 수 지정
. Default는 CPU개수 - 1임
Xint   . JVM을 Interpreter로만 사용 (JIT로 사용 불가)
Xjit:<options> TRUE . JIT 컴파일 옵션 결정
Xk<value>   . K cluster (초기적재 class 영역)
. 단위 : 개수
. 통상적으로 로딩된 class 수의 10% 정도 추가 설정을 권고
  (Dibm.dg.trc.print=st_verify 옵션 사용시 보여지는 classes= 수를 기반으로 sizing)
Xloratio<value>   . 64k 이상의 large object의 전용 heap 영역
. 0.2 지정시 20%임
. loa 영역을 지정한 경우 Xmx 영역을 일정 비율 늘려주어야 함
. 1.4 이상에서 사용 가능
Xmaxf<value> 0.6 . GC 후 free 되어야 하는 Heap의 최대 %
. free 영역이 이 값을 초과하면 JVM은 Heap의 축소를 시도
Xminf<value> 0.3 . GC 후 free 되어야 하는 Heap의 최소 %
. free 영역이 이 값에 미달하면 JVM은 Heap의 확장을 시도
Xmso<value>   . OS Thread의 Stack 크기 지정
Xnoclassgc    . Class GC를 불가능하게 함
Xnocompactexplicitgc   . System.gc()에 의한 압축을 불가능하게 함
Xnocompactgc    . 모든 GC에 대하여 압축을 불가능하게 함
Xp<value>k,<value>k    . P cluster (운영시 적재되는 클래스 영역, 1차/2차)
. 단위 : KB
Xquickstart   . 최적화를 지연하여 시작 시간을 향상
Xss<value> 32bit: 256k
64bit: 512k
. 개별 Threa의 Stack Size를 지정
. 예를 들어 Thread Stack Size가 1M이고, Thread가 최대 100개 활성화된다면 최대 100M 사용
. 대부분의 경우 기본값을 사용하는 것이 좋음
. 많은 Thread를 사용하거나 Xss를 늘리면 Thread Stack에 의하여 OutOfMemoryError 발생 가능성 존재
. Xss를 줄이면 StackOverflowError 가능성 존재
XX:+DisableExplicitGC   . 명시적인 GC, 즉 System.gc() 를 금지함
. System.gc()는 일반적인 GC 작업보다 몇 배 이상의 비용이 소요됨
XX:+HeapDumpOnOutOfMemoryError   . OutOfMemoryError로 JVM 종료시 dump 생성
XX:HeapDumpPath   . HeapDump 저장 경로 지정
Xdisablejavadump  FALSE . 치명적인 error나 signal을 받으면 dump를 생성하는데 이를 비활성화함
. dump의 양이 너무 많거나 할 때 사용
Xtgc2   . JVM 1.3.1 에서 pinned object 현황을 standard out에 표시
Dibm.dg.trc.print=st_verify   . JVM 1.4.2 이상에서 pinned object 현황을 standard out에 표시
Xpartialcompactgc   . compact trigger가 자주 발생 (즉 기존의 full compaction을 incremental 하게 진행)
. -Xnopartialcompactgc로 비활성화시키며, full compaction 모드로 동작
Xloa   . 64k 이상의 large object 를 담는 loa(large object area)를 활성화
. 1.5 이상
Xloainitial 0.05 . loa의 초기 백분율로 0~0.95의 수치 지정
. 1.5 이상
Xloamaximum 0.5 . loa의 최대 백분율로 0~0.95의 수치 지정
. 1.5 이상