一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法

文档序号:7777879阅读:190来源:国知局
一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法
【专利摘要】本发明公开了一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法,该方法以每个数据包的处理时间作为负载的调度权重,并统计每个处理单元的剩余任务处理时间,并依据任务处理时间计算出处理单元的负载,选择出最小负载的处理单元对数据包进行调度。本发明方法克服了传统基于数据流的负载均衡算法的缺陷,能够实现更佳的多核网络处理器的均衡效果。
【专利说明】一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法
【技术领域】
[0001]本发明涉及一种对网络处理器的调度方法,更特别地说,是指一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法
【背景技术】
[0002]网络处理器(Notwork Processor, NP)是新一代用来执行数据处理和转发的高速可编程处理器。从功能上讲,网络处理器主要是完成数据处理和转发任务。2004年11月第I版《网络处理器原理与技术》张宏科等编著,第I页。
[0003]为了提高网络处理器的性能,解决单核处理器性能的瓶颈,多核处理器应运而生。多核处理器也称为片上多核处理器,在同一个芯片上集成了多个相同结构的处理核心。多核处理器首先拥有多个处理核心,利用多线程技术,整个处理器的性能是单核处理器的数倍。多核网络处理器存在着大量的数据包并行的应用,因此数据包的调度是应用中影响性能的决定性部分。调度(dispatch)是指对于并行或并发任务的总的控制。当工作开始时,调度器将这个工作分配给指定的处理器或线程。2004年7月第I版《网络处理器与网络系统设计》张建忠等译,第129页。
[0004]在多核CPU中,必须考虑各个线程计算量均衡地分配到各CPU核上的问题,也就是计算负载平衡问题。如果线程间的计算量无法取得好的负载平衡,那么某些CPU核计算量大、耗时多,另外一些CPU核计算量小、耗时少;耗时少的CPU核运行完成后,将处于空闲状态,导致CPU出现饥饿现象。2009年3月第I版《多核计算与程序设计》周伟明著,第14页。
[0005]多核CPU对数据处理和转发任务是以线速(Line Rate)对到达的数据包进行处理的,然后对数据包进行分类以确定该数据包所属的数据流(Flow)。所述数据包中的多个字段可以是源IP地址、目的IP地址、源端口、目的端口、协议类型等。
[0006]基于数据包的负载均衡方案,以数据包为单位进行分配。基于数据流的负载均衡方案,以数据流为单位进行分配,即属于同一数据流的数据包只能分配到同一个核进行处理。基于数据包的负载均衡存在两方面的不足:第一,这种方案需要额外的设计进行数据流保序,而且这些保序的设计往往会对多核处理器性能造成较大影响;第二,由于数据包的处理大多需要维护一张会话表,基于数据包的负载均衡系统可能将同一个数据流的数据包分配到不同引擎上,这会使得两个处理单元同时访问一个数据结构的情况,所以需要额外的同步开销。基于数据流的负载均衡方案不存在上述的不足。
[0007]基于数据流的负载均衡方案的不足有:第一,负载均衡需要知道分配单位的负载特性,一般多核处理器中可以假设每个数据包需要的处理能力是基本相同的。而数据流是不同的,同属于一个数据流的数据包数量是无法预测的,而且根据对互联网流量的统计表明,数据流的大小分布很不均衡;第二,一个数据流是由多个数据包组成的,所以基于数据流的划分粒度比较粗,更不容易达到负载的均衡。
【发明内容】

