본문 바로가기

emotional developer/detect-server

k8s JVM memory Config

개요

  • 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%
반응형

'emotional developer > detect-server' 카테고리의 다른 글

System Design — Tips  (0) 2024.10.10
mongodb bulk remove  (0) 2024.04.03
transaction isolation level  (0) 2023.11.04