JVM Option - http://java.sun.com/docs/hotspot/VMOptions.html


Sun GC option (build 1.4.2_18-b06 에서 Test)

 -Xms64m                     : 최소 heap size
 -Xmx256m                    : 최대 heap size
 -XX:PermSize=64m        : 최소 perm size
 -XX:MaxPermSize=64m  : 최대 perm size
 
heap dump option

    -XX:+HeapDumpOnOutOfMemoryError : OOM시 HeapDumpPath로 dump file 생성

 EX)
  java.lang.OutOfMemoryError: Java heap space
  Dumping heap to /home/java/Test/heap/java_pid18244.hprof ...
  Heap dump file created [168141330 bytes in 36.717 secs]
  Exception in thread "main" java.lang.OutOfMemoryError

  drwxrwxr-x 2 java java 4.0K  1월 24 00:02 .
  drwxrwxr-x 3 java java 4.0K  1월 24 00:01 ..
  -rw------- 1 java java 161M  1월 24 00:03 java_pid18244.hprof

    -XX:HeapDumpPath=/home/java/javaP1.hprof : kill -3 으로 남길경우 path 안먹힘. 대신 실제 OOM 발생시 먹힘.
    -XX:+HeapDumpOnCtrlBreak     : kill -3시 heap dump file 생성 및 thread dump 화면 출력(java_pid18176.hprof.1232737116504)


 Heap Size Parameters (기본값)
    -XX:MinHeapFreeRatio=40
    -XX:MaxHeapFreeRatio=70
    -Xms3670k
    -Xmx64m

Young Generation
    -XX:NewRatio=3 - young and tenured generation is 1:3
    -XX:NewSize10m
    -XX:MaxNewSize20m
    -XX:SurvivorRatio=6 - "eden:s1:s2 = 6:1:1" 그러므로 "s1:young영역 = 1:8"
    -XX:+PrintTenuringDistribution - tenured 영역으로 카피되기 전까지의 new 영역에서의 threshold와 object age를 보여준다.
    기본값     :
        -XX:NewRatio=2 (client JVM: 8)
        -XX:NewSize 2228k
        -XX:MaxNewSize unlimited
        -XX:SurvivorRatio=32

New Generation 메모리 할당 공식
   Eden = NewSize - ((NewSize/(SurvivorRatio + 2)) * 2)
   From space = (NewSize - Eden)/2
   To space = (NewSize - Eden)/2

 Old Generation 메모리 할당 공식
   Old = Xmx - MaxNewSize
   

 

Sun heap dump 분석툴 :
http://www.eclipse.org/mat/
jhat




???
- thread dump를 file로 남기는 방법이 있는가?

'Java' 카테고리의 다른 글

Java에서 외부 프로그램 실행  (0) 2009.08.26
SimpleDateFormat -> FastDateFormat  (1) 2009.06.29
용어 설명  (0) 2009.02.23
jconsole test - (sun jdk 1.5)  (0) 2009.02.23
JVM 기타  (0) 2009.01.30
Sun JVM Monitoring  (0) 2009.01.30
JVM spec  (0) 2009.01.30
SUN JDK 1.4.2, 1.5 GC Option  (0) 2009.01.30