[논문 리뷰] Sizeless: Predicting the optimal size of serverless functions
이 논문은 단일 메모리 설정에서의 모니터링 데이터만을 사용하여 서버리스 함수의 최적 메모리 크기를 예측하는 Sizeless를 제안한다. 이는 시간이 오래 소요되는 성능 테스트가 필요로 하지 않게 하며, 평균 예측 오차는 15.3%이며, 91.3%의 함수에서 최적 또는 두 번째로 좋은 메모리 크기를 선택한다. 이로 인해 AWS에서 평균 39.7%의 속도 향상과 2.6%의 비용 절감을 달성한다.
Serverless functions are a cloud computing paradigm where the provider takes care of resource management tasks such as resource provisioning, deployment, and auto-scaling. The only resource management task that developers are still in charge of is selecting how much resources are allocated to each worker instance. However, selecting the optimal size of serverless functions is quite challenging, so developers often neglect it despite its significant cost and performance benefits. Existing approaches aiming to automate serverless functions resource sizing require dedicated performance tests, which are time-consuming to implement and maintain. In this paper, we introduce an approach to predict the optimal resource size of a serverless function using monitoring data from a single resource size. As our approach does not require dedicated performance tests, it enables cloud providers to implement resource sizing on a platform level and automate the last resource management task associated with serverless functions. We evaluate our approach on three different serverless applications, where it selects the optimal memory size for 71.7% of the serverless functions and the second-best memory size for 22.3% of the serverless functions, which results in an average speedup of 43.6% while simultaneously decreasing average costs by 10.2%.
연구 동기 및 목표
- 서버리스 함수의 수동적이고 비최적의 메모리 크기 설정 문제를 해결함으로써 비용과 성능에 미치는 영향을 최소화하기 위해.
- 메모리 크기 최적화를 위한 전용 성능 테스트가 필요 없도록 하여, 시간이 오래 걸리고 유지보수가 어려운 문제를 해결하기 위해.
- AWS Compute Optimizer와 유사하게 대규모로 자동화된 메모리 크기 추천 기능을 클라우드 제공업체가 제공할 수 있도록 하기 위해.
- 최소한의 모니터링 데이터를 기반으로 합성 데이터에서 실제 서버리스 애플리케이션으로의 일반화를 가능하게 하는 모델을 개발하기 위해.
- 개발자가 관리해야 하는 마지막 자원 관리 작업인 자원 크기 설정을 자동화하여 서버리스 컴퓨팅을 진정으로 서버리스로 만들기 위해.
제안 방법
- 합성 서버리스 함수 생성기가 대표적인 코드 조각을 조합하여 2,000개의 다양한 함수를 생성한다.
- 각 합성 함수에 대해 AWS Lambda에서 여섯 가지 메모리 크기에서 자원 소비 및 실행 시간을 측정한다.
- 단일 메모리 크기에서의 모니터링 데이터만을 사용하여, 모든 메모리 크기의 실행 시간을 예측할 수 있도록 다중 목표 회귀 모델을 훈련한다.
- 모델은 한 구성에서의 실행 시간 및 자원 지표(예: CPU, 메모리, I/O)를 활용하여 다른 구성의 성능을 추론한다.
- 실제 서버리스 애플리케이션 네 개에 대해 평가하여, 한 메모리 크기에서의 모니터링 데이터를 사용해 다른 크기의 최적화를 예측한다.
- 훈련 후 9개월이 지난 생산 애플리케이션에서 모델을 검증하여 장기적인 일반화 능력을 입증한다.
실험 결과
연구 질문
- RQ1합성 서버리스 함수에서 훈련된 모델이 단일 크기에서의 모니터링 데이터만을 사용하여, 여러 메모리 크기의 실행 시간을 정확하게 예측할 수 있는가?
- RQ2이러한 모델이 전용 성능 테스트 없이도 실제 서버리스 함수의 최적 또는 근사 최적 메모리 크기를 식별할 수 있는가?
- RQ3기본 또는 비최적 설정과 비교했을 때, 이 모델이 실행 시간과 비용을 얼마나 줄일 수 있는가?
- RQ4합성 데이터에서 훈련된 모델이 실세계 애플리케이션으로의 일반화 능력이 얼마나 뛰어난가, 특히 훈련 데이터 수집 후 수개월이 지난 후에도 성능이 유지되는가?
- RQ5이러한 접근 방식을 클라우드 제공업체가 대규모로 구현하여 사용자 함수의 성능 테스트 없이도 자동으로 메모리 크기 추천을 제공할 수 있는가?
주요 결과
- 모델은 단일 메모리 크기에서의 모니터링 데이터만을 사용하여 다른 메모리 크기의 실행 시간을 평균 15.3%의 오차로 예측한다.
- 서버리스 함수의 79.0%에서는 최적의 메모리 크기를 선택하고, 12.3%에서는 두 번째로 좋은 크기를 선택하여 총 91.3%의 함수에서 근사 최적의 구성이 이루어진다.
- 선택된 메모리 크기로 인해 평가된 애플리케이션 전반에서 평균 39.7%의 속도 향상이 이루어진다.
- 이 방법은 기본 또는 비최적 설정과 비교해 평균 비용을 2.6% 절감한다.
- 모델은 실세계 애플리케이션으로의 일반화 능력이 효과적으로 입증되었으며, 훈련 데이터 수집 후 9개월이 지난 후에도 테스트된 애플리케이션을 포함한다.
- 이 방법은 사용자 함수의 성능 테스트 없이도 클라우드 제공업체가 자동으로 메모리 크기 추천을 제공할 수 있도록 한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.