티스토리 뷰

BackEnd/JAVA

JAVA -Xms -Xmx 메모리 설정

Fathory 2020. 2. 13. 08:19
반응형

Jar 파일을 실행하는데, 최소 할당 메모리와 최대 할당 메모리를 지정하는 옵션이 있다.

 

최대 메모리를 지정하는 것은 이해가 되는데, 최소 메모리는 왜 지정하는 건가 해서 찾아봤다.

 

우선, 메모리 설정은 JAVA Heap 메모리를 설정하는 것이다. 

 

Heap 메모리는 C언어의 malloc, calloc, realloc과 유사한 것으로, 메모리 동적 할당을 의미한다.

 


 

  • -Xms이 설정은 Java 힙의 초기 크기를 제어합니다. 이 매개변수를 적절하게 조정하면 가비지 콜렉션의 오버헤드를 줄여서 서버 응답 시간 및 처리량을 개선합니다. 일부 응용프로그램의 경우, 이 옵션에 대한 기본 설정이 너무 낮아서 사소한 가비지 콜렉션의 수가 높아질 수 있습니다.
    기본값: 50MB. 이 기본값은 31비트 및 64비트 구성 모두에 적용됩니다.
    권장: 워크로드에 특정하지만, 기본값보다 높습니다.
    사용법: -Xms256m은 초기 힙 크기를 256MB로 설정합니다.
  • -Xmx이 설정은 Java 힙의 최대 크기를 제어합니다. 이 매개변수를 늘리면 Application Server에 사용 가능한 메모리가 늘어나고 가비지 콜렉션 빈도가 줄어듭니다. 이 설정을 늘리면 서버 응답 시간 및 처리량이 개선될 수 있습니다. 그러나 이 설정을 늘리면 가비지 콜렉션이 발생할 때 해당 콜렉션의 지속 기간이 늘어납니다. 이 설정은 Application Server 인스턴스에 대해 사용 가능한 시스템 메모리 이상으로 증가해서는 안됩니다. 설정을 사용 가능한 시스템 메모리 이상으로 늘리면 시스템 페이징 및 상당한 성능 감소를 유발할 수 있습니다.
    기본값: 256MB. 이 기본값은 31비트 및 64비트 구성 모두에 적용됩니다.
    권장: 워크로드에 특정하지만, 사용 가능한 실제 메모리의 양에 따라서 기본값보다 높습니다.
    사용법: -Xmx512m은 최대 힙 크기를 512MB로 설정합니다.



출처: https://202psj.tistory.com/908 [알레폰드의 IT 이모저모]

 

 


 

위 내용을 참고하였다.

 

자바를 제대로 공부하지 않았기에 발생한 오류였다.

동적 메모리의 최대/최초 메모리를 할당하는 옵션이었다.(최소가 아니라 최초)

 

 

-Xms 옵션은 jar 파일 실행 초기에 할당하는 동적 메모리이다. 초기에 로드하는 값이 많은 경우에 최소 메모리를 크게 잡아주면 될 것 같다.

 

-Xmx 옵션은 jar 파일이 가질 수 있는 최대 동적 메모리이다. 처리하는 쓰레드가 많거나, 메모리에 들고있어야하는 데이터가 많은 경우에 크게 잡아주면 될 것 같다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday