Serverless in the wild: Characterizing and optimizing the serverless workload
#serverless #Function_as_a_Service #FaaS #trace_analysis #reduce_code_start_invocations
Meta Info
Serverless in the wild: Characterizing and optimizing the serverless workload at a large cloud provider
Presented in ATC 2020.
Trace: https://github.com/Azure/AzurePublicDataset
Understanding the paper
TL;DRs
This paper characterizes the entire production FaaS workload of Azure Functions. It also proposes a policy for reducing the number of cold start function executions.
Background
Function as a Service (FaaS): A software paradigm
Users simply upload the code of their functions to the cloud.
Functions get executed when “triggered” or “invoked” by events.
The cloud provider is responsible for provisioning the needed resources, providing high function performance, and billing users for their actual function executions.
Function execution: Require the code (e.g., user code, language runtime libraries) in memory.
Warm start: The code is already in memory, so the function can be started quickly.
Cold start: The code has to be brought in from persistent storage.
Some Observations
Most functions are invoked very infrequently.
The most popular functions are invoked 8 orders of magnitude more frequently than the least popular ones.
Functions exhibit a variety of triggers, producing invocation patterns that are often difficult to predict.
A 4x range of function memory usage and that 50% of functions run in less than 1 second.
Existing Work
AWS and Azure use a fixed “keep-alive” policy that retains the resources in memory for 10 and 20 minutes after a function execution, respectively.
Proposed Policy
To reduce the number of cold start invocations.
Use a different keep-alive value for each user’s workload, according to its actual invocation frequency and pattern.
Enable the provider to pre-warm a function execution before its invocation happens (making it a warm start).
Implementation
Implemented in simulation and for Apache OpenWhisk FaaS platform.
Last updated