CN102301664B - 多核处理器的流分发方法及装置 - Google Patents

多核处理器的流分发方法及装置 Download PDF

Info

Publication number
CN102301664B
CN102301664B CN201180001208.XA CN201180001208A CN102301664B CN 102301664 B CN102301664 B CN 102301664B CN 201180001208 A CN201180001208 A CN 201180001208A CN 102301664 B CN102301664 B CN 102301664B
Authority
CN
China
Prior art keywords
processing unit
weight
stream
distributed
current time
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.)
Expired - Fee Related
Application number
CN201180001208.XA
Other languages
English (en)
Other versions
CN102301664A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102301664A publication Critical patent/CN102301664A/zh
Application granted granted Critical
Publication of CN102301664B publication Critical patent/CN102301664B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Abstract

本发明提供一种多核处理器的流分发方法及装置。方法:接收当前时刻待分发的流;根据上一时刻多核处理器各处理单元的权重,通过轮询的方式将当前时刻待分发的流逐流分发给各处理单元,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目,权重用于标识各处理单元可处理的流量;获得各处理单元在接收到当前时刻待分发的流之后更新的权重,作为当前时刻多核处理器各处理单元的权重。装置:接收器、分发器和获得器。

Description

多核处理器的流分发方法及装置
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种多核处理器的流分发方法及装置。
背景技术
在多核处理器的运行环境中,网络业务流量往往由多核处理器的多个处理单元并行处理。报文在进入处理单元之前,通常由多核处理器的分发模块(Dispatch)统一对报文进行识别、分类,然后根据分类结果分发至各个处理单元。
分发模块对于流业务的处理通常为逐流分发,也就是说不同的流一般情况下是会被送到不同的处理单元中,同一条流的报文只会进同一个处理单元。不同的处理单元收到分发模块分发的不同的流,各处理单元维护各自的流表空间,从而避免流表操作互斥,同时确保基于流的报文保序。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
多核处理器的各个处理单元的处理能力是等同的,为了高效利用多核处理器的资源,分发模块会尽量将流量均分给各个处理单元。如果流数目比较少,同时流量在各流之间分布不均时,可能会出现有些处理单元过载而有些处理单元空闲的状态,造成多核处理器资源的浪费。
发明内容
本发明实施例提供一种多核处理器的流分发方法及装置,用以解决现有技术中可能存在的多核处理器资源利用不均衡的问题。
本发明实施例提供一种多核处理器的流分发方法,包括:
多核处理器的流分发装置接收当前时刻待分发的流;
根据上一时刻多核处理器各处理单元的权重,通过轮询的方式将所述当前时刻待分发的流逐流分发给各处理单元,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目,所述权重用于标识所述各处理单元可处理的流量;
获得各处理单元在接收到当前时刻待分发的流之后更新的权重,作为当前时刻多核处理器各处理单元的权重。
本发明实施例还提供了一种多核处理器的流分发装置,包括:
接收器,用于接收当前时刻待分发的流;
分发器,用于根据上一时刻多核处理器各处理单元的权重,通过轮询的方式将所述当前时刻待分发的流逐流分发给各处理单元,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目,所述权重用于标识所述各处理单元可处理的流量;
获得器,用于获得各处理单元在接收到当前时刻待分发的流之后更新的权重,作为当前时刻多核处理器各处理单元的权重。
本发明实施例的多核处理器的流分发方法及装置,通过根据上一时刻多核处理器各处理单元的权重,通过轮询的方式将当前时刻待分发的流逐流分发给各处理单元,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目,并获得各处理单元在接收到上述流之后更新的权重,作为当前时刻多核处理器各处理单元的权重,实现了更加合理的流量分发,更高效地利用了多核处理器的资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例提供的多核处理器的流分发方法的流程图;
图2为本发明又一个实施例提供的多核处理器的流分发方法的流程图;
图3为本发明一个实施例提供的多核处理器的流分发装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一个实施例提供的多核处理器的流分发方法的流程图,如图1所示,该方法包括:
步骤101:多核处理器的流分发装置接收当前时刻待分发的流;
其中,流分发装置可以为多核处理器中的分发模块,分发模块可以由软件实现,也可以由硬件可编程逻辑电路实现。待分发的流可以是网络中的业务流,每条业务流都可以由人为定义的一组规则来标识,例如可以通过五元组来标识一条流。当前时刻待分发的流可以是一条也可以是多条。
步骤102:多核处理器的流分发装置根据上一时刻多核处理器各处理单元的权重,通过轮询的方式将当前时刻待分发的流分发给各处理单元,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目;
其中,权重用于标识各处理单元在某一特定时刻可处理的流量。多核处理器各处理单元的权重可以通过如下方式获得:各处理单元实时获得自身的负载占用率,或者通过流量统计装置实时获取当前时刻经过本处理单元的流量速率。需要说明的是,由于处理单元实际上处理的是二进制指令,那么处理单元的负载占用率可以理解为处理单元在当前时刻正在执行的二进制指令数相对于能够执行的二进制指令数的比率。负载占用率可以用于描述处理单元的工作状态,换句话讲,负载占用率越高,说明处理单元的工作状态越忙碌,则处理单元可处理的流量,即权重,就越低。当负载占用率超过一个预设门限(如80%)时,说明该处理单元非常忙碌,不宜再处理更多的流。这时该处理单元可以将自身的状态值设置为1,即表明该处理单元的负载占用率已超过预设门限,多核处理器的流分发装置需降低该处理单元的权重。如果该处理单元在一段时间内负载占用率持续超过预设门限,则说明该处理单元严重过载,多核处理器的流分发装置可以将该处理单元的权重降为0,即不分发流给该处理单元。如果该处理单元的负载占用率未超过预设门限,则可以将自身的状态值设置为0,即表明该处理单元尚有处理更多流的能力,多核处理器的流分发装置可以提高该处理单元的权重。
流量统计装置可以通过专门的一种软件或者硬件实现,单位时间内经过处理单元的流量速率即可以理解为流量,而处理单元能够处理的流量是一定的,因此当前时刻正在处理的流量相对于能够处理的流量的比率,仍然能够反映处理单元的工作状态。即单位时间内经过处理单元的流量速率越大,该处理单元的工作状态越忙碌,则处理单元可处理的流量,即权重,就越低。因此,如果待分发的流为多条,则分发给权重高的处理单元的流数目就越大,分发给权重低的处理单元的流数目就越小。一般情况下,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目。如果待分发的流为一条,则分发给权重最高的处理单元。如果某一个处理单元在上一个时刻的权重低于某一个预设的值(如0.2),甚至达到了0,则表明此处理单元在上一时刻的某些流的流量持续过大,则不分发流给此处理单元。
步骤103:多核处理器的流分发装置获得各处理单元在接收到当前时刻待分发的流之后更新的权重,作为当前时刻多核处理器各处理单元的权重。
其中,由于各处理单元接收到的待分发的流的数目不同,且每条待分发的流的流量也不尽相同,这就导致了各处理单元在接收到当前时刻的待分发的流后,其权重也可能会发生改变,则各处理单元更新其自身的权重,多核处理器的流分发装置获得各处理单元更新的权重,作为当前时刻多核处理器各处理单元的权重,并作为下一时刻流分发的权重参考值。其中,可以通过如下方式获得各处理单元更新的权重:第一种,读取多核处理器共享内存中保存的各处理单元更新的负载占用率、或者流量速率、或者状态值,第二种,接收各处理单元发送的负载占用率、或者流量速率、或者状态值。
进一步的,作为对步骤102的一种补充情况,该方法还可以包括:如果上一时刻多核处理器各处理单元的权重均小于等于预设门限时,将当前时刻待分发的流逐包分发给各处理单元,直至接收到的当前时刻更新的权重中至少一个处理单元的权重大于预设门限后改为逐流分发。
图2为本发明又一个实施例提供的多核处理器的流分发方法的流程图,图2所示的流程图为图1所示方法的一种具体实现形式,并不用以限制本发明的保护范围,如图2所示,该方法包括:
步骤201:多核处理器的各处理单元定期获取各自的工作情况,并写入多核处理器的共享内存;
其中,处理单元的工作情况可以为负载占用率、任意单位时间内经过本处理单元的流量速率、状态值等。
其中,写入共享内存的各处理单元的工作情况可以但不限于如表1所示:
表1
Figure BDA0000085672040000051
Figure BDA0000085672040000061
其中,如果处理单元处理的流量速率在单位时间内高于预设门限,或者负载占用率高于预设门限,可以将状态值设为1,如果处理单元处理的流量速率在单位时间内低于预设门限,或者负载占用率低于预设门限,则使用状态值的默认值为0。当然,这里的1和0都是为了表达状态而设定的值,并不用以限制本发明的保护范围。预设门限是本领域技术人员根据经验或者特定处理单元的处理能力所设置的值,通常处理单元的负载占用率超过80%即可认为是超出自身的负载能力,则该预设门限可以为80%。
步骤202:多核处理器的分发模块获取到各处理单元的工作情况;
需要说明的是,分发模块既可以主动获取各处理单元的工作情况,也可以被动获取各处理单元的工作情况。其中,分发模块主动获取各处理单元的负载状态可以为:分发模块定期读取多核处理器共享内存中保存的各处理单元的工作情况;分发模块被动获取各处理单元的工作情况可以为:多核处理器的各处理单元在将各自的工作情况写入共享内存的同时,将各自的工作情况同时发送给分发模块;或者分发模块通过流量统计装置获取任意单位时间经过各处理单元的流量速率等。
步骤203:多核处理器的分发模块根据各处理单元的工作情况向各处理单元分发流。
第一种情况,初始状态下,各个处理单元的负载占用率、流量速率可以为相同的,分发模块逐流分发给各处理单元。
第二种情况,假设该多核处理器中的一个处理单元中接收到持续增大的一条流量,使得该处理单元的负载占用率或者单位时间内经过本处理单元的流量速率等超出预设门限,分发模块对该处理单元的过载情况进行记录,并按一定的顺序重新选择另一处理单元进行流量的分发。这里处理单元的重新选择可以但不限于是按照处理单元的标号顺序进行选择,或者按照处理单元负载从小到大的顺序进行选择。
第三种情况,假设分发模块将全部的处理单元都选择完成后,每一个处理单元都存在了过载记录,则将该持续增大的流量改为逐包分发,由所有的处理单元分担处理。对于第三种情况需要说明的是,逐包分发涉及到报文保序的问题,但由于目前主流的多核处理器都可以支持针对特定流的报文保序功能,虽然会对性能造成一些损耗,但不会对多核处理器的工作造成太大的问题。
第四种情况,假设分发模块感知到逐包分发的这一流量降下来后,即各处理单元中至少一个处理单元的负载占用率、或者单位时间内经过本处理单元的流量速率等低于预设门限,则重新改为逐流分发。这里需要说明的是,如果各处理单元的负载占用率、流量速率降低到预设门限以下,则分发模块可以将该处理单元的过载记录进行删除。
本发明实施例提供的多核处理器的流分发方法,通过根据处理单元的工作情况动态调整分发策略,实现了更加合理的流量分发,更高效地利用了多核处理器的资源。
图3为本发明一个实施例提供的多核处理器的流分发装置的结构示意图,如图3所示,该装置包括:接收器301、分发器302和获得器303。其中的接收器301,用于接收当前时刻待分发的流;分发器302,用于根据上一时刻多核处理器各处理单元的权重,通过轮询的方式将当前时刻待分发的流逐流分发给各处理单元,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目,权重用于标识各处理单元可处理的流量;获得器303,用于获得各处理单元在接收到当前时刻待分发的流之后更新的权重,作为当前时刻多核处理器各处理单元的权重。
一种实施方式下,分发器302还可以用于:当上一时刻多核处理器各处理单元的权重均小于等于预设门限时,将当前时刻待分发的流逐包分发给各处理单元,直至接收到当前时刻更新的权重中至少一个大于预设门限后改为逐流分发。
又一种实施方式下,该获得器303包括第一子单元,用于读取多核处理器的共享内存中保存的由各处理单元更新的负载占用率或单位时间内经过各处理单元的流量速率或状态值;或者,第二子单元,用于接收各处理单元发送的负载占用率或单位时间内经过各处理单元的流量速率或状态值。
一种实施方式下,该多核处理器的流分发装置可以为上述方法实施例中描述的多核处理器的分发模块。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (5)

