Pink Spider/Spring 시작시 메모리 설정 차이

Created Wed, 26 Mar 2025 11:26:45 +0900 Modified Mon, 08 Dec 2025 08:41:47 +0900
614 Words 3 min

Java 애플리케이션을 실행할 때 -Xmx512m-XX:MaxRAM=512m는 모두 최대 메모리 사용량을 제한하는 옵션이지만, 동작 방식에 차이가 있습니다.

1. -Xmx512m

  • 힙(Heap) 메모리의 최대 크기를 512MB로 설정합니다.
  • 예제:
    java -Xmx512m -jar myapp.jar
    
  • 이 설정은 Java 힙 메모리만 제한하며, 전체 프로세스의 메모리 사용량을 제한하는 것은 아닙니다.
  • 즉, 힙 외의 메모리(메타스페이스, 스택, 네이티브 메모리 등)는 따로 제한되지 않습니다.

2. -XX:MaxRAM=512m

  • JVM이 사용할 수 있는 전체 메모리(힙 + 메타스페이스 + 기타 네이티브 메모리) 를 512MB로 제한합니다.
  • 예제:
    java -XX:MaxRAM=512m -jar myapp.jar
    
  • -XX:MaxRAM을 설정하면 -Xmx의 기본값이 달라질 수 있습니다.
    • 일반적으로 -Xmx의 기본값은 MaxRAM 값의 25~50% 정도로 설정됩니다(JVM 버전에 따라 다름).
  • 이 설정은 컨테이너 환경(Docker, Kubernetes) 에서 JVM이 사용할 수 있는 메모리를 제어하는 데 유용합니다.

차이점 요약

옵션 대상 설명
-Xmx512m 힙(Heap) 메모리 힙 메모리의 최대 크기만 제한
-XX:MaxRAM=512m 전체 JVM 메모리 힙 + 메타스페이스 + 네이티브 메모리를 포함한 JVM 전체 메모리 제한

함께 사용하면?

두 옵션을 함께 사용할 수도 있습니다.

java -Xmx512m -XX:MaxRAM=1g -jar myapp.jar
  • 힙 메모리는 최대 512MB까지 사용하고, JVM 전체 메모리는 1GB까지 사용 가능하도록 설정됩니다.

어떤 옵션을 사용할지 선택하는 기준:

  • 힙만 조정하고 싶다면-Xmx512m
  • JVM 전체 메모리를 제한하고 싶다면-XX:MaxRAM=512m
  • 컨테이너 환경에서 적절한 제한을 두고 싶다면-XX:MaxRAM을 활용하는 것이 좋음

어떤 환경에서 실행하는지에 따라 적절한 값을 설정하면 됩니다. 🚀