本发明属于网络通信,具体涉及一种报文分发决策方法和装置。
背景技术:
1、dpu即数据处理单元,dpu系统是一种专门用于处理数据的硬件和软件集成系统,dpu系统中包含多个core(处理器核心)用于处理网络报文数据,并且每个core拥有独立的报文缓存队列,以实现无锁化编程,每个core在进行报文处理时,通常包含多个不同的处理步骤,同时包含多级缓存队列,并且每个处理步骤存在前后依赖关系,即:step1从队列q1读取数据,处理后存入队列q2;step2从队列q2读取数据,处理完后存入队列q3;以此类推,stepm-1从qm-1读取数据,处理完成后存入队列qm;每一个步骤的执行时间可提前预估,dpu系统包含一个报文分发模块,报文分发模块用于将接收到的报文分发到各个core进行业务处理。
2、现有技术中dpu操作系统无法有效地将任务均衡的分配给各个核心,导致一些核心负载过重,而其他核心处于空闲状态,在负载不平衡的情况下,负载过重的核心可能会消耗更多的能量,而空闲核心则浪费能源,这样的能耗不均衡导致系统的整体能耗增加,造成资源浪费,同时处理负载过重的核心需要更长的时间来完成任务,从而导致整体的响应时间延迟。
3、因此,需要一种报文分发决策方法和装置,解决现有技术中存在的dpu操作系统无法平衡各个core之间业务负载的问题。
技术实现思路
1、本发明的目的在于提供一种报文分发决策方法和装置,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种报文分发决策方法和装置,以下步骤:
3、s1、各个core统计上一个周期的core空闲率i_last;
4、s2、将core空闲率i_last反馈给报文分发模块进行报文分发决策;
5、s3、在分发决策周期边界实时获取各个core各级缓存队列占用空间数量,并根据队列所处位置不同,计算core在下一个周期内的预估处理时间,
6、tpre=q1*a1+q2*a2+…+qm-1*am-1,其中,q1~qm-1为缓存队列待处理报文数,a1~am-1为core每一个报文处理步骤消耗时间相关的可调系数,假设每个报文执行完所有步骤消耗时间为s,单个处理步骤消耗的处理时间分别为s1~sm-1,
7、并且s=s1+s2+…+sm-1,则a1=(s1+s2+…+sm-1)/s=1,a2=(s2+…+sm-1)/s,…,am-1=(sm-1)/s;
8、s4、计算core在下一个周期的预测空闲率,i_pre=(t-tpre)/t;
9、s5、参考core上一个周期空闲率的实测值i_last,与core队列缓存对下一个周期的处理时间预估值i_pre做加权补偿,计算补偿后的下一个周期内core的空闲率预估值,i_curr=i_last*k+(1-k)*i_pre;
10、s6、上一周期空闲率预估值偏差比例offset=(i_curr-i_last)/i_last,偏差值用于在当前周期微调加权系数k,k=k+i_offset;
11、s7、综合所有core下一个周期内的空闲率估计,计算报文分发周期内分发给corex的报文比例:n_prex=i_currx/(i_curr1+i_curr2+…+i_currx+…+i_currn);
12、s8、分发模块统计当前接收到的报文总数p_all和已分发给各个core的报文数量p,并计算已分发比例n_currx=p/p_all;
13、s9、当某个core已分发比例n_curr>=n_pre,则停止向该core分发报文;
14、s10、当一个或多个core已分发比例满足条件n_curr<n_pre,则对满足条件的core根据n_curr进行排序,并按照由大到小的顺序等比例分发报文;
15、s11、当所有core已分发比例都满足条件n_curr>n_pre,则分发周期内剩余报文依次等比例顺序送入各个core队列。
16、方案中需要说明的是,所述步骤一至步骤七为决策周期。
17、进一步值得说明的是,所述步骤八至步骤十一为分发周期。
18、更进一步需要说明的是,所述i_last为上一个时间周期内,各个cpu核心的空闲率的百分比。
19、作为一种优选的实施方式,所述各个core队列在报文分发过程中,被持续监控其状态和性能指标。
20、作为一种优选的实施方式,提出一种报文分发决策装置,用于实现如上述的一种报文分发决策方法,包括:
21、流量监测模块,所述流量监测模块负责监测网络流量;
22、流量分类模块,所述流量分类模块根据数据包的特征将流量进行分类;
23、策略管理模块,所述策略管理模块负责管理分发策略;
24、决策制定模块,所述决策制定模块根据流量分类和策略管理的结果,决定每个数据包的下一步操作;
25、qos管理模块,所述qos管理模块管理模块负责管理不同类型的流量所应用的服务级别;
26、安全性管理模块,所述安全性管理模块负责管理安全策略,包括访问控制、防火墙规则、入侵检测等;
27、动态调整模块,所述动态调整模块负责根据网络流量和条件的变化,动态调整分发策略和决策;
28、报告和日志模块,所述报告和日志模块负责生成报告和记录日志,以记录流量分发决策的结果、性能指标和安全事件。
29、作为一种优选的实施方式,所述流量监测与网络接口卡或者其他网络设备交互。
30、作为一种优选的实施方式,所述报告和日志模块提供用户与报文分发装置进行交互的接口。
31、与现有技术相比,本发明提供的一种报文分发决策方法和装置,至少包括如下有益效果:
32、(1)通过周期性地观测core利用率及报文缓存队列,对下一个周期的core利用率进行迭代估计,并将估计结果作为报文分发的参考依据,从而准确地将报文均匀地散列到不同的core,在流量较大时,根据估计的处理能力进行报文分发,尽可能减少丢包发生;在流量较小时,通过均匀地将报文分散到不同core进行处理,降低报文的排队等待时间,降低单个报文处理的延迟。
33、(2)通过平衡各个core之间的业务负载,可以避免某些核心负载过重而导致性能瓶颈的出现,有助于充分利用系统资源,提高系统整体的处理能力和吞吐量,同时负载均衡可以有效地分配和利用系统资源,避免不必要的资源浪费和能源消耗,通过合理调度任务,降低系统的功耗,节约能源成本。
1.一种报文分发决策方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种报文分发决策方法,其特征在于:所述步骤一至步骤七为决策周期。
3.根据权利要求1所述的一种报文分发决策方法,其特征在于:所述步骤八至步骤十一为分发周期。
4.根据权利要求1所述的一种报文分发决策方法,其特征在于:所述i_last为上一个时间周期内,各个cpu核心的空闲率的百分比。
5.根据权利要求1所述的一种报文分发决策方法,其特征在于:所述各个core队列在报文分发过程中,被持续监控其状态和性能指标。
6.根据权利要求1所述的一种报文分发决策装置,其特征在于,用于实现如权利要求1-5任一项所述的一种报文分发决策方法,包括:
7.根据权利要求6所述的一种报文分发决策装置,其特征在于:所述流量监测与网络接口卡或者其他网络设备交互。
8.根据权利要求6所述的一种报文分发决策装置,其特征在于:所述报告和日志模块提供用户与报文分发装置进行交互的接口。
