[논문 리뷰] Pagurus: Eliminating Cold Startup in Serverless Computing with Inter-Action Container Sharing
Pagurus는 새로운 컨테이너 관리 시스템을 통해 상호작용 컨테이너 공유를 가능하게 함으로써 서버리스 컴퓨팅의 콜드 스타트를 제거한다. 이 시스템은 컨테이너를 렌더, 실행자, 임차자 유형으로 분류하며, 패키지 유사성 기반으로 컨테이너 이미지를 재패킹하고 상호작용 스케줄러를 사용함으로써, 사전 예열된 컨테이너가 없더라도 콜드 스타트 지연을 10ms 이내로 줄인다. 이 과정에서 CPU 및 메모리 오버헤드는 극히 적다.
Serverless computing provides fine-grain resource sharing between Cloud tenants through containers. Each function invocation (action) runs in an individual container. When there is not an already started container for a user function, a new container has to be created for it. However, the long cold startup time of a container results in the long response latency of the action. Our investigation shows that the containers for some user actions share most of the software packages. If an action that requires a new container can ``borrow'' a similar warm container from other actions, the long cold startup can be eliminated. Based on the above finding, we propose Pagurus, a runtime container management system for eliminating the cold startup in serverless computing. Pagurus is comprised of an inter-action container scheduler and an intra-action container scheduler for each action. The inter-action container scheduler schedules shared containers among actions. The intra-action container scheduler deals with the management of the container lifecycle. Our experimental results show that Pagurus effectively eliminates the time-consuming container cold startup. An action may start to run in 10ms with Pagurus, even if there is not warm container for it.
연구 동기 및 목표
- 서버리스 컴퓨팅에서 긴 콜드 스타트 시간으로 인한 성능 저하 문제를 해결하기 위해.
- 기존 서버리스 시스템에서 방치되고 있는, 저활성화된 컨테이너로 인한 자원 낭비를 줄이기 위해.
- 다른 소프트웨어 종속성 조건을 가진 사용자 액션 간에도 안전하고 효율적인 컨테이너 공유를 가능하게 하기 위해.
- 모든 액션에 대해 사전 예열된 컨테이너가 필요 없이도 콜드 스타트 지연을 최소화하기 위해.
- 동적 컨테이너 빌린 대출을 통해 번갈아가며 발생하는 워크로드를 QoS 위반 없이 지원하기 위해.
제안 방법
- 런타임 동안 패키지 재패킹을 지원할 수 있도록 컨테이너 설계를 개선하여 액션 간 컨테이너 공유를 가능하게 한다.
- 세 가지 컨테이너 유형 도입: 공유 가능한 렌더, 전용 사용자를 위한 실행자, 빌린 임차자.
- 패키지 유사성 기반의 재패킹 정책 설계로 액션 간 중복된 패키지 설치를 최소화한다.
- 워크로드 및 패키지 유사성 기반으로 액션 간 컨테이너 할당을 관리하기 위한 상호작용 컨테이너 스케줄러를 구현한다.
- 각 액션 별로 자체 컨테이너와 빌린 임차자 컨테이너의 수명 주기를 관리하기 위한 액션 내 컨테이너 스케줄러를 구현한다.
- 체크포인트 파일과 암호화된 코드 저장소를 사용하여 컨테이너 빌린 대출 중 시작 속도를 가속화하고 보안을 확보한다.
실험 결과
연구 질문
- RQ1액션 간 컨테이너 공유가 서버리스 컴퓨팅에서 콜드 스타트 지연을 크게 줄일 수 있는가?
- RQ2다른 소프트웨어 종속성 조건을 가진 액션 간에도 컨테이너 공유를 안전하고 효율적으로 가능하게 할 수 있는가?
- RQ3패키지 유사성 기반 컨테이너 재패킹이 시작 성능과 자원 사용에 어떤 영향을 미치는가?
- RQ4동적 컨테이너 빌린 대출을 통해 QoS 저하 없이 번갈아가며 발생하는 워크로드를 지원할 수 있는가?
- RQ5제안된 컨테이너 공유 메커니즘의 런타임 및 자원 오버헤드는 어떠한가?
주요 결과
- 사전 예열된 컨테이너가 없는 상황에서도 Pagurus는 콜드 스타트 지연을 10ms 이내로 줄였다.
- 액션이 1~2개의 추가 컨테이너를 빌릴 수 있도록 허용할 경우, OpenWhisk 대비 최대 3배 높은 번갈아가며 발생하는 워크로드를 지원할 수 있었다.
- 번갈아가며 발생하는 워크로드를 지원하기 위한 메모리 사용량은 OpenWhisk의 사전 예열 방식 대비 최대 6.75GB 감소했다.
- 컨테이너 재패킹 중 CPU 오버헤드는 평균 1.61%에 불과했으며, 동기화를 고려한 총 시스템 오버헤드는 2.4% 미만이었다.
- 저장소 오버헤드는 극히 적었다: 컨테이너당 암호화된 코드 파일은 4.3125KB, 체크포인트 파일은 332KB였다.
- Pagurus는 기존 서버리스 플랫폼에 대한 변경 없이도 효율적이고 안전하며 오버헤드가 적은 컨테이너 공유를 가능하게 했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.