jvm heap memory

728x90

jvm heap memory

  • java -XX:InitialRAMPercentage=60.0 -XX:MaxRAMPercentage=60.0 -jar myapp.jar
    • java heapsize 를 할당받은 메모리의 60% 로 설정
  • java -XX:+PrintFlagsFinal -version | grep HeapSize
    • 리눅스에서 자바 max 힙사이즈 크기 확인

자바 애플리케이션의 최대 힙 메모리 크기를 퍼센테이지로 가져갈 때 몇 퍼센트를 가져가는 것이 좋은지 여부는 애플리케이션의 특성에 따라 다릅니다. 일반적으로 애플리케이션이 사용하는 메모리 크기의 60~70%를 최대 힙 메모리 크기로 설정하는 것이 좋다.

 

이렇게 하면 애플리케이션이 충분한 메모리를 사용할 수 있으면서도 메모리 부족 오류가 발생할 가능성을 줄일 수 있다.

 

그러나 애플리케이션의 특성에 따라 최대 힙 메모리 크기를 더 높거나 낮게 설정해야 할 수도 있다.

 

예를 들어, 애플리케이션이 많은 양의 메모리를 사용하는 경우 최대 힙 메모리 크기를 더 높게 설정해야 한다.

반대로, 애플리케이션이 적은 양의 메모리를 사용하는 경우 최대 힙 메모리 크기를 더 낮게 설정해야 한다.

 

최대 힙 메모리 크기를 설정할 때는 애플리케이션의 성능 테스트를 통해 최적의 크기를 찾는 것이 좋다.

자바 힙메모리 사이즈란?

자바 힙 메모리 크기는 자바 가상 머신이 할당할 수 있는 최대 메모리 크기를 결정한다.

 

힙 메모리는 자바 객체를 저장하는 데 사용되므로, 힙 메모리 크기가 클수록 더 많은 자바 객체를 저장할 수 있다.

그러나 힙 메모리 크기가 너무 크면 메모리 부족 오류가 발생할 수 있다. 따라서 애플리케이션의 특성에 맞는 적절한 힙 메모리 크기를 설정하는 것이 중요하다.

 

일반적으로 애플리케이션이 사용하는 메모리 크기의 60~70%를 최대 힙 메모리 크기로 설정하는 것이 좋다.

이렇게 하면 애플리케이션이 충분한 메모리를 사용할 수 있으면서도 메모리 부족 오류가 발생할 가능성을 줄일 수 있다.

 

다음은 힙 메모리 크기가 애플리케이션에 미치는 영향에 대한 몇 가지 예시다.

  • 힙 메모리 크기가 너무 작으면 애플리케이션이 충분한 메모리를 사용할 수 없어 성능이 저하될 수 있다.
  • 힙 메모리 크기가 너무 크면 메모리 부족 오류가 발생할 수 있다.
  • 힙 메모리 크기가 적절하면 애플리케이션이 충분한 메모리를 사용할 수 있어 성능이 향상될 수 있다.

GC가 발생하지 않았는데 Java 애플리케이션이 OOM이 발생했다면, 다음과 같은 원인이 있을 수 있다.

  • Max Heapsize가 너무 크다. Max Heapsize는 애플리케이션이 사용할 수 있는 최대 heap 크기를 지정한다. Max Heapsize가 너무 크면 애플리케이션이 너무 많은 메모리를 사용해서 OOM이 발생할 수 있다.
  • 애플리케이션이 메모리를 너무 많이 사용한다. 애플리케이션이 너무 많은 메모리를 사용하면 OOM이 발생할 수 있다. 애플리케이션이 메모리를 많이 사용하는지 확인하고, 메모리 사용량을 줄일 수 있는 방법을 찾아야 한다.
  • 애플리케이션에 메모리 누수가 있다. 애플리케이션에 메모리 누수가 있으면 OOM이 발생할 수 있다. 메모리 누수가 있는지 확인하고, 메모리 누수를 수정해야 한다.
  • 운영 체제의 메모리 제한이 있다. 운영 체제의 메모리 제한이 있으면 OOM이 발생할 수 있다. 운영 체제의 메모리 제한을 확인하고, 애플리케이션이 사용할 수 있는 메모리량을 늘려야 한다.
728x90