关于负载均衡:单机-T-级流量转发吞吐提升-5-倍可编程负载均衡网关-10-上线

36次阅读

共计 3070 个字符,预计需要花费 8 分钟才能阅读完成。

一、背景

负载平衡网关是云计算网络的一个要害基础设施,为云计算各利用业务提供高性能的转发性能。

目前云计算网关广泛是基于 X86 CPU + DPDK 通用服务器平台的状态实现。百度智能云自研的 BGW(BaiduGateWay)四层负载平衡网关 2012 年开始应用,从最后的单机 10Gbps 吞吐演进到目前单机 200Gbps,是一种云计算网络中用量最多的网关。

随着百度智能云业务的倒退,对负载平衡网关提出了新的需要与挑战:

  • 单核计算能力受限。为了避免报文乱序,须要同一条业务流调度到同一个网关的同一个 CPU 核上解决。因为 CPU 单核能力已根本进行晋升,因而单流的极限吞吐能力发展缓慢。现在,即便采纳最新的 CPU,单流的理论吞吐能力也仅能做到 10-20Gbps,而这一数据也只是现实状况下的最优后果。

    如果两个或更多的大流量被同时调度到同一个 CPU 核上,因为解决能力的限度,那么会因争抢 CPU 引起相互影响而升高业务整体吞吐量;更坏状况下,该 CPU 核上解决的其余流量也会受到影响,可能导致概率性的丢包。

  • 时延不稳固。应用 CPU 软件解决绝对于硬件转发而言,通常有较高的时延。在软件网关上,一个报文的解决流程要通过以下步骤:从网卡接管开始,通过 PCIe 送到 CPU 上的 DPDK 驱动,而后网关软件再做业务逻辑解决,之后提交给 DPDK 驱动,最初通过 PCIe 下发到网卡上再发送进来。

    从实测后果来看,以后百度智能云的软件网关在个别负载程度下的报文均匀解决时延通常在 30-50us,转发负载较高时 100us 以上的长尾时延也很常见,极其状况甚至会呈现 ms 级的时延。另外时延稳定和 CPU 缓存的理论命中状况密切相关,难以预期。较大时延稳定尺度对于跨机房或跨地区的通信个别没什么本质影响,然而对于强依赖同机房内低时延的业务来说拜访的影响却较大。

  • 大带宽场景的 TCO(Total Cost of Ownership)较高。只管 CPU 的核数在一直晋升,然而在网关这种重 I/O 吞吐的业务上,软件解决报文的能力并不能随着 CPU 核数线性晋升。例如,应用 64 物理核的 AMD Milan 服务器上运行 BGW,当 32 核以上减少 CPU 核数,对整体吞吐则没有显著的减少。这一景象和以后 CPU 的微架构(尤其是 L3 缓存)强相干。

    实际上以后软件网关通常可承诺的带宽规格大抵上是 100-200G(如果只思考大包也能做到 400G)。如果须要一个网关的集群撑持 10T 带宽,那么即便在不思考冗余的状况下,也须要部署 50-100 台服务器。

综上所述,基于 X86 CPU 通用服务器的软件网关,随业务量的减少和深度应用单网关性能将无奈进一步满足需要,吞吐性能晋升艰难,同时无奈解决高负载时延时大幅减少、易抖动,大流量时打满 CPU 造成丢包等问题。

二、解决方案

为了应答一直倒退的业务需要,百度智能云打造了第三代可编程网关平台 — UNP(Universal Networking Platform)。UNP 平台将 X86 CPU、可编程替换芯片、FPGA 加速卡交融在一起,造成一个可扩大的异构交融网关平台。相比 X86 软件网关平台该 UNP 具备如下劣势:

  • 可编程替换芯片可提供 T 级别的带宽吞吐能力;
  • 通过硬件网络芯片 + X86 CPU 同时反对硬件网关和传统软件网关的运行,提供弱小的灵活性和超交融能力;
  • 通过扩大插槽提供更多硬件加速扩大能力。

通过引入 UNP 平台可充分发挥软硬一体化的技术劣势,百度智能云在 2023 年 1 月推出了可编程负载平衡 UNP-BGW 网关 1.0,无效解决了负载平衡网关中的大带宽、大象流、低提早等问题需要,为负载平衡网关带来如下收益:

  • 通过软硬联合、session 表硬件 offload 卸载晋升网关吞吐的性能,能够提供单网关 T 级大带宽,同时大幅升高网关用量老本。
  • 升高网关产品的网络提早、解决高负载场景下网关丢包和抖动问题。

