[Paper Review] Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider
This paper characterizes the production Azure Functions FaaS workload and proposes a practical hybrid histogram policy to reduce cold starts while using fewer resources than fixed keep-alive approaches; it validates results via simulation and OpenWhisk experiments and discusses production Azure implementation.
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.
Motivation & Objective
- Characterize the production FaaS workload on Azure Functions to understand invocation patterns, triggers, and resource needs.
- Quantify how invocation frequency, triggers, and memory usage impact cold-start costs and resource provisioning.
- Develop and evaluate adaptive policies to reduce cold starts without increasing resource waste beyond current provider practices.
- Provide implementation insights and sanitized workload traces to aid researchers in modeling real FaaS workloads.
Proposed method
- Collect and analyze four Azure Functions datasets: per-function invocation counts (1-minute bins), trigger per function, execution time per function, and memory usage per application.
- Characterize functions, applications, and triggers to understand distribution of function counts per app, trigger composition, and invocation patterns.
- Propose a hybrid histogram policy that uses range-limited idle-time histograms plus a standard keep-alive and, if needed, time-series forecasting (ARIMA) to set per-application pre-warming and keep-alive windows.
- Implement and evaluate the policy in simulation and on Apache OpenWhisk to compare cold-start reductions against fixed keep-alive baselines.
- Provide discussion on production Azure Functions deployment and share a sanitized dataset of production traces.
Experimental results
Research questions
- RQ1What are the characteristics of the production FaaS workload on Azure Functions in terms of triggers, invocation frequencies, and resource needs?
- RQ2How do invocation patterns and memory usage relate to cold starts and overall resource efficiency?
- RQ3Can an adaptive per-application policy reduce cold starts more effectively than fixed keep-alive policies without increasing resource waste?
- RQ4Is the proposed policy practical to implement in real systems and compatible with existing FaaS platforms like OpenWhisk?
- RQ5What production insights and traces can help researchers build realistic FaaS workloads?
Key findings
- Most functions are invoked very infrequently, with an 8-order-of-magnitude range between most and least popular invocations.
- 50% of functions run in less than 1 second; 75% have max execution time under 1s, and 90% under 60s.
- Applications exhibit a 4x variation in memory usage across the dataset, and 81% of apps are invoked at most once per minute on average.
- A large fraction of invocations come from a small set of popular apps/functions (e.g., 18.6% most popular account for 99.6% of invocations).
- The hybrid histogram policy reduces cold starts while spending fewer resources than fixed keep-alive policies; ARIMA-based forecasting helps for infrequent invocations, and the approach is feasible in OpenWhisk and production Azure Functions.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.