128GB 서버에서 돌리니 최대 힙 사이즈가 32기가가 잡히는것 같고
16GB 서버에서 확인해보니 InitialHeapSize 와 MaxHeapSize가 모두 1/4 크기이다.
# java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize' intx CompilerThreadStackSize = 0 {pd product} uintx ErgoHeapSizeLimit = 0 {product} uintx HeapSizePerGCThread = 87241520 {product} uintx InitialHeapSize := 2109734912 {product} uintx LargePageHeapSizeThreshold = 134217728 {product} uintx MaxHeapSize := 32210157568 {product} intx ThreadStackSize = 1024 {pd product} intx VMThreadStackSize = 1024 {pd product} openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_212-b04) OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode) |
[링크 : https://www.mkyong.com/java/find-out-your-java-heap-memory-size/]
spring boot로 실행하니(java -jar을 통해서 war 실행)
-Xms2971M -Xmx3971M -Xmn400M 으로 뜨는데 순서대로 (실수.. 카산드라 메모리였음.. -_ㅠ)
InitialHeapSize / MaxHeapSize / 마지막은 모르겠네?
아무튼.. 저 값이 기본인지 부터 확인해야 할 듯
1. -X Option (모든 VM에서 동작하지 않을 수 있는 비표준 option이며, 버젼별로 언급없이 변경되어질 수 있음) -Xms : 초기 Heap size 설정 -Xmx : 최대 Heap size 설정 -Xss : 각 Thread에 할당되는 Stack size 설정 -Xmn : New 영역을 위한 Heap size 설정
2. -XX Option (올바른 동작을 위해 특정한 시스템 요구사항들이 있으며, 시스템 설정 파라미터에 대한 접근 권한이 요구됨) -XX:PermSize : 초기 Permanent size 설정 -XX:MaxPermSize : 최대 Permanent size 설정 |
[링크 : https://webprogrammer.tistory.com/1430]
[링크 : https://spring.io/blog/2015/12/10/spring-boot-memory-performance]
+
일단은 -Xmx로 설정해주는게 영향을 주긴 한 듯..