Memoryless reduces server waste by adapting memory and CPU use
Don't let your Memory defy you: Fragmentation-Aware Serverless Allocation with Elastic Memory Locality
Distributed, Parallel, and Cluster Computing
Summary
When running lots of small computer tasks in the cloud, sometimes resources like memory and CPU get stuck and can't be fully used, causing waste. The authors created Memoryless, a system that smartly matches tasks with available memory and CPU resources, even if those resources are spread out locally or remotely. This helps pack tasks more efficiently on servers, reducing wasted space while keeping performance reliable. They tested Memoryless and found it could cut down unused CPU and memory by a large amount compared to other methods.
What this means in practice
- •For cloud platform operators: Deploy elastic memory-aware scheduling to reduce hardware waste and improve resource use on serverless platforms.
- •For data center resource managers: Optimize packing of compute and memory in data centers by balancing local and remote memory usage using Memoryless.
Authors
Achilleas Tzenetopoulos, Dimosthenis Masouros, Sotirios Xydis, Francky Catthoor, Dimitrios Soudris
Abstract
Serverless platforms commonly rely on bundled, memory-centric configurations, where CPU capacity follows the specified memory size. Resource decoupling reduces this waste, but can create external fragmentation by producing diverse CPU-memory shapes that leave residual capacity stranded across nodes. Memory disaggregation and tiering can turn these resource holes into usable capacity by enabling elastic memory locality, where instances use different mixes of local and remote memory. In this paper, we present Memoryless, a fragmentation-aware resource manager that exposes memory locality as a serverless control-plane primitive. Memoryless jointly selects and places function variants that differ in their compute allocation and memory-locality ratio. This allows the scheduler to match instance shapes to fragmented node capacity while preserving SLOs. We implement Memoryless on top of Knative and evaluate it with trace-driven workloads. Compared to state-of-the-art serverless placement frameworks, Memoryless reduces node usage by up to 40% in steady state and 46% at peak, while keeping SLO violations within 3%. It also reduces CPU stranding by 44%, showing that elastic memory locality can convert fragmented node capacity into usable resources.