1.一种多核处理器的流分发方法,其特征在于,包括:
多核处理器的流分发装置接收当前时刻待分发的流;
根据上一时刻多核处理器各处理单元的权重,通过轮询的方式将所述当前时刻待分发的流逐流分发给各处理单元,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目,所述权重用于标识所述各处理单元可处理的流量;
获得各处理单元在接收到当前时刻待分发的流之后更新的权重,作为当前时刻多核处理器各处理单元的权重;
当所述上一时刻多核处理器各处理单元的权重均小于等于预设门限时,所述方法还包括:
将所述当前时刻待分发的流逐包分发给各处理单元,直至接收到的当前时刻更新的权重中至少一个大于预设门限后改为逐流分发。
2.根据权利要求1所述的方法,其特征在于,所述获得各处理单元在接收到当前时刻待分发的流之后更新的权重,包括:
读取共享内存中保存的由所述各处理单元更新的负载占用率或单位时间内经过各处理单元的流量速率或状态值;
或者,接收所述各处理单元发送的负载占用率或单位时间内经过各处理单元的流量速率或状态值。
3.一种多核处理器的流分发装置,其特征在于,包括:
接收器,用于接收当前时刻待分发的流;
分发器,用于根据上一时刻多核处理器各处理单元的权重,通过轮询的方式将所述当前时刻待分发的流逐流分发给各处理单元,分发给权重高的处理单元的流数目大于分发给权重低的处理单元的流数目,所述权重用于标识所述各处理单元可处理的流量;
获得器,用于获得各处理单元在接收到当前时刻待分发的流之后更新的权重,作为当前时刻多核处理器各处理单元的权重;
所述分发器还用于:当所述上一时刻多核处理器各处理单元的权重均小于等于预设门限时,将所述当前时刻待分发的流逐包分发给各处理单元,直至接收到的当前时刻更新的权重中至少一个大于预设门限后改为逐流分发。
4.根据权利要求3所述的流分发装置,其特征在于,所述获得器包括:第一子单元,用于读取共享内存中保存的由所述各处理单元更新的负载占用率或单位时间内经过各处理单元的流量速率或状态值;
或者,第二子单元,用于接收所述各处理单元发送的负载占用率或单位时间内经过各处理单元的流量速率或状态值。
5.根据权利要求3或4所述的流分发装置,其特征在于,所述流分发装置为多核处理器的分发模块。
CN201180001208.XA 2011-07-20 2011-07-20 多核处理器的流分发方法及装置 Expired - Fee Related CN102301664B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/077368 WO2012106906A1 (zh) 2011-07-20 2011-07-20 多核处理器的流分发方法及装置

