Towards Energy-Efficient Serverless Computing with Hardware Isolation
Natalie Carl, Tobias Pfandzelter, David Bermbach
TL;DR
This work identifies energy-inefficiency in conventional serverless platforms arising from software-based isolation on shared hardware and overprovisioned idle capacity. It proposes a hardware-centric model where each function executes on a dedicated small computer (e.g., an SoC) that boots into the function environment, runs, and then shuts down, eliminating sandbox overhead and idle power. Through a combination of workload simulations and a preliminary hardware prototype, the authors show a potential energy reduction on the order of 90% for excess energy, with data-center-scale extrapolations suggesting large overall savings. While promising, the approach invites further investigation into datacenter integration, boot-time optimizations, and the environmental implications of deploying SoCs at scale, as well as exploring unikernel deployment to further reduce abstraction overhead and idle power.
Abstract
Serverless computing provides just-in-time infrastructure provisioning with rapid elasticity and a finely-grained pricing model. As full control of resource allocation is in the hands of the cloud provider and applications only consume resources when they actually perform work, we believe that serverless computing is uniquely positioned to maximize energy efficiency. However, the focus of current serverless platforms is to run hundreds or thousands of serverless functions from different tenants on traditional server hardware, requiring expensive software isolation mechanisms and a high degree of overprovisioning, i.e., idle servers, to anticipate load spikes. With shared caches, high clock frequencies, and many-core architectures, servers today are optimized for large, singular workloads but not to run thousands of isolated functions. We propose rethinking the serverless hardware architecture to align it with the requirements of serverless software. Specifically, we propose using hardware isolation with individual processors per function instead of software isolation resulting in a serverless hardware stack that consumes energy only when an application actually performs work. In preliminary evaluation with real hardware and a typical serverless workload we find that this could reduce energy consumption overheads by 90.63% or an average 70.8MW.
