-XX:+AlwaysPreTouch 옵션은 Heap Size가 클 경우 JVM이 기동될 때 미리 Heap 공간을 0으로 채워 초기화 해 둔다. 이를 통해 부팅 속도는 느려지지만 실행 시 속도가 빨라지는 효과를 얻을 수 있다.
(https://kwonnam.pe.kr/wiki/java/options 참조)
============================================================================
WebLogic의 Heap memory를 Xms 1G, Xmx 2G로 설정한 이후 option 유무에 따른 memory 차이를 test 해봤다.
WebLogic 기동 전 memory는 다음과 같다.
option 없이 기동을 했을 경우의 memory
윗 JAVA option을 넣고 기동했을 때의 memory
============================================================================
위의 테스트 분석 결과 다음과 같은 결과를 알 수 있다.
Heap Size를 고정으로 지정한 이후 JVM을 기동시키게 되면, OS에서는 곧바로 위 memory size를 사용하지 않게 된다.
즉 가상 메모리에 할당을 하고, 실제 물리적 메모리는 일종의 예약을 하게 되는 것이다.
하지만 AlwaysPreTouch 옵션을 통해 미리 물리적 메모리에 올리게 되며, 이 때문에 free 영역이 옵션을 사용하지 않았을 때보다 더 적게 할당되어 있는 것이다.
'JAVA > JAVA' 카테고리의 다른 글
request.getHeader의 ip 얻기 (0) | 2022.06.02 |
---|---|
GC 종류 (0) | 2022.05.30 |
ClassLoader (0) | 2022.05.10 |
Thread dump (0) | 2022.03.25 |
Virtual Host (0) | 2022.03.15 |