Skip to main content
QUICK REVIEW

[논문 리뷰] Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider

Mohammad Shahrad, Rodrigo Fonseca|arXiv (Cornell University)|2020. 03. 06.
Cloud Computing and Resource Management참고 문헌 31인용 수 223
한 줄 요약

이 논문은 production Azure Functions FaaS 워크로드를 특성화하고, 콜드 스타트를 줄이면서도 고정 유지 수단보다 더 적은 자원을 사용하도록 실용적인 하이브리드 히스토그램 정책을 제안합니다; 시뮬레이션 및 OpenWhisk 실험을 통해 결과를 검증하고 생산 Azure 구현에 대해 논의합니다.

ABSTRACT

Function as a Service (FaaS) has been gaining popularity as a way to deploy computations to serverless backends in the cloud. This paradigm shifts the complexity of allocating and provisioning resources to the cloud provider, which has to provide the illusion of always-available resources (i.e., fast function invocations without cold starts) at the lowest possible resource cost. Doing so requires the provider to deeply understand the characteristics of the FaaS workload. Unfortunately, there has been little to no public information on these characteristics. Thus, in this paper, we first characterize the entire production FaaS workload of Azure Functions. We show for example that most functions are invoked very infrequently, but there is an 8-order-of-magnitude range of invocation frequencies. Using observations from our characterization, we then propose a practical resource management policy that significantly reduces the number of function coldstarts,while spending fewerresources than state-of-the-practice policies.

연구 동기 및 목표

  • Azure Functions의 생산 FaaS 워크로드를 특성화하여 호출 패턴, 트리거, 자원 필요를 이해한다.
  • 호출 빈도, 트리거, 메모리 사용량이 콜드 스타트 비용과 자원 프로비저닝에 미치는 영향을 정량화한다.
  • 현재 제공업체의 관행을 넘어 자원 낭비를 증가시키지 않으면서 콜드 스타트를 줄이기 위한 적응형 정책을 개발하고 평가한다.
  • 현실적인 FaaS 워크로드 모델링에 도움을 주기 위한 구현 통찰과 정제된 워크로드 트레이스를 제공한다.

제안 방법

  • 4개의 Azure Functions 데이터셋을 수집하여 분석한다: function별 호출 수(1분 간격), function별 트리거, 함수별 실행 시간, 애플리케이션별 메모리 사용량.
  • 함수, 애플리케이션, 트리거를 특성화하여 애플리케이션당 함수 수의 분포, 트리거 구성, 호출 패턴을 이해한다.
  • 범위 제한 유휴 시간 히스토그램과 표준 keep-alive를 사용하는 하이브리드 히스토그램 정책을 제안하며, 필요 시 per-애플리케이션 예열(pre-warming) 및 유지 창을 설정하기 위해 시계열 예측(ARIMA)을 적용한다.
  • 시뮬레이션과 Apache OpenWhisk에서 정책을 구현하고 평가하여 고정 유지 기초선 대비 콜드 스타트 감소를 비교한다.
  • 생산 Azure Functions 배포에 대한 논의를 제공하고 생산 트레이스의 정제된 데이터를 공유한다.

실험 결과

연구 질문

  • RQ1트리거, 호출 빈도, 자원 필요 측면에서 Azure Functions의 생산 FaaS 워크로드의 특성은 무엇인가?
  • RQ2호출 패턴과 메모리 사용은 콜드 스타트 및 전반적인 자원 효율성과 어떻게 관련되는가?
  • RQ3적응형 per-애플리케이션 정책이 자원 낭비를 증가시키지 않으면서 고정 유지 정책보다 콜드 스타트를 더 효과적으로 감소시킬 수 있는가?
  • RQ4제안된 정책이 실제 시스템에 구현하기에 실용적이며 OpenWhisk와 같은 기존 FaaS 플랫폼과 호환되는가?
  • RQ5생산 통찰과 트레이스 중 연구자가 현실적인 FaaS 워크로드를 구축하는 데 도움이 될 수 있는 것은 무엇인가?

주요 결과

  • 대다수의 함수가 매우 드물게 호출되며, 가장 많이 호출되는 것과 가장 적게 호출되는 것 사이에 8-order-of-magnitude 범위가 있다.
  • 50%의 함수가 1초 미만으로 실행되며; 75%의 최대 실행 시간이 1s 미만이고, 90%는 60s 미만이다.
  • 애플리케이션 간 메모리 사용량의 변동은 데이터 세트 전체에서 4배에 이르며, 81%의 앱은 평균적으로 분당 최대 한 번 호출된다.
  • 대부분의 호출은 소수의 인기 앱/함수에서 발생하며(예: 상위 18.6%가 호출의 99.6%를 차지한다).
  • 하이브리드 히스토그램 정책은 고정 유지 정책보다 자원을 덜 사용하면서 콜드 스타트를 감소시키며, ARIMA 기반 예측은 드문 호출에 도움이 되고, 이 접근법은 OpenWhisk와 생산 Azure Functions에서 실현 가능하다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.