龙蜥白皮书精选:面向 DPU 场景的软硬协同协议栈_网络协议栈

文/陆扬、施威



01

背景概述 

随着数据中心网络带宽的大幅提升和时延的不断下降,传统基于以太网的 TCP 协议栈面临着新的挑战。此时传统的以太网卡和 TCP 协议栈已不能满足其对于网络吞吐、传输时延和增效降本的要求。与此同时云、硬件厂商提供了高性能 DPU 解决方案,因此需要一个高性能的软硬协同网络协议栈,对下适配 DPU 并充分发挥硬件性能,对上支撑大规模云上应用场景,开发部署和运维友好,兼容主流的云原生等业务架构。

02

技术方案  

共享内存通信 SMC 是由 IBM 首次贡献至 Linux 社区,并由龙蜥社区增强和维护的软硬协同的高性能协议栈。针对 不同的规模场景、硬件和应用模型 ,SMC 提供多位一体的方案以解决当前传统协议栈的问题:

  • 借助云厂商 VPC 或者数据中心 RDMA,实现不同规模和场景下的高性能通信,支撑不同的业务规模和场景。 
  • 兼容 RDMA verbs 生态,实现协议栈卸载至硬件,提升网络性能,降低 CPU 资源使用,支持多种硬件。 
  • 透明替换网络应用,SMC 完全兼容 TCP socket 接口,并可快速回退 TCP。
  • 使用统一高效的共享内存模型,借助硬件卸载实现高性能的共享内存通信。

龙蜥白皮书精选:面向 DPU 场景的软硬协同协议栈_协议栈_02

03

技术优势 

1、透明加速传统 TCP 应用,对于应用程序、运行环境镜像、部署方式无侵入,对 DevOps 和云原生友好。

2、 DPU 软硬协同的网络协议栈,更高的网络性能和更低的资源使用。

3、Linux 原生支持的标准化、开源的网络协议栈,SMC-R 实现自 IETF RFC7609,由社区共同维护。

04

应用场景 

SMC 是一个 Linux 内核原生支持的通用高性能网络协议栈,支持 socket 接口和快速回退 TCP 的能力,任何 TCP 应用均可实现透明替换 SMC 协议栈。由于业务逻辑与网络开销占比的差异,不同应用的加速收益存在差异。下面是几个典型的应用场景和业务最佳 实践: 




  • 内存数据库,Redis 和部分 OLAP 数据库,Redis QPS 最高提升 50%,时延下降 55%。







  • 分布式存储系统,云原生分布式存储 Curve 在 3 volume 256 depth randwrite 场景下性能提升18.5%。






  • Web service,NGINX 长链接下 QPS 最高提升 49.6%,时延下降 55.48%。


总的来说,使用 SMC 协议栈可以提高 TCP 应用的性能,减少时延,提高 QPS,并且不需要修改应用程序代码。但是,加速效果受到业务逻辑和网络开销占比的影响,不同应用的加速效果存在差异。在一些特定的应用场景下,如高性能计算,大数据等,使用 SMC 协议栈能够带来显著的性能提升。


性能透明提升 50%!SMC + ERDMA 云上超大规模高性能网络协议栈

附:

2022 龙蜥社区全景白皮书 (或公众号回复关键字“白皮书”获取)

https://openanolis.cn/assets/static/openanoliswhitepaper.pdf

—— 完 ——




微信公众号 - OpenAnolis龙蜥(OpenAnolis)。