본문 바로가기
FullStack/21. Java

[Java] Heap Size 설정

by nakanara 2020. 11. 12.
반응형

Java

[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"

참고

반응형