Skip to content
← 논문으로
KIPS ACK 2024

An Analysis of Service Latency Based on Replica Resource Granularity in Kubernetes Environment

Geonwoo Kim, Donggyun Kim, Heonchang Yu

Annual Conference of KIPS (ACK 2024)

총 CPU가 같아도 파드당 할당량과 Replica 수에 따라 처리 성능은 달라집니다. 총 1코어를 고정하고 1~16개 Replica로 나누어 자원 세분화의 영향을 비교했습니다.

역할
공동저자 · 학부 연구생 멘토링
핵심 결과
CPU 집약적 실험에서 1개 → 2개 Replica로 분할했을 때 P95 220.58%, P99 660.56% 증가.
Line chart of service latency (mean/90th/95th/99th percentile) versus replica count
자원 세분성(replica 수)에 따른 서비스 latency

배경

HPA는 부하에 따라 replica(파드) 수를 조절해 부하를 분산하는데, 이때 replica 수는 파드에 할당한 기본 자원량에 반비례합니다. 따라서 총 할당 자원이 같더라도 그 자원을 얼마나 잘게 쪼개는지(자원 세분성)에 따라 성능이 달라집니다. 세분성이 높으면(작은 파드를 여럿 두면) 저부하 구간에서 자원 낭비는 줄지만, 파드마다 애플리케이션을 띄우는 기본 overhead가 늘고, 같은 물리 리소스를 공유하는 process 간 간섭과 host OS kernel 부하가 커집니다.

확장 시점과 별개로, 같은 CPU를 몇 개의 파드에 나눠 주는지도 확인할 필요가 있었습니다. 총 할당량을 고정한 채 파드당 자원 크기와 Replica 수를 바꿔 그 영향을 측정했습니다.

실험

2-core 3.1GHz AMD EPYC·4GB instance로 master·worker 각 1대의 cluster를 구성하고, 물리 노드의 1-core CPU를 replica 1·2·4·8·10·16개로 공정하게 분배해(파드당 1-core에서 0.063-core까지) 세분성을 바꿨습니다.

애플리케이션은 CPU 집약적인 삼각함수 연산을 수행하는 Apache 웹 서버이며, 부하 생성기로 300초 동안 분당 300건의 HTTP 요청을 보내며 latency와 CPU 사용률을 측정했습니다.

결과

총 CPU를 고정해도 Replica 수를 늘리면 응답이 느려질 수 있었습니다. 1개에서 2개로 나눴을 때 P95·P99는 각각 220.58%·660.56% 증가했습니다. 전체적으로 평균 지연도 증가했지만, 8개와 10개 사이에서는 일부 지표가 비슷하거나 감소했습니다.

컨테이너별 오버헤드와 프로세스 간 자원 경합을 지연 증가의 원인으로 추정했습니다. 각각의 영향을 분리해 측정하지는 않았으므로, 후속 분석에서는 두 요인을 구분할 필요가 있습니다.

CPU 사용률도 세분화할수록 증가했습니다. 이 CPU 집약 부하에서는 작은 파드를 많이 두는 구성이 같은 일을 처리하는 데 더 많은 CPU를 사용했습니다. 파드당 자원을 정할 때 총 할당량뿐 아니라 응답시간도 함께 확인해야 한다는 결과입니다. 저는 학부 연구생을 지도하며 공동저자로 참여했습니다.