본문 바로가기
IT

JEUS의 heap size 설정

by 엘리후 2021. 6. 25.

JEUS의 heap size 설정
 
jvm의 heap 메모리 영역은 아래 그림을 통해 이해할 수 있다.

     eden
   From
    to
                                             old
NEW (default 16M)
Minor collection 대상
OLD (default 48M)
Major collection 대상

 
- eden : 최초 객체 생성되는 영역
- Survivor Space (From, to) : eden 에서 살아남은 객체들이 복사됨
- old : Survivor space에서 tenure age 를 넘긴 객체들이 복사됨
- permanent space: 클래스, 메소드 객체 등의 jvm 자체의 reflective data 저장.
 
heap 메모리의 설정은 해당하는 애플리케이션이 필요로 하는 메모리 정도와 애플리케이션의 특성 (객체 생성 및 삭제 등의 빈도 및 주기)등을 충분히 고려해서 설정하여야 한다. 너무 작은 값으로 세팅되었을 경우 “Out Of Memory” Error 가 발생하게 되고, 너무 큰 값으로 세팅되었을 경우에는 Full Garbage collection 시 성능 저하를 유발하는 요인이 될 수 있다.
 
다음은 jvm에서 heap 메모리 관련 설정 옵션들이다.

-Xms, -Xmx
최소, 최대 total Heap Memory 설정
-Xmn
최대 New Size 설정
-XX:NewRatio
전체 heap에서 New가 차지하는 비율
-XX:NewSize
초기 New 사이즈
-XX:PermSize -XX:MaxPermSize
초기 perm size, 최대 perm 사이즈
-XX:+DisableExplicitGC
System.gc() 를 무시
-XX:+ForceMmapReserved
TLB(Translation lookaside buffer) 사이즈 변경. Hp 에서는 chatr 를 사용하여 default 4m 에서 64m로 변경
-Xoptgc
복사시 사이즈 체크하지 않고 copy

위 설정은 sun jdk (1.4.1_XX)기준 옵션들이다. os에 따라 위 옵션들이 다르게 설정될 수 있으므로 위 설정 적용 시 주의해야 한다. 정확한 옵션은 각 OS 웹페이지의 jdk 레퍼런스 사이트를 참조하기 바란다.
 
JEUS는 jeus manager 프로세스와 container 프로세스로 구성되며 각 프로세스마다 heap memory를 설정하는 부분이 다르다.
jeus manager 의 경우에는 $JEUS_HOME/bin/jeus or jeusp 스크립트에서 설정할 수 있다.
ex)

...
java -server -Xmx256m -Xms256m  -Xbootclasspath/p:...

 
컨테이너의 heap 메모리 사이즈는 $JEUS_HOME/config/노드명/JEUSMain.xml의 <engine-container> 하위 element인 <command-option> 절에서 설정할 수 있다.
ex)

<jeus-system>
<node>
...
<engine-container>
...
    <command-option>-Xmx256m -Xms256m </command-option>
       ...
</jeus-system>

댓글