可编程负载平衡 UNP-BGW 网关 1.0 次要分两局部,X86 网关局部和可编程替换芯片局部。

X86 局部仍然应用 DPDK 的计划解决管控配置、路由转发管制、session 治理和非 offload 的报文负载平衡性能转发,独自从这个角度来看,相似部署了一台双 NUMA 的 X86-BGW。

路由的外围管制原理如下图所示,两个 NIC 网卡以规范网卡的模式呈现在用户空间,它的另外一端直连可编程替换芯片。图中 Vnic0 ~ VnicN 是应用可编程替换芯片提供的驱动生成的虚构网络设备,这些设施的次要作用有两个:收发路由报文和抓包诊断:

  • 发送和接管 BGP 路由协定相干的数据包,与交换机造成路由关系,将流量引入这台设施;
  • 在须要进行抓包时,把端口进入的流量镜像一份,送给 X86 用户空间虚构网络设备,能够抓包排查问题。

数据转发解决的原理如下图所示,绝对于一般 X86-BGW,UNP-BGW 转发分成两条门路:

  • Fast-Path:疾速门路,命中 session 的流量由 ASIC 可编辑硬件转发,提供硬件 T 级别的转发能力和 us 级的低时延;
  • Slow-Path:慢速门路,未命中 session 的流量上送 CPU,按配置指令决策是否下发 session 走疾速门路。

对于一条业务流的第一个建设连贯的报文,UNP-BGW 接管到之后,ASIC 查问本硬件没有 session 时,会走 Slow-Path 并上送 CPU 做新建 session 解决。

BGW 定期获取 session 流量统计,当这条流转发稳态达到肯定工夫,且带宽 bps 或者 pps 达到指定阈值时,BGW 断定此流为大象流,并将此 session 下发到 ASIC 可编程硬件做 session offload。

当连贯被动断开或者无流量导致超时,CPU 会及时老化掉 ASIC 可编程硬件的 session,以便硬件资源的正当应用。

相比传统的软件网关,UNP-BGW 1.0 具备如下产品特点:

  • 容量:单机带宽吞吐扩充 5 倍以上,200Gbps 降级为大于 1Tbps 能力;
  • 时延:均匀转发时延升高 20 倍以上,高负载时 100us 降至稳固小于 4us 无抖动,转发更疾速;
  • 丢包率:十万分之一降至数亿分之一,网络更牢靠;
  • 老本:实现了单机转发能力的晋升,承接更大规模流量时能够缩小部署老本;
  • 能耗:所需部署机器的缩小,T 级别吞吐时整体能耗降落 50% 以上,实现碳减排。

典型案例

某读写存储的业务用户常常有单条大象流(带宽 15Gbps 左右)的读业务数据申请,应用 X86-BGW 软件网关集群时,导致单网关上 CPU 使用率高达 90%,影响了其余业务的转发解决。

当用户切换到 UNP-BGW 网关后,同业务读写条件下单条大象流还能晋升到 16Gbps,流量 offload 后单 CPU 的使用率不到 1%。

可编程负载平衡 UNP-BGW 网关 1.0 带来了带宽、时延、丢包率等性能指标的大幅晋升,该产品曾经用于减速对象存储 BOS 服务,大家能够进入到百度智能云官网的服务网卡产品页面中,在创立服务网卡时抉择 BOS 接入点应用。

可编程负载平衡 1.0 版本网关因 ASIC 硬件的存储空间仅几百 Mb,session 表容量无限,能够通过扩大 FPGA 加速卡晋升大表项能力,进一步的晋升可编程负载平衡能力。

百度智能云正在减速推出 UNP-BGW 2.0 版本,具备更高 offload 卸载能力,满足高带宽千万级 session 负载平衡需要。

– – – – – – – – – – END – – – – – – – – – –

举荐浏览:

百度工程师挪动开发避坑指南——内存透露篇

增强型语言模型——走向通用智能的路线?

基于公共信箱的全量音讯实现

百度 APP iOS 端包体积 50M 优化实际 (二) 图片优化

浅论分布式训练中的 recompute 机制

分析多利熊业务如何基于分布式架构实际稳定性建设

正文完
 0