반응형
[Java] Heap Size 설정
Java Heap 설정의 일반적인 오류
단위 누락
- 용량 Size의 구분(m, g, M, G)이 없는 경우 byte로 인식하여 오류 발생, 명확하게 단위를 붙여서 설정하며, 단위의 대/소문자는 구분하지 않음
$ java -Xmx128 Hello
Error occurred during initialization of VM
Too small initial heap
$ java -Xmx128m Hello
Hello
옵션 설정 표기 오류
- -X 옵션의 경우 비표준 옵션이며 Key=Value 설정이 아님
-Xmx128m
로 붙여서 설정
$ java -Xmx 128m Hello
Invalid maximum heap size: -Xmx
Error: Could not create the Java Virtual Machine.
$ java -Xmx=128m Hello
Invalid maximum heap size: -Xmx
Error: Could not create the Java Virtual Machine.
$ java -x # 도움말 참고
정수 표기 오류
- 설정값은 정수로 표기
$ java -Xms0.5g -Xmx68m Hello
Invalid initial heap size: -Xms0.5g
Error: Could not create the Java Virtual Machine.
크기 설정 오류
- Xms(최소 Heap Size)를 Xmx(최대 Heap size) 보다 클 경우 오류 발생, 최근에는 xms만 설정한 경우 xmx가 xms보다 작을 경우 동일하게 설정됨
Xmx와 Xms는 동일한 크기로 구성하는 것이 좋음, 크기 확장에 따른 부하의 최소화
$ java -Xms128m Hello
Error occurred during initialization of VM
Initial heap size set to a larger value than the maximum heap size
$ java -Xms256m -Xmx128m Hello
Error occurred during initialization of VM
Initial heap size set to a larger value than the maximum heap size
heap 크기가 실제 컴퓨터의 메모리보다 큼
- 실제 물리적 메모리보다 설정 값이 큰 경우
$ java -Xms16g Hello
Error occurred during initialization of VM
Could not reserve enough space for object heap
Tomcat Heap 설정 CATALINA_OPTS, JAVA_OPTS
Tomcat의 heap 설정 방법은 CATALINA_OPTS, JAVA_OPTS에 설정할 수 있습니다.
CATALINA_OPTS의 경우 톰켓에서만 유용한 변수인 반면, JAVA_OPTS의 경우 다른 JAVA 애플리케이션과 공유되어 영향을 미칠 수 있으므로 CATALINA_OPTS 설정이 더 유용
os | 설정방법 |
---|---|
WINDOW | set CATALINA_OPTS="-Xms512m -Xmx512m" |
bash/ksh | export CATALINA_OPTS="-Xms512m -Xmx512m" |
tcsh/csh | setenv CATALINA_OPTS="-Xms512m -Xmx512m" |
참고
반응형
'FullStack > 21. Java' 카테고리의 다른 글
[Java] 프로세스 경과 시간 측정하기 (0) | 2021.01.14 |
---|---|
[JAVA] HttpClient를 통한 JOSN 전송 및 JSP로 데이터 수신 (0) | 2020.12.17 |
[POI] java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setSaveCDataLengthThreshold (0) | 2020.11.04 |
[JAVA] Thread Dump 만들기 (0) | 2020.08.20 |
MyBatis에서 Connection 가져오기 (0) | 2020.07.27 |