이 글은 클라우드에서 서비스 수준 목표(SLO)를 달성하는 데 핵심적인 네트워크 성능 요구사항을 만족시키는 방법을 탐구한다. 전통적인 네트워크 성능 관리 기법은 네트워크 SLO를 만족시키는 데 제한적인 능력만을 가진다. 심층 분석 결과, 근본적인 원인은 현재의 CPU 스케줄러가 해당 네트워크 요구사항을 인지하지 못한 채 모든 컨테이너에 공정한 비율의 CPU만을 제공한다는 점에서 CPU 스케줄러와 네트워크 트래픽 제어기가 분리되어 있기 때문이다. 따라서 CPU 할당이 충분하지 않은 경우, 해당 컨테이너는 자신의 SLO를 만족하는 데 필요한 만큼의 네트워크 처리를 수행할 수 없다. 본 연구에서는 컨테이너의 CPU 할당을 동적으로 조절하여 네트워크 SLO를 만족시키는 Autothrottle을 제안한다. Autothrottle의 핵심 요소는 요구사항을 만족하는 데 필요한 각 컨테이너별 CPU의 양을 자율적으로 결정하는 스로틀 알고리즘이다. 우리는 Linux 커널에 Autothrottle을 구현하고, Apache Kafka와 같은 대규모의 실제 환경 워크로드로 평가를 수행한다. 평가 결과, Autothrottle은 기존 방식이 SLO 대비 20% 낮은 성과를 보이는 데 비해, SLO와의 격차 2%만으로 주어진 네트워크 SLO를 성공적으로 만족시킨다. 또한 Autothrottle은 네트워크 처리에서의 CPU 오버헤드를 19% 감소시키며, 기존 방식에 비해 네트워크 처리량을 27% 향상시키는 것도 관찰된다.
*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.