SKQ - Event Scheduling for Optimizing Tail Latency in a Traditional OS Kernel
Offered By: USENIX via YouTube
Course Description
Overview
Explore a conference talk from USENIX ATC '21 that introduces Schedulable Kqueue (SKQ), a novel design for FreeBSD Kqueue aimed at improving application tail latency and low-latency throughput. Delve into the scalable architecture and event scheduling of SKQ, examining multiple scheduling policies that enhance cache locality and reduce workload imbalance. Learn how SKQ enables applications to prioritize processing latency-sensitive requests over regular ones. Discover the impressive performance improvements achieved by SKQ in the RocksDB benchmark, including a 1022× reduction in tail latency and a 27.4× extension of low-latency throughput. Compare SKQ's performance to a state-of-the-art kernel-bypass networking system, understanding how it narrows the gap by 83.7% for imbalanced workloads. Gain insights into event-driven programming models, SKQ usage, and various scheduling policies, including cache locality, CPU affinity, and load balancing strategies. Conclude with guidelines for policy selection and a comprehensive understanding of SKQ's impact on optimizing tail latency in traditional OS kernels.
Syllabus
Intro
SKQ: Event Scheduling for Optimizing Tail Latency in a Traditional OS Kernel
The Latency Problem
Sources of Latency
Event-Driven Programming Models
SKQ Usage
SKQ Architecture
Scalability Showdown: SKQ vs. Kqueue
Performance Improvement: SKQ vs. Kqueue
Scheduling Policies
Challenges of Efficient Event Scheduling
Cache Locality Policies in Memcached
CPU Affinity vs. Queue Affinity
Imbalanced Workload: RocksDB
Load Balancing Policies
Hybrid Policies
SKQ vs. Kernel Bypass: Uniform 10 ps Workload
SKQ vs. Kernel Bypass: Zipf-like Workload
Policy Selection Guidelines
Conclusion
Taught by
USENIX
Related Courses
An Introduction to Interactive Programming in Python (Part 1)Rice University via Coursera Introduction: Elements of Microgame Design
Worcester Polytechnic Institute via Kadenze Programming with GUIs
Raspberry Pi Foundation via FutureLearn Introduction to Basic Game Development using Scratch
Coursera Project Network via Coursera Basic Game Development with Levels using Scratch
Coursera Project Network via Coursera