SEALS: A Self-Adaptive, Learned Scheduler for Serverless Functions

SEALS: A Self-Adaptive, Learned Scheduler for Serverless Functions

Abstract:  

Serverless functions are ephemeral, highly concurrent, and bursty, with an execution duration ranging from a few milliseconds to a few seconds. The workload behaviors pose new challenges to kernel scheduling. However, Linux CFS (Completely Fair Scheduler) neglects the short-term demands of CPU time from short-lived serverless functions, severely impacting the performance of short functions.

In the work, we propose a novel application-aware kernel scheduler, SEALS (SElf-Aadptive, Learned Scheduler), based on the insights that a predictive or learned priority scheduler can achieve near-optimal performance by approximating SRTF (Shortest remaining time first). To this end, we design SEALS to have a decoupled scheduler frontend and backend architecture that unifies approximate SRTF with proportional-share scheduling. SEALS frontend sits in the user space and approximate SRTF-inspired priority scheduling by adaptively learning from an SRTF simulation on recent past workload. SEALS’s backend uses eBPF functions hooked to CFS to carry out the learned policies sent from the user space to inform scheduling decisions in the kernel. This report will provide details of SEALS design. We evaluate SEALS extensively using production FaaS workloads collected from Huawei and Azure platforms. Results show that SEALS achieves a reduction of 57.2% in average function duration, compared to CFS.

Committee:

  • Haiying Shen, Committee Chair, (CS, ECE/SEAS/UVA)
  • Yue Cheng, Advisor (CS/SEAS, SDS/UVA )
  • Geoffrey Fox (CS, Biocomplexity/SEAS/UVA ) 
  • Chang Lou (CS/SEAS/UVA)