Seminarium: Systemy Rozproszone
31 października 2024 12:15, sala 4070
Hubert Lawenda, Adam Greloch



User-guided Page Merging for Memory Deduplication in Serverless Systems



Serverless computing is an emerging cloud paradigm that offers an elastic and scalable allocation of computing resources with pay-as-you-go billing. In the Function- as-a-Service (FaaS) programming model, applications comprise short-lived and stateless serverless functions executed in isolated containers or microVMs, which can quickly scale to thousands of instances and process terabytes of data. This flexibility comes at the cost of duplicated runtimes, libraries, and user data spread across many function instances, and cloud providers do not utilize this redundancy. The memory footprint of serverless forces removing idle containers to make space for new ones, which decreases performance through more cold starts and fewer data caching opportunities.

We address this issue by proposing deduplicating memory pages of serverless workers with identical content, based on the content-based page-sharing concept of Linux Kernel Same-page Merging (KSM). We replace the background memory scanning process of KSM, as it is too slow to locate sharing candidates in short-lived functions. Instead, we design User-Guided Page Merging (UPM), a built-in Linux kernel module that leverages the madvise system call: we enable users to advise the kernel of memory areas that can be shared with others. We show that UPM reduces memory consumption by up to 55% on 16 concurrent containers executing a typical image recognition function, more than doubling the density for containers of the same function that can run on a system.

Zapraszam,
Hubert Lawenda



Bibliografia:





An Empirical Study of Rust-for-Linux: The Success, Dissatisfaction, and Compromise



The Rust-for-Linux project is probably the largest and most important effort in Rust language, trying to "attack" critical and complex C projects. It was mentioned on the Seminar two years ago, just before merging the first Rust code to Linux mainline. Since then, around 20 thousand LOC of Rust has been merged to the mainline. The article is the first of its kind study that compares the initial project enthusiasm to how it goes in practice since the first merge.

Zapraszam,
Adam Greloch



Bibliografia: