1.本发明涉及网络流控技术领域,尤其涉及一种内存阻塞平衡方法、装置、电子设备和计算机存储介质。
背景技术:
2.roce(rdma over converged ethernet)规范主要依靠基于优先级的流量控制算法(priority-based flow control,pfc)实现无损丢包。pfc在基础流量控制ieee 802.3x协议上进行扩展,其支持在交换机内存中创建八个虚拟内存通道,在发送队列和接收缓冲队列中分别为每个虚拟内存通道制定相应的优先级;pfc支持独立暂停或重启任意一条通道,也支持其它优先级链路中的流量无中断通过,以防止出现整条链路被全部暂停的情况。
3.相关技术中,为了避免因交换机内存溢出而引发的数据包丢失,roce规范下交换机须启用基于优先级的流量控制算法,通过对链路上流量的控制,减少对交换机内存的压力,从而实现端到端的无损转发。由于pfc优先服务高优先级数据包,低优先级数据包在其接收缓冲队列中排队等待服务,队头数据包因等待服务台而产生队头阻塞,使得低优先级数据包的接收缓冲队列长度将受到影响,进而,容易发生内存阻塞的问题。
技术实现要素:
4.本发明提供一种内存阻塞平衡方法、装置、电子设备和计算机存储介质。
5.本发明的技术方案是这样实现的:
6.本发明提供了一种内存阻塞平衡方法,所述方法包括:
7.获取交换机内存的数据包;
8.根据所述数据包的优先级,将所述数据包放入到目标队列;所述目标队列为第一优先级队列或第二优先级队列;所述第一优先级队列的优先级高于所述第二优先级队列的优先级;
9.在处理所述数据包的各服务台均被占用,且存在所述第二优先级队列的数据包被处理的目标服务台时,确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率;
10.基于所述处理概率,对所述交换机的内存阻塞进行平衡。
11.在一些实施例中,所述确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率,包括:
12.基于忽视因子α,确定所述处理概率;
13.所述忽视因子α用于表示在所述第一优先级队列数据包到来时,所述目标服务台继续处理所述第二优先级队列的数据包的概率;α大于零且小于1。
14.在一些实施例中,所述基于忽视因子α,确定所述处理概率,包括:
15.确定所述目标服务台的数量;
16.基于所述忽视因子α和所述目标服务台的数量,确定所述处理概率。
17.在一些实施例中,所述处理所述数据包的各服务台的数量为2。
18.在一些实施例中,所述处理所述数据包的各服务台均被占用的状态包括以下任一项:
19.两个服务台均被所述第一优先级队列的数据包占用;
20.两个服务台均被所述第二优先级队列的数据包占用;
21.一个服务台被所述第一优先级队列的数据包占用,另一个被所述第一优先级队列的数据包占用。
22.本发明提供一种内存阻塞平衡装置,所述装置包括:
23.获取模块,用于获取交换机内存的数据包;
24.第一处理模块,用于根据所述数据包的优先级,将所述数据包放入到目标队列;所述目标队列为第一优先级队列或第二优先级队列;所述第一优先级队列的优先级高于所述第二优先级队列的优先级;
25.第二处理模块,用于在处理所述数据包的各服务台均被占用,且存在所述第二优先级队列的数据包被处理的目标服务台时,确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率;
26.平衡模块,用于基于所述处理概率,对所述交换机的内存阻塞进行平衡。
27.在一些实施例中,所述第二处理模块,用于确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率,包括:
28.基于忽视因子α,确定所述处理概率;
29.所述忽视因子α用于表示在所述第一优先级队列数据包到来时,所述目标服务台继续处理所述第二优先级队列的数据包的概率;α大于零且小于1。
30.在一些实施例中,所述第二处理模块,用于基于忽视因子α,确定所述处理概率,包括:
31.确定所述目标服务台的数量;
32.基于所述忽视因子α和所述目标服务台的数量,确定所述处理概率。
33.在一些实施例中,所述处理所述数据包的各服务台的数量为2。
34.在一些实施例中,所述处理所述数据包的各服务台均被占用的状态包括以下任一项:
35.两个服务台均被所述第一优先级队列的数据包占用;
36.两个服务台均被所述第二优先级队列的数据包占用;
37.一个服务台被所述第一优先级队列的数据包占用,另一个被所述第一优先级队列的数据包占用。
38.本发明提供一种电子设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述一个或多个技术方案提供的内存阻塞平衡方法。
39.本发明提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后能够实现前述一个或多个技术方案提供的内存阻塞平衡方法。
40.本发明提供一种内存阻塞平衡方法、装置、电子设备和计算机存储介质,所述方法包括:获取交换机内存的数据包;根据所述数据包的优先级,将所述数据包放入到目标队
列;所述目标队列为第一优先级队列或第二优先级队列;所述第一优先级队列的优先级高于所述第二优先级队列的优先级;在处理所述数据包的各服务台均被占用,且存在所述第二优先级队列的数据包被处理的目标服务台时,确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率;基于所述处理概率,对所述交换机的内存阻塞进行平衡;如此,当各服务台均被占用,且存在第二优先级队列的数据包被处理的服务台时,第一优先级队列的数据包将不再拥有完全优先权,即,增加了第二优先级队列的数据包被处理的可能性;能够保证第一优先级队列服务质量的同时,减少第二优先级队列的数据包排队等待服务台处理的时间,进而,降低第二优先级队列发生内存阻塞的概率。
附图说明
41.图1a为相关技术中pfc流量控制的流程示意图;
42.图1b为相关技术中二层和三层以太网封装数据包和控制包头部结构的示意图;
43.图1c为相关技术中增强传输/优先队列(enhanced transmission selection/priority queue,ets/pq)算法出队过程控制的示意图;
44.图1d为相关技术中远程直接数据存取(remote direct memory access,rdma)网络中吞吐量随丢包率变化的示意图;
45.图1e为相关技术中数据包在交换机中逗留时间的示意图;
46.图1f为相关技术中优先级排队系统中高低优先级数据包等待时间的示意图;
47.图2为本发明的内存阻塞平衡方法的流程图;
48.图3a为本发明中基于优先级的交换机排队系统的示意图;
49.图3b为本发明中基于优先级的双队列排队系统模型的状态转移的示意图;
50.图4为本发明的内存阻塞平衡装置的组成结构示意图;
51.图5为本发明提供的电子设备的结构示意图。
具体实施方式
52.下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述。
53.pfc在ieee 802.1qbb标准中被定义,图1a为相关技术中pfc流量控制的流程示意图,如图1a所示,pfc将流量控制的粒度面向物理端口细化到八个虚拟通道,即在交换机端口的八个内存缓冲队列进行分配,构建虚拟化通道,同时数据流中的数据包预先配有相应优先级标签(802.1p标识),内存容量限制使得各接收缓冲队列拥有不同的数据排队等待能力。
54.一旦接收缓冲队列的队列长度达到了xoff阈值,交换机会在本端产生pfc暂停帧并通过优先级标识从相应通道向上联交换机发送。在上联交换机出口队列接收到pfc暂停帧时立刻停止数据包转发。发送端口等待time[n]时间后恢复发送或再次暂停,默认之外的另一种恢复方式是,一旦本端交换机内存接收缓冲队列长度小于xon阈值,会向上联发送一个0持续时间的恢复帧给发送队列以恢复传输。其中,xoff值必须保证接收缓冲队列不为满,因为此时交换机内存不允许再写入,该链路将产生大量丢包;xon值必须保证接收队列不为空,因为此时内存将无数据读取,而上联转发端口仍被暂停。
area network,san)流量的pg1及代表ipc流量的pg15这三种优先级组。其中由于pg15承载ipc通信流量,多被应用于rdma,对延时要求很高,因此调度方式为pq。
[0061]
ets/pq算法与传输控制协议/网际协议(transmission control protocol/internet protocol,tcp/ip)网络下所使用的主动队列管理/随机早期检测(active queue management/random early detection,aqm/red)算法相似,其本质上也是一种内存队列调度管理算法。ets/pq算法处理规则是,对每个缓冲队列均采取先到先服务方式,相对较高的优先级缓冲队列中到来的数据包具有完全的优先权,即当高优先级到来时服务台将中断当前相对较低的优先级服务,从而保证高优先级数据流的超低延迟转发。然而对于相对低优先级的数据包来说,极端情况可能发生带宽饥饿的不良后果。
[0062]
图1c为相关技术中ets/pq算法出队过程控制的示意图,如图1c所示,高优先级缓冲队列中的数据包会优先得到服务,且服务顺序是i、p、a;当这些数据包被处理完后,服务台开始服务中优先级缓冲队列中的数据包,服务顺序是j、u、f、d;最后转向处理低优先级缓冲队列中的数据包e。
[0063]
由于以太网本质上是面向无连接的,无法保证数据包传输的可靠性。在交换机内存拥塞而产生丢包时,数据包无法转发到接收方,因此如果没有能提供流量控制的协议,就可能由于交换机内存拥塞导致丢失过多的数据包,带来业务质量的严重下降。图1d为相关技术中rdma网络中吞吐量随丢包率变化的示意图,如图1d所示,横坐标代表丢包率,纵坐标代表吞吐量;实线代表rdma写命令所传输的数据包;虚线代表rdma读命令所传输的数据包。图中可以看出,超过10-3
丢包率将导致网络吞吐量急剧下降,0.01丢包率将导致整个网络吞吐量下降为0,由于缺乏完善的丢包保护机制,对于以太网丢包异常敏感。因此要保证网络运行质量不受影响,丢包率至少应控制在0.001以下。
[0064]
为了避免因交换机内存溢出而引发的数据包丢失,roce标准规范下交换机须启用基于优先级的流量控制算法,通过对链路上流量的控制,减少对交换机内存的压力,从而实现端到端的无损转发。
[0065]
在rdma网络中,即使在使用最优化路由时,也可能出现数据流超出网络中交换机设备承受能力的情况。若不对数据流进行控制将导致队列长度的无节制增加,引起数据包的延迟增大甚至超出最大延迟指标,相关交换机内存缓冲可能发生溢出,丢包率增加。rdma是一种丢包敏感网络,低丢包将导致rdma性能严重受损。因此使用pfc流量控制对通过交换机的数据流进行限制,以提供无损转发保证。
[0066]
然而,对于每个pfc支持的交换机设备,都对数据包实行分级排队,多条队列共享交换机内存空间。交换机获取到达的数据包,接着需要检查数据内部的优先级值,根据不同的优先级别,将数据包送入不同的队列中,处理完后从转发端口输出。并在某优先级队列到达pfc门限值时暂停上游发送队列。在因某些原因形成的循环缓冲依赖中,由于互相等待队列释放内存资源,可能导致循环缓冲依赖中所有交换机发生内存永久阻塞,该路径网络吞吐量下降为0,pfc暂停帧还将沿数据流的来源方向向周围节点传播。
[0067]
其中,pfc内存永久阻塞更多得发生于低优先级队列。这是由于pfc优先服务高优先级数据包,低优先级流在其接收缓冲队列中排队等待服务,队头数据包因等待服务台而产生队头阻塞。为了说明这一现象,首先从延时方面进行分析。假设一个2*2端口架构交换机,两个接收端口各设置两个接收缓冲队列。假设网络中所有服务器节点均有效运行,数据
包到达后交换机通过地址解析协议(address resolution protocol,arp)表查询对应输出端口物理地址,根据优先级分配在不同的接收缓冲队列中排队,等待服务即交换到空闲的输出端口。图1e为相关技术中数据包在交换机中逗留时间的示意图,如图1e所示,对于单一队列而言,任意数据包在交换机中要经过以下三方面的延迟才能输出:1)数据包从进入端口到成为本端口接收缓冲队列队头前的等待时间。2)数据包在发送队列中等待至开始发送所花费的阻塞时间。3)数据包开始发送到发送完毕所需时间。由此可知数据包在交换机中的总时延为三部分时间的总和。从图中可以看出,影响数据包输出的主要时延来自于阻塞时间和等待时间。有别于内存阻塞的定义,阻塞时间的定义为数据包到达并排队等待后因为服务台正在为其它用户提供服务而不能为其立即提供服务,其虽然是队头但仍需等待的时间。因此,高优先级数据包延迟不受低优先级数据包影响,但低优先级数据包需考虑因高优先级到来而使用的这部分延迟,以此构建等效排队系统。相关技术中,可通过公式(1)和公式(2)分别对高低优先级数据包所经受的延迟进行计算:
[0068][0069][0070]
其中,w
q1
表示高优先级数据包在交换机中经过的延迟,w
q2
表示低优先级数据包在交换机中经过的延迟;ρ1=λ1/μ,ρ2=λ2/μ,ρ=ρ1+ρ2,λ1表示高优先级数据包到达率,λ2表示低优先级数据包到达率,μ表示服务台服务率,ρ1表示高优先级数据包的繁忙程度,ρ2表示低优先级数据包的繁忙程度,ρ表示整个交换机排队内存的繁忙程度。
[0071]
图1f为相关技术中优先级排队系统中高低优先级数据包等待时间的示意图,这里,假设高低优先级流量各占一半,如图1f所示,横坐标为ρ,纵坐标是延迟乘以μ而归一化的等待时间;方块表示低优先级数据包,圆圈表示高优先级数据包。可以看出,高优先级数据包的性能要远好于低优先级数据包。从服务台来说,pfc排队规则要求服务台必须先服务完毕高优先级的数据包,这虽然保证了高优先级数据包的服务质量(quality of service,qos),但对于低优先级数据包是不公平的,低优先级通道的接收缓冲队列长度将受到影响;进而,容易发生永久阻塞的问题。
[0072]
针对上述技术问题,以下结合附图及实施例,对本发明进行进一步详细说明。
[0073]
基于上述记载的应用场景,提出以下各实施例。
[0074]
在本发明的一些实施例中,内存阻塞平衡方法可以利内存阻塞平衡装置中的处理器实现,上述处理器可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程逻辑门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。
[0075]
图2为本发明的内存阻塞平衡方法的流程图,如图2所示,该流程可以包括:
[0076]
步骤100:获取交换机内存的数据包。
[0077]
本发明实施例中,交换机为接收端的交换机,该交换机用于接收发送端交换机发送的数据包,并放入交换机内存中。
[0078]
其中,数据包是tcp/ip协议通信传输中的数据单位;该数据包可以是超文本传输协议(hyper text transfer protocol,http)数据包,也可以是(hyper text transfer protocol over secure socket layer,https)数据包;本发明实施例不作限制。
[0079]
在一种实施方式中,交换机内存可以包括:闪存(flash)、动态内存(dram)等。交换机内存可以作为数据缓冲,交换机内存的所有数据包共享一个通用内存池。
[0080]
在一种实施方式中,交换机的类型可以是以太网交换机,也可以是其它类型的交换机;本发明对于交换机的类型不作限制。
[0081]
这里,交换机工作于开放式系统互联通信参考模型(open system interconnection reference model,osi)的第二层,即数据链路层;交换机在同一时刻可进行多个端口对之间的数据传输。本发明实施例中,以交换机的其中一个端口对为例进行说明,其中,每个端口可以细化为多个虚拟通道,即多个接收缓冲队列。
[0082]
本发明实施例中,在数据包到达交换机时,数据包被放入交换机内存中,再获取交换机内存的数据包;这里,对于获取交换机内存的数据包的方式本发明不作限制。
[0083]
步骤101:根据数据包的优先级,将数据包放入到目标队列;目标队列为第一优先级队列或第二优先级队列;第一优先级队列的优先级高于第二优先级队列的优先级。
[0084]
本发明实施例中,每个数据包预先配有相应的优先级标签;根据优先级标签可以确定每个数据包的优先级;不同数据包的优先级标签可以相同,也可以不同,可以根据实际场景进行设置。
[0085]
在一种实施方式中,假设数据包a对应的优先级标签为1,数据包b对应的优先级标签可以为2,也可以为1。
[0086]
本发明实施例中,目标队列可以表示交换机的至少一个接收缓冲队列;每个接收缓冲队列对应不同的优先级;即,每个接收缓冲队列可以为第一优先级队列或第二优先级队列。
[0087]
在一种实施方式中,若多个数据包的优先级相同,则将它们放入相同的接收缓冲队列;若多个数据包的优先级不同,则将它们放入不同的接收缓冲队列。
[0088]
这里,每个接收缓冲队列的优先级与数据包的优先级是对应的;例如,在数据包a的优先级高于数据包b的优先级的情况下,如果第一优先级队列的优先级高于第二优先级队列的优先级,则将数据包a放入第一优先级队列,将数据包b放入第二优先级队列。
[0089]
在一种实施方式中,每个接收缓冲队列,即第一优先级队列或第二优先级队列具有对应的pfc门限值,一旦第一优先级队列或第二优先级队列中的队列长度超过对应的pfc门限值,则向发送端交换机发送pfc暂停帧。
[0090]
在一种实施方式中,每个接收缓冲队列的pfc门限值通常设置为队列总长度的40%到50%之间。
[0091]
步骤102:在处理数据包的各服务台均被占用,且存在第二优先级队列的数据包被处理的目标服务台时,确定目标服务台丢弃第二优先级队列的数据包而处理第一优先级队列的数据包的处理概率。
[0092]
在一种实施方式中,通过交换机中的各服务台对第一优先级队列和第二优先级队
列的数据包进行处理。在服务台处于空闲状态时,若第一优先级队列的数据包到来,则服务台对第一优先级队列的数据包进行处理;在服务台处于空闲状态时,若第二优先级队列的数据包到来,则对第二优先级队列的数据包进行处理。
[0093]
本发明实施例中,服务台可以表示对第一优先级队列和第二优先级队列的数据包进行处理的服务台;目标服务台则表示对第二优先级队列的数据包进行处理的其中一个服务台。
[0094]
这里,第一优先级队列和第二优先级队列均采取先到先处理的方式,例如,在服务台仅对第一优先级队列的数据包进行处理的情况下,若第一优先级队列中依次达到服务台的数据包为数据包c、数据包d和数据包e,则服务台先对数据包c进行处理,再对数据包d进行处理,最后对数据包e进行处理。
[0095]
在一些实施例中,各服务台均被占用说明此时没有空闲的服务台;例如,在处理数据包的各服务台的数量为2的情况下,则说明处理数据包的2个服务台均被占用。
[0096]
在一些实施例中,处理数据包的各服务台均被占用的状态可以包括以下任一项:两个服务台均被第一优先级队列的数据包占用;两个服务台均被第二优先级队列的数据包占用;一个服务台被第一优先级队列的数据包占用,另一个被第一优先级队列的数据包占用。
[0097]
在一些实施例中,在两个服务台均被第一优先级队列的数据包占用的情况下,由于第一优先级队列的优先级高于第二优先级队列的优先级;在服务台正在对第一优先级队列的数据包进行处理的情况下,若第二优先级队列的数据包达到,则会等待其中一个服务台对第一优先级队列的数据包处理完毕后,再对第二优先级队列的数据包处理。
[0098]
本发明实施例中,在处理数据包的各服务台均被占用,且存在第二优先级队列的数据包被处理的目标服务台时,说明两个服务台均被第二优先级队列的数据包占用或一个服务台被第一优先级队列的数据包占用,另一个被第一优先级队列的数据包占用。在上述情况下,可以确定目标服务台丢弃第二优先级队列的数据包而处理第一优先级队列的数据包的处理概率。
[0099]
在一些实施例中,确定目标服务台丢弃第二优先级队列的数据包而处理第一优先级队列的数据包的处理概率,可以包括:基于忽视因子α,确定处理概率;忽视因子α用于表示在第一优先级队列数据包到来时,目标服务台继续处理第二优先级队列的数据包的概率;α大于零且小于1。
[0100]
在一种实施方式中,通过设置忽视因子α,并令忽视因子α满足公式(3):
[0101]
ph=1-αnꢀꢀꢀ
(3)
[0102]
其中,ph表示上述处理概率;n表示此时被第二优先级队列的数据包占用的目标服务台数量;在处理数据包的各服务台的数量为2的情况下,n的取值可以为1或2。
[0103]
在一种实施方式中,假设忽视因子α为0.5;在n取值为1的情况下,ph的值为0.5;在n取值为2的情况下,ph的值为0.75;可见,目标服务台的数量越多,目标服务台丢弃第二优先级队列的数据包而处理第一优先级队列的数据包的处理概率越大。
[0104]
可以看出,通过设置忽视因子α,使得在各服务台均被占用,且存在第二优先级队列的数据包被处理的服务台时,第一优先级队列的数据包将不再拥有完全优先权,即,增加了第二优先级队列的数据包被处理的可能性。
[0105]
步骤103:基于处理概率,对交换机的内存阻塞进行平衡。
[0106]
本发明实施例中,由于公式(3)中的处理概率ph使得第一优先级队列的数据包不再拥有完全优先权;即,在两个服务台均被占用,且存在第二优先级队列的数据包被处理的目标服务台时,虽然第一优先级队列的优先级高于第二优先级队列的优先级,但是目标服务台存在继续处理第二优先级队列的数据包的可能;进而,能够减少第二优先级队列的数据包排队等待服务的阻塞时间;降低第二优先级队列发生内存阻塞的概率,实现对交换机的内存阻塞进行平衡的目的。
[0107]
本发明提供一种内存阻塞平衡方法、装置、电子设备和计算机存储介质,方法包括:获取交换机内存的数据包;根据数据包的优先级,将数据包放入到目标队列;目标队列为第一优先级队列或第二优先级队列;第一优先级队列的优先级高于第二优先级队列的优先级;在处理数据包的各服务台均被占用,且存在第二优先级队列的数据包被处理的目标服务台时,确定目标服务台丢弃第二优先级队列的数据包而处理第一优先级队列的数据包的处理概率;基于处理概率,对交换机的内存阻塞进行平衡;如此,当各服务台均被占用,且存在第二优先级队列的数据包被处理的服务台时,第一优先级队列的数据包将不再拥有完全优先权,即,增加了第二优先级队列的数据包被处理的可能性;能够在保证第一优先级队列的数据包的服务质量的同时,减少第二优先级队列的数据包排队等待服务的阻塞时间,进而,降低第二优先级队列发生内存阻塞的概率。
[0108]
为了能够更加体现本发明的目的,在本发明上述实施例的基础上,进行进一步的举例说明。
[0109]
在本实施例中,高优先级队列表示上述第一优先级队列;低优先级队列表示上述第二优先级队列;高优先级数据包表示上述第一优先级队列的数据包;低优先级数据包表示上述第二优先级队列的数据包。
[0110]
为了减少系统的状态信息并简化实现的复杂度,以精准描述问题,达到解决永久阻塞,内存优化的目的,将pfc支持的交换机内存缓冲队列架构转化为双服务台双队列排队模型,内存中的优先级队列设置为两个,分别为高优先级队列和低优先级队列;图3a为本发明中基于优先级的交换机排队系统的示意图,如图3a所示,数据包到达后,需要检查数据包对应的优先级值,根据不同的优先级别,将数据包送入高优先级队列和低优先级队列中,再通过服务台1和服务台2对不同队列中的数据包进行处理,处理完后从转发端口输出;目前基于硬件需求和成本的考虑,实际商用交换机上最多仅支持三个优先级队列;本发明实施例以两个优先级队列进行说明。
[0111]
其中,交换机排队系统所使用的参数基本包括:数据包到达率λ、服务台数量l、服务台服务率μ,释义如下:
[0112]
1)数据包到达率:单位时间平均到达交换机排队系统的数据包数量;它反映了数据包到达交换机排队系统的速率快慢。
[0113]
2)服务台数量:交换机排队系统中可以同时接受服务的服务台的数量,也就是服务机构资源。
[0114]
3)服务台服务率:单位时间内由一个服务台进行服务所离开排队系统的平均数据包数量。
[0115]
由此建立改进的内存阻塞平衡数学模型,在本数学模型中假定交换机处理转发数
据包的各服务台的数量为2,具备不同优先级的接收缓冲队列数量为2;根据ets/pq算法规定,若高优先级数据包到达,且存在空闲服务台,则其立刻接受服务台处理;若此时不存在空闲的服务台,则其不一定能立刻接受服务台处理。这取决于此时服务台处理数据包的优先级,若均为高优先级,则其不能被处理;若存在低优先级,则高优先级数据包存在被处理的概率为ph,其计算公式如上述公式(3)所示。
[0116]
在一种实施方式中,为了达到提高低优先级数据包的排出速率,公式(3)中引入忽视因子α,使得第一优先级队列的数据包将不再拥有完全优先权;进一步地,还可以通过调整α的取值调整高优先级数据包被处理的概率ph,以对排队规则进行改进;其中,改进的排队规则随α变化如下:α∈(0,1)时,当两个服务台均被占用,存在低优先级数据包被处理的服务台时,服务台将会有ph的概率丢弃低优先级数据包转而处理高优先级数据包。
[0117]
这里,当α为0时,说明两个服务台均被占用,存在低优先级数据被处理的服务台时,服务台必须立刻丢弃低优先级数据转而处理高优先级数据,即,高优先级数据拥有完全优先权,这属于未对排队规则进行改进的情况;当α为1时,说明两个服务台均被占用,存在低优先级数据包被处理的服务台时,服务台无权丢弃低优先级数据,高优先级数据无法抢占已被占用的服务台,高低优先级数据的优先权相同,由于对高低优先级没有任何区分,进而,对排队规则没有任何意义。
[0118]
本发明通过设置一个忽视因子α,能够暂时削弱高优先级队列的优先权,使得高优先级队列的数据包以一定的概率放弃使用服务台,能够在低优先级队列的队列长度达将要达到pfc门限值之前做出合理牺牲。
[0119]
评判一个交换机排队数学模型的优劣,主要是以数据包和服务台的利益为标准,以最少的资源投入最大限度地服务数据包为目的。从数据包角度来说,最好情况仍是随到随服务,避免了因排队造成的非必要的等待时间。从服务台角度来说,增加服务台数量意味着增加成本投资,当队列处于空闲时将造成浪费。因此,需要有性能指标来评判数据包和服务台之间的关系。为了分析该模型优化内存阻塞的性能,将重点分析两种优先级队列的包阻塞率和丢失率指标。这里,阻塞率是指数据包到达并排到队头时因为服务台正在为其它用户提供服务而不能为其立即提供服务的概率,分为高优先级数据包阻塞率p
h_block
和低优先级数据包阻塞率p
l_block
,丢失率p
loss
是指数据包丢失速率与接收速率的比值。
[0120]
假设当交换机排队系统到达稳定状态时,服务台处理状态为(m,n),服务台呈现状态(m,n)时的稳态概率为p
m,n
,其中,m表示正处理高优先级数据包的服务台数量;n表示正处理低优先级数据包的服务台数量,m和n分别取0、1、2,同时满足0≤m+n≤2。那么服务台均被占用的状态可以表示为(m,2-m)。
[0121]
根据改进规则,高优先级数据包将不再拥有完全优先权,系统状态将根据到达数据包的优先级而改变,除非服务台均被高优先级数据包占用而此时有低优先级数据包到达。若服务台处理低优先级数据包时恰有高优先级数据包到达,则系统状态从(m,2-m)转化为(1+m,1-m),例如当m=0时,假设系统从状态(0,2)转化为状态(1,1),(0,2)表示双服务台均在处理低优先级,(1,1)表示其中一个服务台被高优先级抢占,数量相应发生变化。根据模型描述,图3b为本发明中基于优先级的双队列排队系统模型的状态转移的示意图,如图3b所示,根据柯尔莫哥洛夫方程提供的排队系统转移概率的方法,得到六种状态下的平衡方程如公式(4)所示。
[0122][0123]
其中,高优先级数据包的到达率为λh,服务率为μh;低优先级数据包的到达率为λ
l
,服务率为μ
l
;p
00
表示2个服务台均未被占用的状态下的转移概率,p
01
表示1个服务台未被占用,1个服务台被低优先级数据包占用的状态下的转移概率,p
10
表示1个服务台被高优先级数据包占用,1个服务台未被占用的状态下的转移概率,p
02
表示2个服务台均被低优先级数据包占用的状态下的转移概率,p
11
表示1个服务台被高优先级数据包占用,1个服务台被低优先级数据包占用的状态下的转移概率,p
20
表示2个服务台均被高优先级数据包占用的状态下的转移概率;对于每一个状态转化事件均满足p
00
+p
01
+p
10
+p
02
+p
11
+p
20
=1,则将公式(4)转化为矩阵化简如公式(5)后求解。
[0124][0125]
将公式(5)记为矩阵m、矩阵p和矩阵b:
[0126][0127][0128]
则可以得到公式(6)
[0129]
mp=b
ꢀꢀꢀ
(6)
[0130]
借助matlab中求逆函数求得m-1
,接着等式两边同乘矩阵m-1
求解p可得公式(7),即求解出各状态转移概率p。
[0131]
p=m-1bꢀꢀꢀ
(7)
[0132]
低优先级数据包的阻塞率如公式(8)所示:
[0133]
p
l_block
=p
02
+p
11
+p
20
ꢀꢀꢀ
(8)
[0134]
由于高优先级数据包在服务台被服务时,不会存在被后到来的任何类型数据包抢占的情况下,低优先级数据包的丢失率如公式(9)所示。
[0135][0136]
可以看出,当交换机低优先级队列发生pfc暂停时,通过忽视因子α调节低优先级队列的一个阻塞能力;进而,能够降低整个pfc环路发生永久内存阻塞的风险。
[0137]
图4为本发明的内存阻塞平衡装置的组成结构示意图,如图4所示,装置包括:获取模块400、第一处理模块401、第二处理模块402和平衡模块403,其中:
[0138]
获取模块400,用于获取交换机内存的数据包;
[0139]
第一处理模块401,用于根据数据包的优先级,将数据包放入到目标队列;目标队列为第一优先级队列或第二优先级队列;第一优先级队列的优先级高于第二优先级队列的优先级;
[0140]
第二处理模块402,用于在处理数据包的各服务台均被占用,且存在第二优先级队列的数据包被处理的目标服务台时,确定目标服务台丢弃第二优先级队列的数据包而处理第一优先级队列的数据包的处理概率;
[0141]
平衡模块403,用于基于处理概率,对交换机的内存阻塞进行平衡。
[0142]
在一些实施例中,第二处理模块402,用于确定目标服务台丢弃第二优先级队列的数据包而处理第一优先级队列的数据包的处理概率,包括:
[0143]
基于忽视因子α,确定处理概率;
[0144]
忽视因子α用于表示在第一优先级队列数据包到来时,目标服务台继续处理第二优先级队列的数据包的概率;α大于零且小于1。
[0145]
在一些实施例中,第二处理模块402,用于基于忽视因子α,确定处理概率,包括:
[0146]
确定目标服务台的数量;
[0147]
基于忽视因子α和目标服务台的数量,确定处理概率。
[0148]
在一些实施例中,处理数据包的各服务台的数量为2。
[0149]
在一些实施例中,处理数据包的各服务台均被占用的状态包括以下任一项:
[0150]
两个服务台均被第一优先级队列的数据包占用;
[0151]
两个服务台均被第二优先级队列的数据包占用;
[0152]
一个服务台被第一优先级队列的数据包占用,另一个被第一优先级队列的数据包占用。
[0153]
在实际应用中,上述获取模块400、第一处理模块401、第二处理模块402和平衡模块403均可以由位于电子设备中的处理器实现,该处理器可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。
[0154]
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0155]
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0156]
具体来讲,本实施例中的一种内存阻塞平衡方法对应的计算机程序指令可以被存储在光盘、硬盘、u盘等存储介质上,当存储介质中的与一种内存阻塞平衡方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种内存阻塞平衡方法。
[0157]
基于前述实施例相同的技术构思,参见图5,其示出了本发明提供的电子设备500,可以包括:存储器501和处理器502;其中,
[0158]
存储器501,用于存储计算机程序和数据;
[0159]
处理器502,用于执行存储器中存储的计算机程序,以实现前述实施例的任意一种内存阻塞平衡方法。
[0160]
在实际应用中,上述存储器501可以是易失性存储器(volatile memory),例如ram;或者非易失性存储器(non-volatile memory),例如rom、快闪存储器(flash memory)、硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者上述种类的存储器的组合,并向处理器502提供指令和数据。
[0161]
上述处理器502可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的增强现实云平台,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。
[0162]
在一些实施例中,本发明实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述
[0163]
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述
[0164]
本发明所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0165]
本发明所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0166]
本发明所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0167]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0168]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0169]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0170]
以上,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
技术特征:
1.一种内存阻塞平衡方法,其特征在于,所述方法包括:获取交换机内存的数据包;根据所述数据包的优先级,将所述数据包放入到目标队列;所述目标队列为第一优先级队列或第二优先级队列;所述第一优先级队列的优先级高于所述第二优先级队列的优先级;在处理所述数据包的各服务台均被占用,且存在所述第二优先级队列的数据包被处理的目标服务台时,确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率;基于所述处理概率,对所述交换机的内存阻塞进行平衡。2.根据权利要求1所述的方法,其特征在于,所述确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率,包括:基于忽视因子α,确定所述处理概率;所述忽视因子α用于表示在所述第一优先级队列数据包到来时,所述目标服务台继续处理所述第二优先级队列的数据包的概率;α大于零且小于1。3.根据权利要求2所述的方法,其特征在于,所述基于忽视因子α,确定所述处理概率,包括:确定所述目标服务台的数量;基于所述忽视因子α和所述目标服务台的数量,确定所述处理概率。4.根据权利要求1-3任一项所述的方法,其特征在于,所述处理所述数据包的各服务台的数量为2。5.根据权利要求4所述的方法,其特征在于,所述处理所述数据包的各服务台均被占用的状态包括以下任一项:两个服务台均被所述第一优先级队列的数据包占用;两个服务台均被所述第二优先级队列的数据包占用;一个服务台被所述第一优先级队列的数据包占用,另一个被所述第一优先级队列的数据包占用。6.一种内存阻塞平衡装置,其特征在于,所述装置包括:获取模块,用于获取交换机内存的数据包;第一处理模块,用于根据所述数据包的优先级,将所述数据包放入到目标队列;所述目标队列为第一优先级队列或第二优先级队列;所述第一优先级队列的优先级高于所述第二优先级队列的优先级;第二处理模块,用于在处理所述数据包的各服务台均被占用,且存在所述第二优先级队列的数据包被处理的目标服务台时,确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率;平衡模块,用于基于所述处理概率,对所述交换机的内存阻塞进行平衡。7.根据权利要求6所述的装置,其特征在于,所述第二处理模块,用于确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率,包括:基于忽视因子α,确定所述处理概率;
所述忽视因子α用于表示在所述第一优先级队列数据包到来时,所述目标服务台继续处理所述第二优先级队列的数据包的概率;α大于零且小于1。8.根据权利要求6所述的装置,其特征在于,所述第二处理模块,用于基于忽视因子α,确定所述处理概率,包括:确定所述目标服务台的数量;基于所述忽视因子α和所述目标服务台的数量,确定所述处理概率。9.一种电子设备,其特征在于,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至5任一项所述的方法。10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述的方法。
技术总结
本发明提供一种内存阻塞平衡方法、装置、电子设备和计算机存储介质,所述方法包括:获取交换机内存的数据包;根据所述数据包的优先级,将所述数据包放入到目标队列;所述目标队列为第一优先级队列或第二优先级队列;所述第一优先级队列的优先级高于所述第二优先级队列的优先级;在处理所述数据包的各服务台均被占用,且存在所述第二优先级队列的数据包被处理的目标服务台时,确定所述目标服务台丢弃所述第二优先级队列的数据包而处理所述第一优先级队列的数据包的处理概率;基于所述处理概率,对所述交换机的内存阻塞进行平衡。对所述交换机的内存阻塞进行平衡。对所述交换机的内存阻塞进行平衡。
技术研发人员:胡静宜 陈敏
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2020.11.05
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-24736.html