[0008]为了解决基于数据流的负载不均衡,本发明提出一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法。本调度方法能够将同一数据流分配到多个处理单元上进行并行运行,通过对最小负载量的处理单元优先进行数据流传输,从而实现网络处理器负载均衡。本发明方法利用移动加权的策略可以很好的处理流量,降低多核处理器的开销,提高处理器性能。特别是在出 现突发流量时,克服数据流集中在特定的处理单元进行处理。
[0009]本发明是一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法,该负载均衡调度方法包括有下列步骤;
[0010]步骤A:数据流的关联信息
[0011](A) 一个多核处理器上包括有多个处理单元,采用集合形式表达为M = (Hi1, m2,…,!%} ;K表示处理单元的总个数;
[0012](B) 一个多核处理器上运行有多条数据流,数据流采用集合形式表达为MD =IF1, F2,…,Fx} ;Χ表示运行在多核处理器上的数据流的总条数;
[0013]设置数据流被调度完成的时间,第一条数据流F1被调度完成的时间记为第二条数据流F2被调度完成的时间记为,任意一条数据流Fx被调度完成的时间记为
rT1Fx
;|值;
[0014](C) 一条数据流中包括有多个数据包,采用集合形式表达为Fx = {f\,f2,…,fa_!, fa, fa+1,…,fj ;a-l, a, a+1, q表示数据包的标识号;任意一个数据包中至少包括有源IP地址、目的IP地址、源端口、目的端口和协议号;
[0015](D)数据包到达同一条数据流的截止时间记为,数据包f2到达同一条数据
流的截止时间记为?Jx,数据包fd到达同一条数据流的截止时间记为?J11,数据包4到达
同一条数据流的截止时间记为,数据包fa+1到达同一条数据流的截止时间记为^2;,数据包f,到达同一条数据流的截止时间记为;多个数据包到达同一条数据流的截止时间采
用集合形式表达为7? =Irf ,?...,!^,…,d ;
[0016](E)数据包被调度的时间记为,数据包f2被调度的时间记为TSFf:—,数据包fH被调度的时间记为TS;:,数据包fa被调度的时间记为TS2,数据包fa+1被调度的时间记为TSl',数据包4被调度的时间记为;属于同一数据流的多个数据包被调度的
时间采用集合形式表达为=、TSFf:,TSFf:,…,TSFf:',TSFf:,TSffL,…,TSFf:};
[0017](F)相邻两个数据包到达同一条数据流的时间间隔记为2^1,则有与/^的时间间隔记为
【权利要求】
1.一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法,其特征在于:该负载均衡调度方法包括有下列步骤; 步骤A:数据流的关联信息 (A)—个多核处理器上包括有多个处理单元,采用集合形式表达为M=Im1, m2,…,mK};K表示处理单元的总个数; (B)—个多核处理器上运行有多条数据流,数据流采用集合形式表达为MD= (F1, F2,…,FJ ;X表示运行在多核处理器上的数据流的总条数; 设置数据流被调度完成的时间,第一条数据流F1被调度完成的时间记为,第二条 数据流F2被调度完成的时间记为Tjt,任意一条数据流Fx被调度完成的时间记为; (C)一条数据流中包括有多个数据包,采用集合形式表达为Fx = {匕匕…,fa_!, fa, fa+1,…,fj ;a-l, a, a+1, q表示数据包的标识号;任意一个数据包中至少包括有源IP地址、目的IP地址、源端口、目的端口和协议号; (D)数据包到达同一条数据流的截止时间记为数据包f2到达同一条数据流的截止时间记为,数据包fa_i到达同一条数据流的截止时间记为T匕,数据包fa到达同一条数据流的截止时间记为T ,数据包fa+1到达同一条数据流的截止时间记为^:,数据包f,到达同一条数据流的截止时间记为;多个数据包到达同一条数据流的截止时间采用集合形式表达为 =片 Jf,..-,T^,TFf: J2,…,T?I; (E)数据包被调度的时间记为,数据包f2被调度的时间记为TS2,数据包fa_i被调度的时间记为,数据包fa被调度的时间记为tA,数据包fa+1被调度的时间记为1?:,数据包f,被调度的时间记为;属于同一数据流的多个数据包被调度的时间采用集合形式表达为墙={%%、..,吃,7^,7^:丨,”,7^小 (F)相邻两个数据包到达同一条数据流的时间间隔记为7--,则有与fF的时间间隔记为= TFf::' -TFf:; 步骤B:建立数据流映射表 将多核处理器接收到的数据流,依据先进先记录的方式记录入“数据流映射表”中; 表一数据流映射表的格式


2.根据权利要求1所述的基于剩余任务处理时间补偿的网络处理器负载均衡调度方法,其特征在于:任意一条数据流Fx被调度完成的时间:--可以设置为5毫秒。
3.根据权利要求1所述的基于剩余任务处理时间补偿的网络处理器负载均衡调度方法,其特征在于:该负载均衡调度方法是用来解决在多核处理器上并行运行的同一数据流的分配。
【文档编号】H04L12/863GK103685053SQ201310612808
【公开日】2014年3月26日 申请日期:2013年11月26日 优先权日:2013年11月26日
【发明者】李云春, 王国栋, 李巍, 李靖轩 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1