龙蜥白皮书精选:面向 DPU 场景的软硬协同协议栈
文/陆扬、施威
01 背景概述
随着数据中心网络带宽的大幅提升和时延的不断下降,传统基于以太网的 TCP 协议栈面临着新的挑战。此时传统的以太网卡和 TCP 协议栈已不能满足其对于网络吞吐、传输时延和增效降本的要求。与此同时云、硬件厂商提供了高性能 DPU 解决方案,因此需要一个高性能的软硬协同网络协议栈,对下适配 DPU 并充分发挥硬件性能,对上支撑大规模云上应用场景,开发部署和运维友好,兼容主流的云原生等业务架构。
02 技术方案
共享内存通信 SMC 是由 IBM 首次贡献至 Linux 社区,并由龙蜥社区增强和维护的软硬协同的高性能协议栈。针对不同的规模场景、硬件和应用模型,SMC 提供多位一体的方案以解决当前传统协议栈的问题:
借助云厂商 VPC 或者数据中心 RDMA,实现不同规模和场景下的高性能通信,支撑不同的业务规模和场景。
兼容 RDMA verbs 生态,实现协议栈卸载至硬件,提升网络性能,降低 CPU 资源使用,支持多种硬件。
透明替换网络应用,SMC 完全兼容 TCP socket 接口,并可快速回退 TCP。
使用统一高效的共享内存模型,借助硬件卸载实现高性能的共享内存通信。
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 协议栈能够带来显著的性能提升。
相关阅读:
系列解读SMC-R(一):透明无感提升云上 TCP 应用网络性能
系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信
性能透明提升 50%!SMC + ERDMA 云上超大规模高性能网络协议栈
附:
2022 龙蜥社区全景白皮书(或关注公众号回复关键字“白皮书”获取)
https://openanolis.cn/assets/static/openanoliswhitepaper.pdf
—— 完 ——
版权声明: 本文为 InfoQ 作者【OpenAnolis小助手】的原创文章。
原文链接:【http://xie.infoq.cn/article/9fb25c25f05ee7da33d59968c】。文章转载请联系作者。
评论