Customization and reuse in datacenter operating systems
OA Version
Citation
Abstract
Increasingly, computing has moved to large-scale datacenters where application performance is critical. Stagnating CPU clock speeds coupled with increasingly higher bandwidth and lower latency networking and storage puts an increased focus on the operating
system to enable high-performance.
The challenge of providing high-performance is made more difficult due to the diversity
of datacenter workloads such as search, video processing, distributed storage, and machine learning tasks. Our existing general purpose operating systems must sacrifice the
performance of any one application in order to support a broad set of applications.
We observe that a common model for application deployment is to dedicate a physical
or virtual machine to a single application. In this context, our operating systems can be
specialized to the purposes of the application.
In this dissertation, we explore the design of the Elastic Building Block Runtime
(EbbRT), a framework for constructing high-performance, customizable operating systems
while keeping developer effort low. EbbRT adopts a lightweight execution environment
which enables applications to directly manage hardware resources and specialize their system behavior. An EbbRT operating system is composed of objects called Elastic Building
Blocks (Ebbs) which encapsulate functionality so it can be incrementally extended or optimized. Finally, EbbRT adopts a unique heterogeneous and distributed architecture where
an application can be split between a server running an existing general purpose operating
system and a server running a customized library operating system. The library operating system provides the mechanisms for application execution including primitives for event
driven programming, componentization, memory management and I/O.
We demonstrate that EbbRT enables memcached, an in-memory caching server, to
achieve more than double the performance with EbbRT than with Linux. We also demonstrate that EbbRT can support more full-featured applications such as a port of Google’s
V8 javascript engine and nodejs, a javascript server runtime.
Description
License
Attribution 4.0 International