在云计算环境中,存在多种不同类型的流量,常见的有网络、存储、计算流量,为了保障不同流量的服务QoS,会对物理带宽进行分配管理。QoS统计模块的核心功能是根据不同流量类型执行一系列流量管理操作。传统的带宽QoS管理是一级,根据QoS配置,判断每种流量的带宽是否超限,不超限就转发,超限就丢弃,如图1所示。
图1 传统的一级QoS带宽管理方式
以25G×2的DPU网卡配置为例,总带宽为50G,一般分配方案为网络32G,存储16G,计算2G。这种静态带宽分配方式在某些情况下可能会导致资源的浪费和性能下降。例如,当某种流量超过分配的阈值时,虽然其他流量较少,但仍会被强制丢弃,导致总流量未能充分利用DPU网卡的物理带宽资源。如下图2所示,网络带宽35G、存储带宽10G、计算带宽3G的情况下,尽管总带宽未达到50G上限,传统的静态带宽分配方式仍会强制丢弃3G的网络带宽和1G的计算带宽。
图2 DPU场景传统带宽分配方式带来的带宽资源浪费
这种静态带宽分配方式存在以下问题和缺点:
1、流量的需求可能会动态变化,但静态分配无法适应这种变化。当某种类型的流量超出其分配的带宽时,系统可能不具备智能机制来动态重新分配带宽以满足需求。
2、浪费带宽资源,尽管总体带宽未被完全利用,某些流量仍可能因为超过静态分配的阈值而被丢弃。
本文提供了DPU场景下,物理带宽配额管理的优化方法。本方案将带宽管理分成两级,不会根据限速直接丢弃流量,而是在限速阶段,根据流量情况进行打标,发送阶段再根据打标情况和物理网卡实际负荷进行转发或丢弃。其具体实现如下。
(1)QoS统计模块,根据流量类型,查看对应的token。如果有足够的token,流量放行,打标绿色,如果token不足,流量不直接丢弃,仅打标黄色。
以25G×2的配置为例,总带宽为50G,网络、存储、计算配额分别为32G、16G、2G,下表对比了本发明与传统的配额方法在不同流量情况下,是否能够完全传输所有流量。
表1 DPU场景本发明与传统配额方法对比
网络流量 |
存储流量 |
计算流量 |
传统配额方法 |
优化配额方法 |
30G |
15G |
1G |
√ |
√ |
35G |
10G |
3G |
× |
√ |
25G |
20G |
2G |
× |
√ |
20G |
20G |
8G |
× |
√ |
35G |
25G |
2G |
× |
× |
(2)tx模块,在报文从物理网卡真正发送出去的时候,查看报文打标,如果是绿色,直接发送;如果是黄色,判断物理网卡实际负荷,如果负荷不满,仍然可以转发,只有负荷满的情况,才会真实丢弃。
综上所述,采用优化方案后,DPU物理带宽利用率显著提升。