반응형
IBM JVM의 heap 영역에는 LOA(Large Object Area)라는 영역이 있다.
기본적으로 전체 Heap size의 5%를 차지하는데, AP의 특성상 비교적 큰 객체(5MB이상)의 생성이
빈번한 경우에는 이 영역을 늘려줄 필요가 있다.
-Xloratio0.3
위와 같이 옵션을 적용하면 Java Heap 메모리중 LOA영역을 30% 잡게 된다.
위 옵션적용에 따른 GC로그 형태 변화는 다음과 같다.
1) 일반적으로 Heap 메모리만 설정한 경우
위에서와 같이 전체 Java Heap 메모리와 free Heap 메모리만 나옵니다.
기본적으로 전체 Heap size의 5%를 차지하는데, AP의 특성상 비교적 큰 객체(5MB이상)의 생성이
빈번한 경우에는 이 영역을 늘려줄 필요가 있다.
-Xloratio0.3
위와 같이 옵션을 적용하면 Java Heap 메모리중 LOA영역을 30% 잡게 된다.
위 옵션적용에 따른 GC로그 형태 변화는 다음과 같다.
1) 일반적으로 Heap 메모리만 설정한 경우
위에서와 같이 전체 Java Heap 메모리와 free Heap 메모리만 나옵니다.
jeusic@dtotch1[TEST] /sw/jeusic> java -verbose:gc -Xms64m -Xmx64m a
[ JVMST080: verbosegc is enabled ]
[ JVMST082: -verbose:gc output will be written to stderr ]
<GC[0]: Expanded System Heap by 65536 bytes
<GC(1): GC cycle started Tue Jun 12 10:32:59 2007
<GC(1): freed 269696 bytes, 98% free (66059528/67041792), in 14 ms>
<GC(1): mark: 7 ms, sweep: 1 ms, compact: 6 ms>
<GC(1): refs: soft 0 (age >= 32), weak 0, final 1, phantom 0>
<GC(1): moved 4571 objects, 489408 bytes, reason=4>
[ JVMST080: verbosegc is enabled ]
[ JVMST082: -verbose:gc output will be written to stderr ]
<GC[0]: Expanded System Heap by 65536 bytes
<GC(1): GC cycle started Tue Jun 12 10:32:59 2007
<GC(1): freed 269696 bytes, 98% free (66059528/67041792), in 14 ms>
<GC(1): mark: 7 ms, sweep: 1 ms, compact: 6 ms>
<GC(1): refs: soft 0 (age >= 32), weak 0, final 1, phantom 0>
<GC(1): moved 4571 objects, 489408 bytes, reason=4>
2) -Xratio 옵션 적용한 경우
위에서와 같이 전체 Java Heap 메모리와 free Heap 메모리이외에 LOA영역이 별도로 나옵니다.
jeusic@dtotch1[TEST] /sw/jeusic> java -verbose:gc -Xms64m -Xmx64m -Xloratio0.2 a
[ JVMST080: verbosegc is enabled ]
[ JVMST082: -verbose:gc output will be written to stderr ]
<GC[0]: Expanded System Heap by 65536 bytes
<GC(1): GC cycle started Tue Jun 12 10:33:35 2007
<GC(1): heap layout: (52651168/53633432) (13408360/13408360) /0><== LOA 영역 별도 표시
<GC(1): freed 269696 bytes, 98% free (66059528/67041792), in 14 ms>
<GC(1): mark: 6 ms, sweep: 2 ms, compact: 6 ms>
<GC(1): refs: soft 0 (age >= 32), weak 0, final 1, phantom 0>
<GC(1): moved 4571 objects, 489408 bytes, reason=4>
Heap 메모리가 충분한대도 GC가 빈번하게 일어나고 있고,
[ JVMST080: verbosegc is enabled ]
[ JVMST082: -verbose:gc output will be written to stderr ]
<GC[0]: Expanded System Heap by 65536 bytes
<GC(1): GC cycle started Tue Jun 12 10:33:35 2007
<GC(1): heap layout: (52651168/53633432) (13408360/13408360) /0><== LOA 영역 별도 표시
<GC(1): freed 269696 bytes, 98% free (66059528/67041792), in 14 ms>
<GC(1): mark: 6 ms, sweep: 2 ms, compact: 6 ms>
<GC(1): refs: soft 0 (age >= 32), weak 0, final 1, phantom 0>
<GC(1): moved 4571 objects, 489408 bytes, reason=4>
Heap 메모리가 충분한대도 GC가 빈번하게 일어나고 있고,
또한 비교적 큰 객체(5MB정도)를 생성할때 빈번하게 Allocation Failure 가 일어나는 경우에
-Xratio 옵션을 적용하면 문제를 해결 할 수 있다.
반응형
'OS > AIX' 카테고리의 다른 글
AIX VNC 설정하기 (2) | 2012.07.26 |
---|---|
AIX 칩입 확인 해보자 ! (0) | 2011.03.23 |
날짜 관련 얻기 (0) | 2011.03.02 |
AIX 5.3 OPENSSH INSTALL (0) | 2011.02.16 |
bff 파일 설치 (AIX) (0) | 2010.12.08 |