5.2 软硬件协同
5.2.1 面向DPU场景的软硬协同协议栈
背景概述
随着高性能计算、机器学习和大数据等技术的广泛使用,对于云VPC、数据中心内的网络提出了更加苛刻的要求。此时传统的以太网卡和TCP协议栈已不能满足其对于网络吞吐、传输时延和增效降本的要求。与此同时云、硬件厂商提供了高性能DPU解决方案,因此需要一个高性能的软硬协同网络协议栈,对下适配DPU并充分发挥硬件性能,对上支撑大规模云上应用场景,开发部署和运维友
好,兼容主流的云原生等业务架构。
技术方案
共享内存通信SMC是由IBM首次贡献至Linux社区,并由龙蜥增强和维护的软硬协同的高性能协议栈。针对不同的规模场景、硬件和应用模型,SMC提供多位一体的方案以解决当前传统协议栈的问题:
(1)借助云厂商VPC或者数据中心RDMA,实现不同规模和场景下的高性能通信,支撑不同的业务规模和场景;
(2)兼容RDMA verbs生态,实现协议栈卸载至硬件,提升网络性能,降低CPU资源使用,支持多种硬件;
(3)透明替换网络应用,SMC完全兼容TCP socket接口,并可快速回退TCP;
(4)使用统一高效的共享内存模型,借助硬件卸载实现高性能的共享内存通信;
技术优势
(1)透明加速传统TCP应用,对于应用程序、运行环境镜像、部署方式无侵入,对DevOps和云原生友好;
(2)DPU软硬协同的网络协议栈,更高的网络性能和更低的资源使用;
(3)Linux原生支持的标准化、开源的网络协议栈,SMC-R实现自IETF RFC7609,由社区共同维护;
应用场景
SMC是一个内核原生支持的通用高性能网络协议栈,支持socket接口和快速回退TCP的能力,任何TCP应用均可实现透明替换SMC协议栈。由于业务逻辑与网络开销占比的差异,不同应用的加速收益存在差异。下面是几个典型的应用场景和业务最佳实践:
(1)内存数据库,Redis和部分OLAP数据库,Redis QPS最高提升50%,时延下降55%;
(2)分布式存储系统,云原生分布式存储Curve在3 volume 256 depth randwrite场景下性能提升18.5%;
(3)Web service,NGINX长链接下QPS最高提升49.6%,时延下降55.48%;