emotional developer/detect-server

k8s JVM memory Config

성게군. 2024. 6. 19. 16:41
반응형

개요

  • Pod total memory 대비 JVM memory 설정값 측정

Pod total memory

  • Pod에 지정 된 limit memory 값
  • ex) 2000M

Pod OS 기본 사용 memory

  • Pod 구동 시, 기본적으로 사용하는 memory
  • 대략 200M 가정 ( 대체로 200M가 보다 더 작을 것이지만, 여유롭게 가정)

JVM memory

  • JVM total memory = heap + metaspace
    • ex) 예제 가정값
    • Pod total memory: 2000M
    • metaspace: 256M
  • Pod total memory 대비 JVM memory Max 사용량 비율
    • (Pod total memory * heap 사용 비율) + metaspace = JVM total memory → Pod total memory 대비 사용 비율
    • (2000 * 0.5) + 256 = 1256 -> 62.8%
    • (2000 * 0.6) + 256 = 1456 -> 72.8%
    • (2000 * 0.7) + 256 = 1656 -> 82.8%
    • (2000 * 0.8) + 256 = 1856 -> 92.8%

JVM memory 사용 비율 계산

  • Pod total memory(- OS 기본 메모리 제외)의 75% 까지 이용
    • k8s OOM killer 대상에서 제외 되게끔
  • ex)
    • ((Pod total memory - Pod OS 기본 사용 memory) * 0.75) = metaspace + (Pod total memory* heap 사용 비율) → heap 사용 비율 계산
    • ((2000 - 200) * 0.75) = 256 + (2000 * x), x(heap 사용 비율) → 55%
    • ((4000 - 200) * 0.75) = 256 - (4000 * x), x(heap 사용 비율) → 65%
반응형