Publications (2)

Publication Number Publication Date
CN102301664A CN102301664A (zh) 2011-12-28
CN102301664B true CN102301664B (zh) 2014-04-30

Family

ID=45360538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180001208.XA Expired - Fee Related CN102301664B (zh) 2011-07-20 2011-07-20 多核处理器的流分发方法及装置

Country Status (2)

Country Link
CN (1) CN102301664B (zh)
WO (1) WO2012106906A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103516738A (zh) * 2012-06-21 2014-01-15 中兴通讯股份有限公司 消息的分发方法、装置及系统
EP2908479B1 (en) 2012-10-30 2018-05-23 Huawei Technologies Co., Ltd. Method, apparatus and system for implementing tunnel processing
CN102932281B (zh) * 2012-10-31 2015-08-26 华为技术有限公司 一种资源的动态分配方法及设备
CN103441952B (zh) * 2013-08-20 2016-10-05 西安电子科技大学 基于多核或众核嵌入式处理器的网络数据包处理方法
CN105224805B (zh) * 2015-10-10 2018-03-16 百度在线网络技术(北京)有限公司 基于流式计算的资源管理方法及装置
CN106385385B (zh) * 2016-09-29 2020-02-21 东软集团股份有限公司 资源分配方法及装置
CN107743138A (zh) * 2017-07-24 2018-02-27 上海壹账通金融科技有限公司 推送服务器分配方法、装置、计算机设备和存储介质
CN110798400B (zh) * 2019-10-23 2022-02-11 新华三信息安全技术有限公司 报文转发方法及装置
CN113835888B (zh) * 2021-09-23 2023-09-08 深圳创维数字技术有限公司 CPU动态分配提升WiFi性能的方法、WiFi通讯设备及存储介质
CN115225430A (zh) * 2022-07-18 2022-10-21 中安云科科技发展(山东)有限公司 一种高性能IPsec VPN CPU负载均衡方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937591A (zh) * 2006-11-02 2007-03-28 杭州华为三康技术有限公司 实现自适应调度的多内核处理器及多内核处理方法
CN101072176A (zh) * 2007-04-02 2007-11-14 华为技术有限公司 一种报文处理的方法和系统
CN101217467A (zh) * 2007-12-28 2008-07-09 杭州华三通信技术有限公司 核间负载分发装置及方法
CN101394362A (zh) * 2008-11-12 2009-03-25 清华大学 基于流分片的对多核网络处理器进行负载均衡的方法
CN101834790A (zh) * 2010-04-22 2010-09-15 上海华为技术有限公司 一种基于多核处理器的流量控制方法和多核处理器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937591A (zh) * 2006-11-02 2007-03-28 杭州华为三康技术有限公司 实现自适应调度的多内核处理器及多内核处理方法
CN101072176A (zh) * 2007-04-02 2007-11-14 华为技术有限公司 一种报文处理的方法和系统
CN101217467A (zh) * 2007-12-28 2008-07-09 杭州华三通信技术有限公司 核间负载分发装置及方法
CN101394362A (zh) * 2008-11-12 2009-03-25 清华大学 基于流分片的对多核网络处理器进行负载均衡的方法
CN101834790A (zh) * 2010-04-22 2010-09-15 上海华为技术有限公司 一种基于多核处理器的流量控制方法和多核处理器

