中文

Eiffel:高效且灵活的软件包调度

网络与互联网体系结构 2018-10-09 v1

摘要

包调度根据由调度策略规定的某种排序函数,确定排队数据结构中数据包的次序。它是近来许多优化网络性能与利用率创新的核心组件。本文关注软件中包调度的设计与部署。软件调度器相较硬件具有若干优势,包括更短的开发周期以及在功能与部署位置上的灵活性。我们通过利用包排序的底层特征——即包秩为整数,且在任意时刻落于有限的值域内——在保持灵活性的同时大幅提升了当前软件包调度的性能。我们提出 Eiffel,一种新颖的可编程包调度系统。Eiffel 的核心是一个基于查找首个置位(FFS)指令、旨在高效支持广泛策略与排序函数的整数优先队列。作为一种更高效的替代方案,我们还提出了一种新的近似优先队列,在特定场景下性能可超越基于 FFS 的队列。为支持灵活性,Eiffel 引入了新颖的编程抽象,以表达当前最先进调度器编程模型无法刻画的调度策略。我们在多种设置以及内核与用户空间部署中评估了 Eiffel。我们表明,在网络处理所用核心数或给定固定处理能力下的流数方面,其性能超越最先进系统 3–40 倍。

关键词

引用

@article{arxiv.1810.03060,
  title  = {Eiffel: Efficient and Flexible Software Packet Scheduling},
  author = {Ahmed Saeed and Yimeng Zhao and Nandita Dukkipati and Mostafa Ammar and Ellen Zegura and Khaled Harras and Amin Vahdat},
  journal= {arXiv preprint arXiv:1810.03060},
  year   = {2018}
}

备注

This paper is an extended version of the paper on Eiffel that will be published in USENIX NSDI 2019