programing

스프링 부트 기본 메모리 설정은 무엇입니까?

firstcheck 2023. 6. 22. 23:44
반응형

스프링 부트 기본 메모리 설정은 무엇입니까?

예를 들어 정의 없이 IDE에서 단순 봄 부팅 앱을 실행/디버깅하는 경우 초기 힙 크기, 최대 힙 크기 및 스택 크기(-Xms, -Xmx, -Xss)가 설정됩니까?

기본적으로 Spring Boot 앱은 JVM 기본 메모리 설정을 사용합니다.

기본 힙 크기

물리적 메모리 크기가 최대 192MB인 경우 기본 최대 힙 크기는 물리적 메모리의 절반입니다.

물리적 메모리 크기가 192MB 이상인 경우 기본 최대 힙 크기는 물리적 메모리의 4분의 1입니다.

예를 들어 시스템에 128MB의 물리적 메모리가 있는 경우 최대 힙 크기는 64MB이며 물리적 메모리가 1GB 이상이면 최대 힙 크기는 256MB가 됩니다.

프로그램에서 필요한 만큼의 개체를 만들지 않는 한 JVM에서 최대 힙 크기를 실제로 사용하지 않습니다.JVM 초기화 중에는 초기 힙 크기라고 하는 훨씬 적은 양이 할당됩니다.이 양은 최소 8MB이며 물리적 메모리의 64분의 1이며 최대 1GB의 물리적 메모리 크기입니다.

젊은 세대에 할당된 최대 공간은 전체 힙 크기의 3분의 1입니다.

다음 명령을 사용하여 시스템별 기본값을 확인할 수 있습니다.

Linux:

java -XX:+PrintFlags최종 버전 | grep 힙 크기

Windows:

java -XX:+PrintFlagsFinal -version | findstr 힙 크기

참조: https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size

기본 스레드 스택 크기

기본 스레드 스택 크기는 JVM, OS 및 환경 변수에 따라 달라집니다.

플랫폼의 기본 스레드 스택 크기를 확인하려면 다음을 사용합니다.

Linux의 경우:

java -XX:+PrintFlags최종 버전 | grep ThreadStackSize

Windows의 경우:

java -XX:+PrintFlagsFinal -version | findstr ThreadStackSize

Java 시작 중에 "Xmx" 옵션이 제공되지 않는 경우 일반적으로 전체 물리적 메모리의 25%입니다.

유닉스/리눅스 시스템에서 다음을 수행할 수 있습니다.

java -XX:+PrintFlagsFinal -version | grep HeapSize

Windows에서 다음 명령을 사용하여 기본값을 확인합니다.

java -XX:+PrintFlagsFinal -version | findstr HeapSize

MaxHeapSize(-Xmx의 경우) 및 InitialHeapSize(-Xms의 경우) 옵션을 찾습니다.

결과 출력은 바이트 단위입니다.

언급URL : https://stackoverflow.com/questions/38564648/what-is-the-spring-boot-default-memory-settings

반응형