1. 介绍
随着互联网流量的持续快速增长,作为网络的基本底层组件,网络协议栈成为加速网络性能的关注焦点。为了维护和提高增加带宽的性能,业界推出了多种网络协议栈加速解决方案,从内核态优化到用户空间协议栈部署不一而足。
作为传输层,网络协议栈是应用空间和网络空间之间的中间层。出于安全和软件分层设计考虑,应用空间和网络空间通常是隔离的,因此,对于内核态或者用户态网络协议栈,内存拷贝是目前广泛的实现方式。为了应对行业挑战,第四代英特尔® Xeon® Scalable处理器嵌入了DMA引擎,以加速网络协议栈中的内存拷贝。
本指南以开源项目FD.io VPP网络协议栈为例,演示了基于最新的第四代英特尔® Xeon® Scalable处理器和英特尔®数据流加速器(Intel® DSA)的内存拷贝加速效益。我们还描述了帮助实现此性能的软件API接口。
本文档旨在面向通信服务提供商或任何希望改善其网络协议栈性能的开发团队。本文档展示使用VPP网络协议栈的改进方案,这里采用的技术也可作为改善其他用户空态甚至内核态主机协议栈部署性能的参考方案。
本文件为:Network Transformation Experience Kits.
作者:虞平 刘勇 王俊峰 裘鹏泽 约翰-迪吉里奥 弗罗林-科拉斯
1.1 Terminology
表1.Terminology
1.2 Reference Documentation
表2.Reference Documentation
2. 概述
本文档分析并确定了在内核以及用户态协议中,通常都存在的内存拷贝瓶颈,然后展示了如何基于最新的第四代Intel Xeon可扩展处理器,通过加速内存拷贝,显著提高TCP协议栈性能。
Intel为加速网络协议栈推出的多种技术,包括Intel® I/O Acceleration Technology(Intel® I/OAT)以及Intel Data Streaming Accelerator(Intel DSA)的内存拷贝加速技术。为了帮助软件更好地利用硬件能力,在用户空间和内核空间分别提供了dmadev和wq API接口。我们使用内存拷贝加速技术优化了FD.io VPP网络协议栈,可为HTTP流量实现显著的性能提升。在我们的实验中,包含的软硬件配置包括:
一台配备最新的Intel Xeon可扩展处理器和Intel Data Streaming Accelerator(Intel DSA)的系统。
两个Intel® Ethernet Network Adapter E810-CQDA2 PCIe 4.0网络接口卡ÿ