CN104067578A - 无分组重排序的动态负载均衡 - Google Patents

无分组重排序的动态负载均衡 Download PDF

Info

Publication number
CN104067578A
CN104067578A CN201280067657.9A CN201280067657A CN104067578A CN 104067578 A CN104067578 A CN 104067578A CN 201280067657 A CN201280067657 A CN 201280067657A CN 104067578 A CN104067578 A CN 104067578A
Authority
CN
China
Prior art keywords
queue
resource
grouping
bucket
assigned
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280067657.9A
Other languages
English (en)
Other versions
CN104067578B (zh
Inventor
佐治·托马斯·麦卡图帕拉班
纳仁德·因笃里
尤达亚玛卡尔·斯瑞尼瓦桑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN104067578A publication Critical patent/CN104067578A/zh
Application granted granted Critical
Publication of CN104067578B publication Critical patent/CN104067578B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

分组流被动态映射到资源队列。分组流在网络设备处被接收以在网络中从该网络设备进行路由。每个流包括要从源发送至连接的分组。为队列分配表存储数据,该队列分配表维护所接收的流的分组被指派给的多个桶,并且表明为各个桶分配多个资源队列中的哪个资源队列。对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。

Description

无分组重排序的动态负载均衡
技术领域
本公开涉及分组排队以便分组被递送至诸如端口通道的成员、端口、链路、线程或核之类的资源。
背景技术
网络设备中的容量缩放涉及在多个路径或多个资源(例如,网络链路、交换机端口、交换结构、处理核、或线程等)间分布网络流量。维持分组排序约束了流量分布的方式,经常导致链路或其他资源的不均匀的负载分布和次优利用。随着对诸如端口通道和多核中央处理单元之类的聚合链路的使用的不断增长,存在改善流量分布尤其是提供动态流量分布的空间。
附图说明
图1是被配置来将分组流动态地映射到资源的诸如路由器或交换机之类的网络设备的框图。
图2是图示地描绘了本申请所描述的用于将分组流动态地映射到资源队列的技术的示意图。
图3是示出了用于将分组流动态地映射到资源队列的队列分配表中的示例条目的示意图。
图4是描绘了将流中的分组指派给桶(bucket)的操作的流程图。
图5是描绘了在将分组流动态地映射到资源队列期间周期性地执行的操作的流程图。
图6是描绘了用于后台轮询例程(polling routine)对不使用的桶解除分配的操作的流程图。
图7是描绘了用于确定每个资源队列的容量并创建/更新用于选择资源队列的轮叫(robin)列表的操作的流程图。
图8是描绘了用于对熟知的粗流(thick flow)进行专门处理的操作的流程图。
图9是描绘了用于将分组流动态地映射到资源队列的整体操作的流程图。
发明内容
概要
分组流被动态映射到资源队列。分组流在网络设备处被接收以在网络中从该网络设备进行路由。每个流包括要从源发送至连接的分组。为队列分配表存储数据,该队列分配表维护要被指派所接收的流的分组的多个桶,并且表明为各个桶分配多个资源队列中的哪个资源队列。对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。
具体实施方式
示例实施例
首先参照图1,图1示出了示例网络设备10的框图。如本申请所描述的,网络设备10被配置来对分组流执行不会丢失分组的排序的动态负载均衡。网络设备10可以是聚合交换机、数据中心交换机、边缘交换机、和路由器(集成服务、载体服务等)。网络设备10具有用于分组转发或分组处理目的的多个资源12(1)-12(N)。资源12(1)-12(N)的示例有端口、端口通道的成员、链路、多核中央处理单元(CPU)的核、处理线程等。可以经由资源12(1)-12(N)中的任意资源在网络设备10处接收分组,并且然后将这些分组从网络设备10经由资源12(1)-12(N)中的任意资源从网络设备10进行路由。
网络设备10还包括分组路由单元14。分组路由单元14可以由一个或多个建立有(固定的或可编程的)数字逻辑(例如,硬件或固件)的固定的或可编程的专用集成电路(ASIC)来配备,以针对进出分组流执行分组路由操作和相关分组处理操作。具有耦合于分组路由单元14的处理器16。处理器16是诸如微处理器或微控制器之类的可编程处理设备,用作网络设备10的控制器。处理器16被耦合于存储器18。存储器18用来存储由处理器16运行的工作数据和指令。为此,该存储器可以存储用于动态负载均衡处理逻辑20的指令。
存储器18可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪速存储器设备、电学或光学或其他实体的/有形的存储器存储设备。因而,通常,存储器18可以包括一个或多个采用包括计算机可执行指令的软件进行编码的有形的(非暂时性的)计算机可读存储介质(例如,存储器设备),并且当软件被(处理器16)运行时,处理器16可结合动态负载均衡处理逻辑20进行操作以执行本申请所描述的操作。当处理器运行动态负载均衡处理逻辑20时,处理器执行本申请所描述的操作。作为替代,分组路由单元14可以通过合适的数字逻辑进行配置来执行本申请所描述的动态负载均衡处理逻辑20的操作。图1示出了网络设备10通过分组路由单元14或处理器16的操作动态地映射到资源12(1)-12(N)的分组流30。
当前的分组排队技术使用静态哈希方案来将分组进行分类并分发到不同队列。这种方案具有不能基于负载来分发分组的缺点。
本申请所描述的动态负载均衡分组排队技术实现了不会引起分组重排序并且不会过于复杂的动态负载分布。这些技术对于分组转发线程的负载分布是有用的,也可以用于任何网络分组分发特征或功能,比如,端口通道。
现在参照图2,总体描述了动态负载均衡处理的操作。图2图示地描绘了多个资源队列,每个资源队列与资源12(1)-12(N)中相应的资源相关联。在图2的示例中,N=4,针对资源12(1)-12(4)。因此,资源队列以标号22(1)-22(4)示出。资源队列实质上是存储指向分组的指针的缓冲器或存储位置。这些分组本身可以被存储在与资源队列分开的存储器的区域中。按照本申请所描述的动态负载分发/均衡技术的一部分,为资源队列的分配创建了动态映射表,而不是静态的哈希。该映射表在本申请中称为队列分配表(QAT),并在以标号24示出。QAT24和多个资源队列被存储器18中的存储位置所包含。
QAT24维护多个“桶”(存储位置),这多个桶以标号26示出,所接收的流的分组被指派给这多个桶。当分组流被指派给一个桶时,这些资源队列中的一个资源队列被分配给这个桶,并且QAT24还存储表明多个资源队列(例如,资源队列22(1)-22(4))中的哪个资源队列被分配给这个桶的数据。基于哈希函数,流的分组被指派给特定桶。也就是说,对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。例如,从分组的头部中的4元组信息(源地址、目的地址、校验和等)计算哈希函数。
当分组流被指派给桶时,为该桶分配资源队列。多于一个的桶(因此,多于一个的分组流)可以被指派给一个特定的资源队列。例如,图2示出了标记有数字“1”的五个不同的桶(因此,5个不同的分组流)被指派给资源队列22(1)作为资源12(1)。类似地,标记有数字“2”的四个不同的桶(因此,四个不同的分组流)被指派给资源队列22(2)作为资源12(2)。标记有数字“3”的四个不同的桶(因此,四个不同的分组流)被指派给资源队列22(3),以及标记有数字“4”的六个不同的桶(因此,六个不同的分组流)被指派给资源队列22(4)。图2中示出的没有标记的桶是还没有被分配给流的桶。
现在参照图3。图3示出了QAT24中的条目的数据结构的示例。首先,所有的桶被置为队列标识符(qid)=INVALID_QUE_ID并且负载计数器(Lcount)=0。当分组到来时,基于分组头部字段(例如,诸如传输控制协议[TCP]4元组的4元组)来确定其哈希桶(流的该分组被指派给多个桶中的这个桶)。如果该桶具有有效的队列条目(即,该桶已经被指派给特定队列),那么该分组被指向这个队列,并且负载增加。如果该桶不具有有效的队列条目,那么分配队列,并且该桶的条目通过qid进行更新。因此,QAT24中的每个条目包括针对qid、load和aging的32位整数(unit32)字段。
对于描绘通过动态负载均衡处理逻辑20和网络设备的其他能力的运行在网络设备中执行操作的多个流程图的说明,现在参照图4-8。对于这些图的说明,还要参照图2。
图4示出了分组到来/接收时执行的操作的流程图。在100处,基于分组的头部中的信息(例如,TCP4元组),为该分组计算哈希桶标识符(ID),从而确定将该分组分配给哪个桶(比如,图2中所示的多个桶26中的一个桶)。在110处,估计该桶(从100处的哈希计算确定)的qid来确定其是否有效,即,该桶是已经被指派给资源队列的桶还是未分配的桶(当前没有被指派给资源队列)。qid无效的桶是当前没有被指派给资源队列的桶。
如果在110处确定该桶的qid不是无效的,那么在120处,负载计数器Bucket.Lcount增加,并且该分组被移到该桶中。换句话说,该桶已经在使用,并且流的分组已经被分配给该桶。当前的分组是已经被分配给该桶的流的另一个分组。
如果在110处确定该桶的qid是无效的,那么在130处,(基于上述提到并在下面进行更加详细描述的轮循(round robin)选择)该桶被指派给资源队列。此外,QAT被更新来反映该桶向资源队列的指派,该桶的负载计数器Bucket.Lcount被置为1,并且该分组被移到该桶中。
图5示出了定期/周期性地(比如,定时器到期时)执行的操作。在140处,执行操作来对空闲的桶解除分配。桶解除分配过程140的详情结合图6进行描述。在150处,执行操作来计算资源队列上的负载。在160处,执行操作来创建/更新用于为桶选择资源队列的轮循列表。轮循列表创建/更新过程下文结合图7来描述。
转到图6,现描述桶解除分配过程140。该流程图用于被调用来针对最后间隔确定每个桶上的负载的后台定时器处理程序。在142处,对于QAT中的每个条目,为该桶读取当前间隔的负载值(NL)(NL=Bucket.Lcount值)。读取负载值之后,Bucket.Lcount被重置为0,因此,其可以为下一个间隔累积计数。在144处,确定NL是否等于0。当确定NL不等于0时,那么在146处,资源队列特定负载测量量RLoad[Rindex]使用NL的值进行更新,RLoad[Rindex]=RLoad[Rindex]+NL,其中Rindex是与特定资源队列相对应的索引值。例如,Rindex=1指的是资源队列1,等等。当确定NL等于0时,那么在148处,对于该桶,qid值被置为INVALID(无效)。因此,图6描绘了检查桶上没有负载达预定的时间段(例如,两个连续的轮询周期,或一些其他充足的时间段)的后台轮询例程。当这种情况发生时,将针对该桶的相应的条目从QAT中移除。这允许在下一次该桶中有流量时选择最合适的队列。此外,当流量在流桶上停止时,将该流/桶移到不同的队列是安全的。
参照图7描述对资源负载/分配更新过程150和轮循列表创建/更新过程160的操作。资源负载/分配更新过程150涉及基于每个队列的可用容量来确定队列分配。基于前一间隔中队列上的总负载,周期性的后台轮询例程计算每个队列的可用容量。基于该容量,创建qid的轮循列表。该列表对于每个队列具有多个条目,这些条目的数目与该队列的当前容量成比例。一旦该列表由轮询例程建立,选择来自该轮循列表的下一个条目。
具体地,参照图7,在152处,从资源队列的负载RLoad(Rindex)根据计算Cap[Rindex]=Cap[Rindex]-RLoad(Rindex)来计算该资源队列的容量(由Cap[Rindex]来表示)。对所有的资源队列(即,Rindex=1至资源队列的数目(NumRes))执行操作152。在154处,将资源队列的容量进行分类(从最大到最低),并且计算所有这些资源队列的总容量,Tcap=Rindex=1至NumRes的所有这些资源队列的容量的和。
在162处,由轮循列表的尺寸(RRsize)、资源队列的容量Cap[Rindex]以及这些资源队列的总容量Tcap根据计算{RRsize xCap[Rindex]}/Tcap来为每个资源队列计算轮循计数(RRcount)。
然后,在164处,对于轮循列表中的每个条目RRentry,执行下面的操作。如果RRcount[Rindex]大于0,那么将资源队列Rindex的RRList条目设置为等于Rindex,并且减小RRcount[Rindex]。如果RRcount[Rindex]等于0,那么Rindex被设置为等于列表中的下一个资源队列Next[Rindex]。
概括地说,轮循列表RRList可以被认为是简单的数组。该数组的内容标识将要被指派给桶的资源队列。该数组由在每次分配和环绕(wrap)之后增大的整数来索引,从而实现对于资源队列分配的轮循性质。该方法允许为新创建的分组流选择最佳资源队列。一旦为给定的分组流选择了队列,最好为该流的终生维护该分配。下文还将描述动态移动流的方案,如果流量负载这样规定。
只要流是相对短期的(例如,少于30秒),本申请目前所描述的技术能很好地工作,这是大多数时间的情形。这些技术将比静态哈希执行得更好,因为这些技术不完全依赖哈希函数的效用。
然而,有可能流保持持久并引起对负载分发的破坏。在该情形中,可能需要将一些桶移动到不同的资源队列。如果由一个或多个标记为持久的桶所消耗的百分比容量(基于这些桶保持激活多久)超过预设的阈值(例如,65%),那么触发这种桶移动机制。
确保次序一致性要求在已在运输中的分组在队列重新指派应用之前已被处理。在分组转发线程的情形中,这涉及结束对已在队列中的分组的调换。
在端口通道链路的情形中,这涉及到将已在队列中的分组传送出去并等待与这些分组的运送(transit)时间相对应的固定的时延。直到该处理时延到期,属于正被重新指派的桶的新的分组被容纳到保持队列中。时延到期时,保持队列被指派给正确的资源队列(链路或线程),并且该队列被正常处理。
该方案使用了一些附加队列(虚拟链路),这些附加队列被创建来允许移动持久的粗流。对于诸如分组转发线程之类的使用情形,这很容易实现。对于端口通道实现,可能涉及到来自传送驱动器的支持。
因此,处理持久的粗流的一种方式是创建一个或多个“保持”队列(暂时队列),为负载超过预确定的阈值达预确定的时间段的桶来分配不同的资源队列,将该桶中的分组指向这些保持队列中的一个保持队列达时延时间段,并且在时延时间段到期时,保持队列中的分组被指向与之前分配给该桶的资源队列不同的资源队列。
该动态分配方案依赖于进行哈希来将流捆绑/指派到可管理数目的桶中。该哈希方案可以***纵来确保熟知的“粗”流不被放入相同的一个桶或多个桶中,放入相同的桶将使特定的桶过载。所谓粗流的示例是具有大量持久的流量并且被发送到已知的用于这样的粗流的端口,例如,虚拟机迁移(比如,Vmotion)流量。
图8示出了描绘对熟知的粗流的特殊处理进行处理有用的操作的流程图。在对分组进行哈希计算来确定其桶标识符(图4中的操作100处)之后,在170处,检查该分组的头部来确定该分组的头部中的源地址、目的地址或其他参数是否表明该分组与熟知的粗流相关联。如果在170处确定该分组与熟知的粗流相关联,那么在172处,不是将该分组指派给由哈希计算得出的桶,而是为其分配从桶的预留范围中的桶标识符。因此,有多个被预留用于在处理熟知的粗流以避免将其全部指派给相同的桶中使用的桶。另一方面,如果在170处确定该分组不与熟知的粗流相关联,那么在174处,将该分组指派给基于哈希计算的桶,例如,Bucket ID=Hash(分组头部)。
概括地说,图8的过程涉及基于分组的目的地来确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给相同的桶。
图9是描绘了本申请所描述的动态映射技术的整体操作流程的流程图。在200处,在网络设备处接收分组流以将其在网络中从该网络设备处进行路由。每个流包括要从源发送至连接的分组。在210处,为队列分配表存储数据,该队列分配表维护多个桶,所接收的流的分组被指派给这多个桶,并且该队列分配表表明为各个桶分配多个资源队列中的哪个资源队列。在220处,对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,该分组被指派多个桶中的一个桶。在230处,为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。因此,为在230处执行该操作,对于这些多个资源队列,将数据存储在网络设备的存储器中。
如上面所解释的,对于分组被指派给的每个桶,队列分配表还存储标识为该桶分配的资源队列的队列标识符。而且,确定对于分组从所计算的哈希函数得出的桶是否已经被指派给多个资源队列中的一个资源队列,如果是,那么该分组被指派给该桶,并且对于该桶,负载的度量增加。当确定对于分组从所计算的哈希函数得出的桶是尚未为其分配了资源队列的桶时,针对该桶的资源队列被分配,并且在队列分配表中的对于该桶的条目被更新,包括对于该桶被指派给的资源队列的队列标识符。
本申请描述的动态映射方案有效地解决了短期流的负载均衡,而不会增加复杂度。熟知的粗流可以通过在哈希方案中增加特殊的处理来解决。持久流可以通过增加一些附加的复杂度来解决。不像本质上按照与负载相反来分发流的静态哈希方案那样,该动态分配方法允许分发实际的负载。通过仅当桶空闲时移动流,确保了分组顺序维持。
上述旨在仅通过示例的方式描述。

Claims (24)

1.一种方法,包括:
在网络设备处接收分组流以在网络中从所述网络设备进行路由,每个流包括要从源发送至连接的分组;
为队列分配表存储数据,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;
对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且
为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。
2.如权利要求1所述的方法,其中,为队列分配表存储数据还包括为分组被指派给的每个桶存储标识为该桶分配的资源队列的队列标识符。
3.如权利要求2所述的方法,还包括确定针对分组从所计算的哈希函数得出的桶是否已经被指派给多个资源队列中的一个资源队列,如果是,那么将该分组指派给该桶,并且增大对该桶的负载的度量,并且当确定针对分组从所计算的哈希函数得出的桶是尚未为其分配了资源队列的桶时,还包括为该桶分配资源队列,并且为该桶更新所述队列分配表中的条目,所述条目包括该桶被指派给的资源队列的队列标识符。
4.如权利要求1所述的方法,还包括确定多个资源队列中每个资源队列的容量,其中,分配包括按各个资源队列的相对容量的顺序将新的桶分配给来自资源队列的轮循列表中的资源队列。
5.如权利要求4所述的方法,其中,周期地执行确定容量。
6.如权利要求1所述的方法,还包括周期地确定多个桶上的负载,其中,为队列分配表存储数据包括存储对多个桶中的每个桶上的负载的度量。
7.如权利要求6所述的方法,还包括当桶被确定对于至少预确定的时间段没有负载时,从所述队列分配表删除对于该桶的条目,以便当分组后续地被指派给该桶时,该桶可以被移到不同的资源队列。
8.如权利要求6所述的方法,还包括确定何时桶上的负载超过预确定的阈值达预确定的时间段。
9.如权利要求8所述的方法,还包括创建一个或多个保持队列,为负载超过预确定的阈值达预确定的时间段的桶分配不同的资源队列,将该桶中的分组指向所述保持队列中的一个保持队列达时延时间段,并且当所述时延时间段到期时,将该保持队列中的分组指向与之前为该桶分配的资源队列不同的资源队列。
10.如权利要求1所述的方法,还包括基于分组的目的地,确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给同样的桶。
11.如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与端口通道的成员相关联。
12.如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与多个处理核中的核相关联。
13.如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与网络中多个链路中的链路相关联。
14.编码有包括计算机可执行指令的软件的一个或多个计算机可读存储介质,并且当所述软件被运行时可操作来:
在网络设备处接收分组流以在网络中从所述网络设备进行路由,每个流包括要从源发送至连接的分组;
为队列分配表存储数据,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;
对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且
为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。
15.如权利要求14所述的计算机可读存储介质,其中,可操作来存储的指令包括可操作来为分组被指派给的每个桶存储标识为该桶分配的资源队列的队列标识符的指令。
16.如权利要求14所述的计算机可读存储介质,还包括可操作来确定多个资源队列中的每个资源队列的容量的指令,其中,可操作来分配的指令包括可操作来按各个资源队列的相对容量的顺序将新的桶分配给来自资源队列的轮循列表中的资源队列的指令。
17.如权利要求14所述的计算机可读存储介质,还包括可操作来周期地确定多个桶上的负载的指令,其中,可操作来存储的指令包括可操作来存储对多个桶中每个桶上的负载的度量的指令。
18.如权利要求14所述的计算机可读存储介质,还包括可操作来基于分组的目的地确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给同样的桶的指令。
19.一种装置,包括:
网络接口单元,被配置来使能通过网络进行通信;
存储器;
处理器,耦合到所述网络接口单元和所述存储器,其中,所述处理器被配置来:
接收要在网络中进行路由的分组流,每个流包括从源到连接的分组;
为队列分配表将数据存储在所述存储器中,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;
对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且
为多个资源队列存储数据;以及
为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。
20.如权利要求19所述的装置,其中,所述处理器还被配置来周期地确定多个桶上的负载,并且在所述队列分配表中存储对多个桶中的每个桶上的负载的度量。
21.如权利要求20所述的装置,其中,所述处理器还被配置来当桶被确定对于至少预确定的时间段没有负载时,从所述队列分配表删除对于该桶的条目,以便当分组后续地被指派给该桶时,该桶可以被移到不同的资源队列。
22.如权利要求21所述的装置,其中,所述处理器还被配置来确定何时桶上的负载超过预确定的阈值达预确定的时间段。
23.如权利要求22所述的装置,其中,所述处理器还被配置来生成一个或多个保持队列,为负载超过预确定的阈值达预确定的时间段的桶分配不同的资源队列,将该桶中的分组指向所述保持队列中的一个保持队列达时延时间段,当所述时延时间段到期时,将该保持队列中的分组指向与之前为该桶分配的资源队列不同的资源队列。
24.如权利要求19所述的装置,其中,所述处理器还被配置来基于分组的目的地确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给同样的桶。
CN201280067657.9A 2012-01-23 2012-12-20 无分组重排序的动态负载均衡 Active CN104067578B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/355,968 US8705366B2 (en) 2012-01-23 2012-01-23 Dynamic load balancing without packet reordering
US13/355,968 2012-01-23
PCT/US2012/070756 WO2013112250A1 (en) 2012-01-23 2012-12-20 Dynamic load balancing without packet reordering

Publications (2)

Publication Number Publication Date
CN104067578A true CN104067578A (zh) 2014-09-24
CN104067578B CN104067578B (zh) 2018-04-17

Family

ID=47557515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280067657.9A Active CN104067578B (zh) 2012-01-23 2012-12-20 无分组重排序的动态负载均衡

Country Status (4)

Country Link
US (1) US8705366B2 (zh)
EP (1) EP2807804B1 (zh)
CN (1) CN104067578B (zh)
WO (1) WO2013112250A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107438994A (zh) * 2015-06-26 2017-12-05 慧与发展有限责任合伙企业 服务器负载均衡
CN117311947A (zh) * 2023-11-24 2023-12-29 江西云眼视界科技股份有限公司 一种线程池管理方法及***

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130263151A1 (en) * 2012-04-03 2013-10-03 Microsoft Corporation Consistent Hashing Table for Workload Distribution
US10148575B2 (en) 2014-12-22 2018-12-04 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive load balancing in packet processing
US9882815B2 (en) * 2014-12-22 2018-01-30 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive load balancing in packet processing
US10218629B1 (en) 2014-12-23 2019-02-26 Juniper Networks, Inc. Moving packet flows between network paths
US10305816B1 (en) * 2015-03-31 2019-05-28 Cisco Technology, Inc. Adjustable bit mask for high-speed native load balancing on a switch
US10419891B2 (en) * 2015-05-14 2019-09-17 Twilio, Inc. System and method for communicating through multiple endpoints
US10069732B2 (en) 2016-09-02 2018-09-04 Telefonaktiebolaget Lm Ericsson (Publ) Techniques for architecture-independent dynamic flow learning in a packet forwarder
US10862617B2 (en) * 2017-05-30 2020-12-08 Marvell Asia Pte, Ltd. Flowlet scheduler for multicore network processors
US11689470B2 (en) 2018-12-17 2023-06-27 Intel Corporation Allocation of processors for processing packets
US20220191740A1 (en) * 2019-03-28 2022-06-16 Nec Corporation Radio packet transmission apparatus, radio packet transmission method, and non-transitory computer readable medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1579075A (zh) * 2002-03-05 2005-02-09 国际商业机器公司 将分组流有序动态分布到网络处理机上的方法和***
US20060221974A1 (en) * 2005-04-02 2006-10-05 Cisco Technology, Inc. Method and apparatus for dynamic load balancing over a network link bundle
CN101977162A (zh) * 2010-12-03 2011-02-16 电子科技大学 一种高速网络的负载均衡方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL125271A0 (en) 1998-07-08 1999-03-12 Galileo Technology Ltd Head of line blocking
US7236489B1 (en) 2000-04-27 2007-06-26 Mosaid Technologies, Inc. Port packet queuing
AU2001271901A1 (en) 2000-07-07 2002-01-21 Entridia Corporation High speed packet processing architecture
US7020713B1 (en) * 2000-10-10 2006-03-28 Novell, Inc. System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
US7529242B1 (en) * 2002-02-15 2009-05-05 Symantec Corporation Routing network packets for multi-processor network flow analysis
US6765867B2 (en) 2002-04-30 2004-07-20 Transwitch Corporation Method and apparatus for avoiding head of line blocking in an ATM (asynchronous transfer mode) device
US7161904B2 (en) * 2002-06-04 2007-01-09 Fortinet, Inc. System and method for hierarchical metering in a virtual router based network switch
US7924828B2 (en) * 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US7782885B1 (en) 2002-12-10 2010-08-24 Cisco Technology, Inc. System and method for queue management using queue sets
US20070014240A1 (en) 2005-07-12 2007-01-18 Alok Kumar Using locks to coordinate processing of packets in a flow
KR100716184B1 (ko) 2006-01-24 2007-05-10 삼성전자주식회사 네트워크 프로세서에서의 큐 관리 방법 및 그 장치
US7493428B2 (en) 2006-07-25 2009-02-17 International Business Machines Corporation Method and system for dynamic queue splitting for maximizing throughput of queue based operations while maintaining per-destination order of operations
JP4465394B2 (ja) 2008-04-08 2010-05-19 富士通株式会社 パケット中継装置、パケット中継方法およびパケット中継プログラム
US7787379B2 (en) 2008-06-03 2010-08-31 Cisco Technology, Inc. Integrated flow control
US7792131B1 (en) 2009-03-10 2010-09-07 Cisco Technologies, Inc. Queue sharing with fair rate guarantee
US8472443B2 (en) 2009-05-15 2013-06-25 Cisco Technology Port grouping for association with virtual interfaces

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1579075A (zh) * 2002-03-05 2005-02-09 国际商业机器公司 将分组流有序动态分布到网络处理机上的方法和***
US20060221974A1 (en) * 2005-04-02 2006-10-05 Cisco Technology, Inc. Method and apparatus for dynamic load balancing over a network link bundle
CN101977162A (zh) * 2010-12-03 2011-02-16 电子科技大学 一种高速网络的负载均衡方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107438994A (zh) * 2015-06-26 2017-12-05 慧与发展有限责任合伙企业 服务器负载均衡
US10742722B2 (en) 2015-06-26 2020-08-11 Hewlett Packard Enterprise Development Lp Server load balancing
CN107438994B (zh) * 2015-06-26 2021-02-05 慧与发展有限责任合伙企业 用于服务器负载均衡的方法、设备和计算机存储介质
CN117311947A (zh) * 2023-11-24 2023-12-29 江西云眼视界科技股份有限公司 一种线程池管理方法及***
CN117311947B (zh) * 2023-11-24 2024-02-09 江西云眼视界科技股份有限公司 一种线程池管理方法及***

Also Published As

Publication number Publication date
EP2807804B1 (en) 2019-02-20
WO2013112250A1 (en) 2013-08-01
CN104067578B (zh) 2018-04-17
US8705366B2 (en) 2014-04-22
US20130188494A1 (en) 2013-07-25
EP2807804A1 (en) 2014-12-03

Similar Documents

Publication Publication Date Title
CN104067578A (zh) 无分组重排序的动态负载均衡
US10382362B2 (en) Network server having hardware-based virtual router integrated circuit for virtual networking
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算***以及负载均衡方法
US9294304B2 (en) Host network accelerator for data center overlay network
US9703743B2 (en) PCIe-based host network accelerators (HNAS) for data center overlay network
CN106330769B (zh) 一种业务处理方法及服务器
CN103118076B (zh) 升级服务器集群***及其负载均衡方法
US7694009B2 (en) System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
CN104396187B (zh) 带宽保证和工作保持的方法及装置
US9485191B2 (en) Flow-control within a high-performance, scalable and drop-free data center switch fabric
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
CN105159775A (zh) 基于负载均衡器的云计算数据中心的管理***和管理方法
CN104426799A (zh) 通信量和负载感知动态队列管理
CN105052074A (zh) 用于提供虚拟化直径网络架构以及用于将业务量路由至动态实例化的直径资源实例的方法、***和计算机可读介质
CN102035737A (zh) 一种基于认知网络的自适应负载均衡方法和装置
US20020016883A1 (en) Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memory management
US10063478B2 (en) Switching device and control method of switching device
CN111356181B (zh) 流量转发方法、装置、网络设备和计算机可读存储介质
KR20130060350A (ko) Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치
CN115378885B (zh) 超融合架构下的虚拟机业务网络带宽管理方法及装置
KR20120065724A (ko) 다수 패킷 처리 엔진에서의 부하 분산을 위한 패킷 분산 처리 장치 및 방법
CN103546522A (zh) 确定存储服务器的方法及分布式存储***
US11528230B2 (en) Transmission device, method, and recording medium
JP2013161283A (ja) サーバ、物理ノード、負荷分散方法およびプログラム
Shen et al. Rendering differential performance preference through intelligent network edge in cloud data centers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant