Programming/Java(Spring)2019. 7. 6. 19:59

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로 설정해주는게 영향을 주긴 한 듯..

Posted by 구차니