[논문 리뷰] FaaSLight: General Application-Level Cold-Start Latency Optimization for Function-as-a-Service in Serverless Computing
FaaSLight는 기능 수준의 호출 그래프를 사용하여 필수 응용 프로그램 코드에서 비필수(선택적) 코드를 식별하고 분리함으로써 기능으로서의 서비스(FaaS)의 콜드스타트 지연 시간을 줄이기 위한 응용 프로그램 수준 최적화를 제안한다. 선택적 코드를 필요에 따라 로드함으로써, 코드 로딩 지연 시간을 최대 78.95% (평균 28.78%) 감소시키며, 총 응답 지연 시간을 최대 42.05% (평균 19.21%) 감소시킨다. 이는 기존 최고 수준의 기술 대비 21.25배 향상된 성능이며, 기반 플랫폼을 수정하거나 개발자 노력이 전혀 필요 없이 달성된다.
Serverless computing is a popular cloud computing paradigm that frees developers from server management. Function-as-a-Service (FaaS) is the most popular implementation of serverless computing, representing applications as event-driven and stateless functions. However, existing studies report that functions of FaaS applications severely suffer from cold-start latency. In this paper, we propose an approach namely FaaSLight to accelerating the cold start for FaaS applications through application-level optimization. We first conduct a measurement study to investigate the possible root cause of the cold start problem of FaaS. The result shows that application code loading latency is a significant overhead. Therefore, loading only indispensable code from FaaS applications can be an adequate solution. Based on this insight, we identify code related to application functionalities by constructing the function-level call graph, and separate other code (i.e., optional code) from FaaS applications. The separated optional code can be loaded on demand to avoid the inaccurate identification of indispensable code causing application failure. In particular, a key principle guiding the design of FaaSLight is inherently general, i.e., platform- and language-agnostic. The evaluation results on real-world FaaS applications show that FaaSLight can significantly reduce the code loading latency (up to 78.95%, 28.78% on average), thereby reducing the cold-start latency. As a result, the total response latency of functions can be decreased by up to 42.05% (19.21% on average). Compared with the state-of-the-art, FaaSLight achieves a 21.25X improvement in reducing the average total response latency.
연구 동기 및 목표
- FaaS 응용 프로그램에서 콜드스타트 지연 시간이 전체 응답 시간의 최대 80%까지 차지할 수 있는 심각한 성능 저하 요인을 해결하기 위해.
- 필수 응용 프로그램 코드에서 비필수(선택적) 코드를 식별하고 분리하여 초기화 오버헤드를 줄이기 위해.
- 기반 운영 체제나 하이퍼바이저를 수정할 필요 없이 플랫폼 및 언어에 관계없이 적용 가능한 솔루션을 설계하기 위해.
- 선택적 코드를 필요에 따라 로드함으로써 필수 코드로 잘못 식별되는 것을 방지하고, 응용 프로그램 실패를 막기 위해.
- 수동 엔지니어링이나 개발자 간섭 없이도 상당한 성능 향상을 달성하기 위해.
제안 방법
- 응용 프로그램 기능에 필수적인 코드를 식별하기 위해 종속성 정적 분석을 수행하기 위해 기능 수준의 호출 그래프를 구축한다.
- 식별된 선택적 코드를 메인 응용 프로그램 번들에서 분리하여 초기 코드 로딩 크기를 줄인다.
- 실행 중에 필요할 때만 선택적 기능을 가져오고 실행하기 위한 경량 런타임 메커니즘을 통합한다.
- 실행 시점까지 선택적 코드 로딩을 연기함으로써 백워드 호환성과 정확성을 확보하고, 온도 상태 성능에 미치는 영향을 최소화한다.
- 평가를 위해 AWS Lambda와 Google Cloud Functions에서 Python과 JavaScript로 플랫폼 및 언어에 관계없이 적용 가능한 경량 프로토타입을 구현한다.
- 경량 파일 I/O를 사용해 선택적 코드를 필요에 따라 로드하며, 이에 따른 오버헤드(~100 ms)는 일반적인 콜드스타트 지연 시간에 비해 매우 작다.
실험 결과
연구 질문
- RQ1FaaS 응용 프로그램에서 높은 콜드스타트 지연 시간의 주요 근본 원인은 무엇인가?
- RQ2기반 서버리스 플랫폼을 수정하지 않고도 응용 프로그램 수준의 코드 분석이 콜드스타트 지연 시간을 줄일 수 있는가?
- RQ3기능 수준의 호출 그래프 분석이 필수 코드와 선택적 코드를 얼마나 효과적으로 식별할 수 있는가?
- RQ4선택적 코드의 필요 시 로딩 오버헤드는 얼마이며, 이로 인한 비용이 이득을 상쇄하는가?
- RQ5제안된 최적화 기법이 다양한 프로그래밍 언어와 서버리스 플랫폼에서 상당한 성능 향상을 달성할 수 있는가?
주요 결과
- 응용 프로그램 코드 로딩 지연 시간은 콜드스타트 지연 시간의 주요 기여 요소로 전체 지연 시간의 상당 부분을 차지한다.
- FaaSLight는 실제 FaaS 응용 프로그램에서 코드 로딩 지연 시간을 최대 78.95% 감소시키며 평균 28.78% 감소시킨다.
- 총 응답 지연 시간은 최대 42.05% 감소시키며 평균 19.21% 감소시켜 끝에서 끝까지의 성능 향상이 뚜렷하다.
- 이 방법은 기존 최고 수준의 기술 대비 평균 총 응답 지연 시간을 21.25배 향상시킨다.
- 필요 시 로딩 메커니즘은 약 ~100 ms의 오버헤드만 유발하며, 이는 콜드스타트 지연 시간에 비해 무시할 만큼 작고, 온도 상태 성능에 영향을 주지 않는다.
- 이 솔루션은 Python, JavaScript 등의 다양한 프로그래밍 언어와 AWS Lambda, Google Cloud Functions 등의 다양한 서버리스 플랫폼에서 효과적이며, 일반화 가능성에 대한 확인이 이루어졌다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.