Skip to content
← 논문으로
KIPS ACK 2024

An Analysis of Response Time Depending on CPU Resource Contention between Pods in Kubernetes Environment

Seungjoo Han, Donggyun Kim, Heonchang Yu

Annual Conference of KIPS (ACK 2024)

내 서비스의 요청량이 같아도 같은 노드의 다른 작업 때문에 응답이 느려질 수 있습니다. 다른 파드의 CPU 점유율과 작업 수를 따로 바꾸며 영향을 측정했습니다.

역할
공동저자 · 학부 연구생 멘토링
핵심 결과
30초당 450건 조건에서 다른 파드의 CPU 점유율 0% → 70%에 따라 평균 응답시간 51ms → 236ms.
Line chart of response time versus number of stress-test tasks
Stress task 수에 따른 응답시간 (Mean·90·95th)

배경

클라우드에서는 자원 활용도를 높이기 위해 여러 애플리케이션을 같은 노드에 배치합니다. 하지만 노드에 자원이 남아 보이는 것과 각 서비스가 필요한 시점에 CPU를 쓸 수 있다는 것은 다릅니다.

같은 노드의 다른 작업이 CPU를 사용할 때 대상 서비스의 응답이 얼마나 느려지는지 확인하고자 했습니다. 경쟁 작업의 CPU 점유율과 작업 수를 나눠 실험했습니다.

실험

Intel Core i5-12600K·DDR5 32GiB 시스템에 가상머신으로 마스터 1대·워커 3대(각 2 vCPU·4GiB) 클러스터를 구성하고, progrium/stress 이미지로 노드의 CPU 점유율을 통제했습니다.

타깃은 삼각함수를 계산하는 php-apache이며, 클러스터 외부에서 HTTP 요청을 보내 (1) 경쟁 파드의 CPU 점유율(0~70%)과 (2) CPU 부하 작업 수(2~10개)를 바꿔가며 응답시간을 측정했습니다.

결과

30초당 요청 450건과 경쟁 작업 2개를 유지한 상태에서, 경쟁 파드의 CPU 점유율을 0%에서 70%로 올렸습니다. 평균 응답시간은 51ms에서 236ms로 늘었으며, 원문이 보고한 증가율은 약 361%입니다.

별도 실험에서는 경쟁 CPU 점유율을 65%로 고정하고 작업 수를 2~10개로 늘렸습니다. 평균 지연 변화는 작았지만 상위 지연이 늘었고, 응답시간 증가는 최대 19.4%였습니다. 컨텍스트 전환과 캐시·TLB 상태 변화를 원인으로 추정했으며, 각 요인의 영향은 추가로 분리해 측정할 필요가 있습니다.

대상 서비스의 요청량이 같아도 함께 배치된 작업에 따라 응답 지연이 달라졌습니다. 노드에 남은 자원뿐 아니라 함께 실행할 작업의 특성도 배치 판단에 필요하다는 결과입니다. 저는 학부 연구생을 지도하며 공동저자로 참여했습니다.

원문 표 1 · 30초당 요청 450건 · 경쟁 작업 2개. 경쟁 파드의 CPU 점유율만 바꾼 비교.
경쟁 CPU 점유율평균 응답시간 (ms)
0%51
40%81
60%153
70%236