《PacketMill:每核100 Gbps网络(英文版)(17页).pdf》由会员分享,可在线阅读,更多相关《PacketMill:每核100 Gbps网络(英文版)(17页).pdf(17页珍藏版)》请在三个皮匠报告上搜索。
1、网络已经从僵化、专有和专用的硬件转向软件定义的网络(SDN)和网络功能虚拟化(NFV)。如今,许多网络设备都是用商用硬件实现的,网络功能越来越由软件驱动。这些平台的灵活性和可编程性导致了许多软件网络解决方案的出现(例如,开放式vSwitch(OVS)、基于点击的框架、BESS和向量包处理(VPP)。不幸的是,由于摩尔定律的消亡和Dennard scaling对商品硬件性能的限制,数百千兆网络设备的引入和电信带宽的急剧增加使商品硬件的性能变得紧张。虽然许多人试图通过现代硬件(如P4体系结构和现代/可编程网络接口卡(NIC)引入网络内处理,以解决性能限制,但许多网络功能通过非专用模块化软件部署在商
2、品硬件上,由于爱立信、思科和英特尔正在推广基于软件的数据包处理。不幸的是,软件驱动的网络解决方案以较低的性能为代价。软件驱动网络以几百比特的速率处理数据包时,有两个关键的性能限制因素:(i)网络框架的通用性和模块化导致代码效率低下;以及(ii)次优的元数据管理。我们的目标是生成一个优化的二进制可执行文件,同时保持高级别的模块化和灵活性,而不是依赖于手写汇编代码。本文表明,执行有效的元数据管理(专门化数据平面开发工具包(DPDK)缓冲区)和采用代码优化(最小化不必要的内存访问、提高缓存局部性等)有助于在商用硬件上实现100gbps及以上基于软件的包处理的目标。我们设计、构建和评估一个名为Pack
3、etMill的系统,以优化一个流行的模块化框架的性能,该框架用于在商品硬件上构成复杂的网络功能。PacketMill提出了一种新的元数据管理模型,该模型在使用DPDK时实现了定制的缓冲区,而不是依赖于通用的rtembuf结构。更具体地说,PacketMill利用定义网络函数(NF)的已知信息,即输入处理图,来减轻虚拟调用,改进常量传播和常量折叠,并重新排序模块化软件处理框架中常用的数据结构。我们的评估结果表明,PacketMill不仅改进了微体系结构度量(即,它减少了缓存未命中),而且还改进了以100gbps速度运行的网络功能的应用程序级度量(即,它减少了延迟并提高了吞吐量)。图1演示了当路由
4、器使用运行在2.3ghz的单核转发数据包时,PacketMill可以提高100gbps的数据包处理速度。更具体地说,我们提出的模型和技术改变了尾部延迟与吞吐量曲线的拐点,即即使在负载更高的情况下也能实现更低的延迟。PacketMill的改进不仅限于单核NFs。我们的主要见解是,100 Gbps的高效数据包处理需要整体系统优化,特别是对整个软件堆栈进行优化,以压缩硬件的每一点性能。我们相信我们是第一个(i)实证研究/优化数据包处理的元数据管理模型和(ii)提倡低级别优化的重要性,以接近100-Gbps的速率处理只有一个核心的数据包。虽然我们专注于优化一个特定的框架,但我们的结果和技术在其他对纳秒级和微秒级改进感兴趣的性能敏感环境中应该是有用的。我们认为,我们的工具可以作为进一步研究优化软件包处理框架和更广泛地研究网络应用程序的起点。此外,我们的优化技术可以与现代NIC结合使用。