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 이상 |