2011년 6월 13일 월요일

Java HotSpot VM Options

Java HotSpot VM Options
  • -X 옵션은 비표준옵션이다. “모든 VM에서 지원을 보장 하지 않는다” 뜻입니다. 향후 릴리즈에서는 언급없이 변결될수 있습니다.
  • -XX 옵션은 올바른 동작을 위해서는 특정한 시스템 요구사항이 필요하며 시스템 설정 파라미터에 접근할 권항ㄴ이 있어야 합니다. 임의의 사용자에 대해서는 비추천이면 이도 향후 릴리즈에서는 언급없이 변결될수 있습니다.
    -XX:+VerifyBeforeGC
    -XX:+VerifyAfterGC
    -XX:+VerifyTLE
    (J2SE 1.4 에서는 -XX:+VerifyTLAB )
    -XX:+VerifyBeforeScavenge
    -XX:+VerifyAfterScavenge
    Heap의 무결성 검사
    모두 debug시에만 사용가능
    -Xmaxjitcodesize
    최대 컴파일된 크기 지정
    예전에는 -Xmaxjitcodesize=32m,
    현재는 -Xmaxjitcodesize32m 사용
    XX:+UseConcMarkSweepGC
    동시 가비지 콜렉션을 수행한다.
    1.4.1 부터 이용가능
    -Xincgc
    Train GC 사용
    -Xnoincgc
    Train GC을 사용하지 않는다. 기본값
    -XX:MaxHeapFreeRation=<Maximum>
    힙 여유 퍼센트 기본 70
    -X:MinHeapFreeRation=<Minimum>
    힙 여유 퍼센트기본 40
    -Xint
    JIT 컴파일 없이 인터프리더만
    -XX:+UseBoundThreads
    사용자 레벨 Thread 바인드 솔라리스에서만 사용
    -Xmn<Size>
    young generation 크기를 설정한다.
    J2SE 1.4.0부터 이용가능하다.
    -XX:+UseParallelGC
    병렬 가비지 콜렉션 사용 J2SE 1.4.0부터
    -XX:+UseAltSigs
    Solaris 운영체제에서 VM은 디폴트로 SIGUSR1을 사용한다.
    이것은 SIGUSR1을 시그널 체인(signal-chain) 하는 애플리케이션 과 충돌하는 경우
    이 옵션은 SIGUSR1, SIGUSR2, 다른 시그널을 사용하도록 할 수 있다.
    J2SE 1.4.1부터 Solaris 운영환경에서 이옳?수 있다.
    -XX:+UseBoundThreads
    이 옵션들은 쓰레드들과 결합되어 생성되어지도록 모든 쓰레드들에게 강제한다.
    -XX:NewSize=<size>
    -XX:MaxNewSize=<size> 1.3에서
    -Xmn<size> 1.4에서
    young generation resizing 불가능하게.
    HotSpot에서 이와 같이 할때 단순하게 young generation의 사이즈를 상수로 설정한다.
    -verbose:gc
    gc 통계 수집의 형태를 여러가지로 변경
    -XX:MaxInlineSize=<size>
    인라인된 메소드안에서 바이트 코드 명령어들의 최대수
    -XX:FreqInlineSize=<size>
    인라인된 메소드에서 자주 실행되는 바이트 코드 명령어들의 최대수
    -XX:+PrintInlining
    디버그에서만 인라인된 메소드에 관하여 메시지를 출력한다.
    -XX:DontYieldALotInterval=<ms>
    디버기에서만 yield사이의 milliseconds 간격
    -XX:-AllowUserSignalHandlers
    솔라리스에서 어플리케이션이 signal handler을 설치 할때 거부하지 않는다.
    -XX:AltStackSize=16384
    솔라리스에서 Kbyte 단위로 시그럴 스택 사이즈를 대체한다.
    -XX:+MaxFDLimit
    솔라리스에서 파일 디스크립터의 수을 Max까지 이르게 한다.
    -XX:MaxHeapFreeRatio=70
    GC후 heap 여유공간이 줄어드는것을 피하기 위해 Maximum 퍼센트를 지정한다.
    -XX:MinHeapFreeRatio=40
    GC후 heap 여유공간의 확장을 피하기 위해 Minimum 퍼센트르르 지정한다.
    -XX:-UseBoundThreads
    솔라리스에서 커널 쓰레드를 사용자 쓰레드 레벨로 바인드 한다.
    -XX:-UseLWPSynchronization
    솔라리스에서 동기방식의 쓰레드 대신에 LWP기반을 사용하게 한다. 1.4.0 이상에서는 디폴트 설정이다.
    -XX:+UseThreadPriorities
    네이티브 쓰레드 우선순위 사용
    -XX:MaxPermSize=64m
    permSize의 크기 지정 GC 튜닝 참조
    -XX:-CITime
    1.4에서 JIT 컴파일러의 시간 소요
    -XX:-PrintTenuringDistribution
    보유 기간 정보를 출력한다.
    -XX:TargetSurvivorRatio=50
    Desired percentage of survivor space used after scavenge
    -XX:-DisableExplicitGC
    System.gc()을 호출하지 않고, 필요할때 JVM이 가비지 콜렉션을 수행한다.
    -XX:CompileThreshold=10000
    컴파일 또는 재컴파일 전에 메소드 호출/분기의 수 10,000 -server, 1,500 –client
    -XX:MaxNewSize=32m
    바이트로 새로 생성되는 최대 크기
    현재 MaxNewSize를 결정하기 위해서 사용되어지는 NewRatio로써
    1.3에서 32m sparc, 2.5m intel 이고 1.4서는 제안이 없다.
    -XX:NewRatio=2
    새로/이전의 generation 사이즈의 비율
    sparc -server: 2, sparc -client: 4 (1.3) 8 (1.3.1+), intel: 12
    -XX:NewSize=2228224
    새로운 generation의 기본 사이즈 바이트로 sparc 2.125M, intel: 640k
    -XX:ReservedCodeCacheSize=32m
    예약된 코드 캐시 크기 바이트로 - - maximum code cache size. Solaris 64-bit: 1024m
    -XX:SurvivorRatio=64
    Ratio of eden/survivor space size
    Solaris: 64, Solaris: 32 (on 1.3.1 and later), Linux/Windows: 8
    -XX:ThreadStackSize=512
    Thread Stack Size (in Kbytes) (0 means use default stack size)
    Sparc: 512, Solaris Intel: 256, Sparc 64bit: 1024 all others 0
    -XX:+UseTLE
    -XX:+UseTLAB J2SE 1.4 에서
    쓰레드 로컬 객체 할당 사용한다.
    Sparc -server: true, all others: false
    Xms256m
    초기 힙사이즈 256M로 지정
    -Xmx512m
    멕스 힙사이즈 512M로 지정

    • CG정보 출력 옵션 예

    -verbosegc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDetails

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...