Also Published As

Publication number Publication date
WO2012106906A1 (zh) 2012-08-16
CN102301664A (zh) 2011-12-28

Similar Documents

Publication Publication Date Title
CN102301664B (zh) 多核处理器的流分发方法及装置
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
CN111258737B (zh) 一种资源调度的方法、装置和过滤式调度器
CN107241281B (zh) 一种数据处理方法及其装置
CN101616083B (zh) 一种报文转发方法和装置
CN105337896A (zh) 报文处理方法和装置
CN110995616B (zh) 一种大流量服务器的管理方法、设备及可读介质
CN103763343A (zh) 一种业务访问处理方法及装置
CN104468407A (zh) 实现业务平台资源弹性分配的方法与装置
CN110750341A (zh) 任务调度方法、装置、系统、终端设备及存储介质
CN107577534A (zh) 一种资源调度方法及装置
EP3026869B1 (en) Method, device and system for carrying out telecommunication capability group sending
CN103838659A (zh) 一种系统日志的控制方法和装置
CN108304272B (zh) 一种数据io请求的处理方法及装置
CN103955436A (zh) 一种数据处理装置和终端
CN111181873A (zh) 数据发送方法、装置、存储介质和电子设备
CN102799487A (zh) 基于阵列/lun的io调度方法及装置
CN104391656A (zh) 一种存储设备的io资源分配方法、装置及存储设备
CN115543577A (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN113347238A (zh) 基于区块链的消息分区方法及系统、设备、存储介质
CN101997777B (zh) 中断处理方法、装置和网络设备
CN114598662A (zh) 消息队列集群联邦管理系统以及方法
CN111245794B (zh) 数据传输方法和装置
CN111858019B (zh) 任务调度方法、装置及计算机可读存储介质
CN115878309A (zh) 资源分配方法、装置、处理核、设备和计算机可读介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140430

Termination date: 20190720

CF01 Termination of patent right due to non-payment of annual fee