[완료] JavaVM Garbage Collector 옵션 설정
글쓴이: hexascii / 작성시간: 화, 2008/06/10 - 6:09오전
우선, 읽어주셔서 감사합니다.
흠... 조금 궁금한게 있어서 글 씁니다.
JVM에서 VM argument로 정해줄 수 있는것 중에,
Garbage Collector(이하 GC)의 Heap size를 정해줄 수 있는 옵션이 있습니다.
-Xms?m -Xmx?m 라는 옵션인데요.
-verbosegc 라는 옵션으로 자신의 Application에서 사용되는 GC의 Heap용량을 알아보고
위의 옵션으로 정해주면 JVM의 튜닝이 가능합니다.
여기서 질문이 있는데요, Heap사이즈라는 것은 일반적으로 4G (32bit일 경우) Addressing에서
사용되는 Heap사이즈를 얘기하는 것이 아닌가요?
제가 알기론 그렇게 알고 있는데,
Windows XP의 경우, 상주하고 있는 프로그램이 많을수록 -Xmx 사이즈에 제한이 생깁니다.
(예로, -Xms900m -Xmx1400m로 실행가능하던 것이 Service 몇개와 시작프로그램 몇개를 더 설치
한 이후로, -Xmx700m까지 밖에 설정이 안됩니다.)
현재 제 노트북에 설치된 메모리는 4GB입니다. 물론, 32bit라서 OS 에서 모두 인식하지는 않습니다.)
이 -Xmx 옵션 (GC Heap 최대값)이 다른 프로그램의 실행과 무관해야 정상이 아닌가 합니다.
아니면, JVM의 GC Architecture에 제가 모르는 부분이 있는 것 같아서요.
혹, 알고 계시는 분들 설명 부탁드립니다.
글 읽어 주셔서 감사합니다.
Forums:
윈도우즈라서 잘은 모르겠지만
32bit에서 윈도우 커널용 2기가가 맵핑되기 때문에
어플리케이션이 사용할 수 있는 메모리 영역이 2기가라고 하는 것 같네요.
그리구 그 영역 안에 로드된 dll들이 맵핑되고 버퍼들과 스텍들이
차지하기 때문에 힙으로 사용할 수 있는
연속된 메모리 공간은 2기가에 훨씬 못 미치는 값이 되는 것 같군요.
흠.... 그렇게
흠.... 그렇게 되는군요.
결론은, 그냥 리눅스에서 돌려야된다는 거군요.
답변 감사합니다.
댓글 달기