Arrakis is: The Operating System is the Control Plane
Simon Peter, Jialin Li, Irene Zhang, Dan Ports, Doug Woos, Arvind Krishnamurthy, Tom Anderson
University of Washington
Timothy Roscoe
ETH Zurich
The Operating System is the Control Plane Simon Peter , Jialin Li, - - PowerPoint PPT Presentation
Arrakis is: The Operating System is the Control Plane Simon Peter , Jialin Li, Irene Zhang, Timothy Roscoe Dan Ports, Doug Woos, ETH Zurich Arvind Krishnamurthy, Tom Anderson University of Washington Building an OS for the Data Center
Simon Peter, Jialin Li, Irene Zhang, Dan Ports, Doug Woos, Arvind Krishnamurthy, Tom Anderson
University of Washington
Timothy Roscoe
ETH Zurich
Intel X520 10G NIC Intel RS3 RAID 1GB flash-backed cache Sandy Bridge CPU 6 cores, 2.2 GHz
+ + = $1,200 2 us / 1KB packet 25 us / 1KB write
Intel X520 10G NIC Intel RS3 RAID 1GB flash-backed cache Sandy Bridge CPU 6 cores, 2.2 GHz
+ + = $1,200
2 us / 1KB packet 25 us / 1KB write
Kernel
Redis
HW 13%
HW 18%
Kernel 84% Kernel 62%
App 3% App 20%
SET GET
% OF 1KB REQUEST TIME SPENT
API Multiplexing Naming Resource limits Access control I/O Scheduling I/O Processing Copying Protection
10G NIC 2 us / 1KB packet RAID Storage 25 us / 1KB write 9 us 163 us
Kernel
Redis
HW 13%
HW 18%
Kernel 84% Kernel 62%
App 3% App 20%
SET GET
% OF 1KB REQUEST TIME SPENT
API Multiplexing Naming Resource limits Access control I/O Scheduling I/O Processing Copying Protection
10G NIC 2 us / 1KB packet RAID Storage 25 us / 1KB write 9 us 163 us
w/ own registers, queues, INTs
Devices use app virtual memory
Only allow eligible I/O
SR-IOV NIC
Packet filters Network
Rate limiters
User-level VNIC 1 User-level VNIC 2
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Copying Protection
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Copying Protection
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Copying Protection
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Protection
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Protection
Data Path Control Plane Data Plane
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Protection
Data Path Control Plane Data Plane
Kernel
Naming Resource limits Access control
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Protection
Data Path Control Plane Data Plane
Virtual Storage Area
/tmp/lockfile /var/lib/key_value.db /etc/config.rc …
Fast HW ops
Logical disk
Virtual Storage Area
/tmp/lockfile /var/lib/key_value.db /etc/config.rc …
Fast HW ops
Logical disk
Virtual Storage Area
/tmp/lockfile /var/lib/key_value.db /etc/config.rc …
Fast HW ops
Logical disk
Virtual Storage Area
/tmp/lockfile /var/lib/key_value.db /etc/config.rc …
Fast HW ops
Logical disk Indirect IPC interface
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Protection
Data Path Control Plane Data Plane
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Protection
Data Path Control Plane Data Plane
Kernel
Naming Resource limits Access control
Redis
Redis I/O Devices
API Multiplexing I/O Scheduling I/O Processing Protection
Data Path Control Plane Data Plane Redis
API I/O Processing
9 us 163 us 4 us 31 us
HW 33% HW 18% libIO 35% Kernel 62% App 32% App 20%
Arrakis Linux
HW 77% HW 13%
libIO 7%
Kernel 84% App 15%
App 3%
Arrakis Linux (ext4)
1.8x 2x 3.1x 200 400 600 800 1000 1200 1 2 4
Throughput (k transactions/s)
Number of CPU cores Linux Arrakis 10Gb/s interface limit
1x 2.3x 3.4x 3.6x 200 400 600 800 1000 1200 Throughput (k packets/s) Linux Arrakis/POSIX Arrakis/Zero-copy Driver 10Gb/s interface limit
UDP echo benchmark
Source code: http://arrakis.cs.washington.edu