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 파일이 가질 수 있는 최대 동적 메모리이다. 처리하는 쓰레드가 많거나, 메모리에 들고있어야하는 데이터가 많은 경우에 크게 잡아주면 될 것 같다.
반응형
'BackEnd > JAVA' 카테고리의 다른 글
IntelliJ manifest.mf already exists in vfs 해결 (0) | 2020.01.31 |
---|---|
IntelliJ source Synchronizer 설정 (0) | 2020.01.28 |
No appenders could be found for logger(log4j) 에러 해결(Eclipse) (0) | 2020.01.13 |
IntelliJ로 Excutable jar 만들기 (0) | 2020.01.13 |
리눅스 환경에서 실행할 때 args[]를 읽지 못하는 문제 (0) | 2019.12.23 |