CN105373433B - 多核cpu负载均衡方法及装置 - Google Patents

多核cpu负载均衡方法及装置 Download PDF

Info

Publication number
CN105373433B
CN105373433B CN201510833727.2A CN201510833727A CN105373433B CN 105373433 B CN105373433 B CN 105373433B CN 201510833727 A CN201510833727 A CN 201510833727A CN 105373433 B CN105373433 B CN 105373433B
Authority
CN
China
Prior art keywords
media stream
cpu
stream data
processing
consuming
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.)
Active
Application number
CN201510833727.2A
Other languages
English (en)
Other versions
CN105373433A (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.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Zhejiang Uniview 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 Zhejiang Uniview Technologies Co Ltd filed Critical Zhejiang Uniview Technologies Co Ltd
Priority to CN201510833727.2A priority Critical patent/CN105373433B/zh
Publication of CN105373433A publication Critical patent/CN105373433A/zh
Application granted granted Critical
Publication of CN105373433B publication Critical patent/CN105373433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供多核CPU负载均衡方法及装置,该方法包括:网络设备接收每个媒体流发送端发送的媒体流数据;解析每个媒体流发送端发送的媒体流数据,获得每个媒体流发送端的媒体流数据的目的端口;根据目的端口,获取每个媒体流发送端的媒体流数据对应的处理CPU,其中,媒体流数据对应的处理CPU,为网络设备对多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU;使用处理CPU对媒体流数据进行处理。应用本发明可以有效实现多核CPU之间的负载均衡,提高网络设备并行处理媒体流数据的能力。

Description

多核CPU负载均衡方法及装置
技术领域
本发明涉及多媒体通信技术领域,尤其涉及一种多核CPU负载均衡方法及装置。
背景技术
在多媒体通信技术领域,需要传输或者处理的数据非常大,因此对网络设备的数据吞吐能力要求高。对于包含多核CPU的网络设备,提高多核CPU之间的负载均衡,是提高网络设备数据吞吐量的有效途径。
现有技术中,网络设备可以通过使用散列函数计算数据包的源IP地址、目的IP地址、端口号的散列值,将不同散列值的数据包发送到与其对应CPU的接收数据包队列中,由该CPU接收并处理数据包,实现数据包在网络设备多核CPU之间的均衡处理。但是现有技术针对某种散列函数,例如,如果网络设备具有双核CPU,如果散列函数为处理CPU的CPU号=(源IP地址+目的IP地址+端口值)%2,可能出现多组(源IP地址,目的IP地址,端口值)经过散列函数的计算后得到的散列值相同的情况,使得某个CPU承担非常大的负载,使用这种散列函数不能有效实现多核CPU之间的负载均衡。
发明内容
本发明提供一种多核CPU负载均衡方法及装置,以解决现有技术中不能有效实现多核CPU之间负载均衡的问题,进而可以提高网络设备并行处理媒体流数据的能力。
根据本发明实施例的第一方面,提供一种多核CPU负载均衡方法,所述方法应用于网络设备,所述网络设备具有多核CPU,所述网络设备与多个媒体流发送端连接,所述方法包括:
接收每个媒体流发送端发送的媒体流数据;
解析所述每个媒体流发送端发送的媒体流数据,获得所述每个媒体流发送端的媒体流数据的目的端口;
根据所述目的端口,获取所述每个媒体流发送端的媒体流数据对应的处理CPU,其中,所述媒体流数据对应的处理CPU,为所述网络设备对所述多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的所述网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU;
使用所述处理CPU对所述媒体流数据进行处理。
根据本发明实施例的第二方面,提供一种多核CPU负载均衡装置,所述装置应用于网络设备,所述网络设备具有多核CPU,所述网络设备与多个媒体流发送端连接,所述装置包括:
接收单元,用于接收每个媒体流发送端发送的媒体流数据;
解析单元,用于解析所述每个媒体流发送端发送的媒体流数据,获得所述每个媒体流发送端的媒体流数据的目的端口;
分发单元,用于根据所述目的端口,获取所述每个媒体流发送端的媒体流数据对应的处理CPU,其中,所述媒体流数据对应的处理CPU,为所述网络设备对所述多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的所述网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU;
处理单元,用于使用所述处理CPU对所述媒体流数据进行处理。
应用本发明实施例,网络设备接收到媒体流发送端发送的媒体流数据时,即可解析媒体流数据获得该媒体流数据的目的端口,根据该目的端口可获取媒体流数据的处理CPU,由该处理CPU对媒体流数据进行处理即可。本发明根据媒体流数据的目的端口获取到的对应的处理CPU为所述网络设备对所述多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的所述网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU,解决了现有技术中不能有效实现多核CPU之间负载均衡的问题,可以提高网络设备并行处理媒体流数据的能力。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明实施例的一个应用场景示意图;
图2为本发明一种实施方式中多核CPU负载均衡方法流程图;
图3为本发明一种实施方式中建立负载均衡表的方法流程图;
图4为本发明一种实施方式中多核CPU负载均衡装置所在网络设备的一种硬件结构图;
图5为本发明一种实施方式中多核CPU负载均衡装置框图。
具体实施方式
为便于对本发明的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明保护范围的限定。
本发明实施例提供的技术方法可应用于视频监控领域、视频点播领域等多媒体通信技术领域,参见图1,为本发明实施例的一个应用场景示意图:
图1中,每个媒体流发送端与网络设备通过网络进行通信,本发明中网络设备具有多核CPU。其中,在视频监控领域,媒体流发送端可以为IPC(IP Camera,网络摄像机)、网络设备可以为NVR(Network Video Recorder,网络视频录像机)设备,或者DVR(DigitalVideo Recorder,硬盘录像机);或者媒体流发送端为NVR设备、DVR设备,网络设备为视频管理服务器,网络设备还可以为中心媒体转发服务器,监控前端设备可通过网络向网络设备发送媒体流数据。在视频点播领域,媒体流发送端可以为视频资源运营网站设置的视频服务器,网络设备可以为用户的手机、PC等客户端设备,客户端设备可以向视频服务器请求媒体流数据。使用本发明实施例提供的技术方案,网络设备可以对每个媒体流发送端将要发送的媒体流数据进行CPU处理耗时预测,在网络设备接收到媒体流数据时,即可解析媒体流数据得到该媒体流数据的目的端口,根据该目的端口获取媒体流数据对应的处理CPU为网络设备对多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU,由此本发明可实现网络设备上多核CPU之间的负载均衡。本申请文件中所言的目的端口为接收媒体流数据的网络设备的本地端口。
参见图2,为本发明一种实施方式中多核CPU负载均衡方法流程图:
步骤201:接收每个媒体流发送端发送的媒体流数据。
网络设备一般通过网卡接收媒体流发送端发送的媒体流数据。
步骤202:解析所述媒体流数据,获得所述媒体流数据的目的端口。
网络设备的网卡对接收到的媒体流数据进行缓存,当缓存满一帧数据后,触发中断,然后解析媒体流数据的帧头数据即可获取媒体流数据的目的端口。
步骤203:根据所述目的端口,获取所述每个媒体流发送端的媒体流数据对应的处理CPU,其中,所述媒体流数据对应的处理CPU,为所述网络设备对所述多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的所述网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU。
本发明技术方案是基于媒体流数据的CPU处理耗时预测实现多核CPU负载均衡的,为了实现本发明实施例,可预先创建一个负载均衡表。
在一种可能的实现方式中,该负载均衡表可以为三元组表,包括媒体流数据的目的端口、CPU处理媒体流数据的耗时、媒体流数据处理CPU的CPU号,媒体流数据的目的端口为负载均衡表的索引,负载均衡表如下表所示:
其中,上述表格中的a为CPU耗时单位。
网络设备在在接收到用户的操作指令,如观看某个视频的操作指令时,可以去预测该媒体流发送端单位时间内发送的媒体流数据的CPU处理耗时后,根据负载均衡表中每个CPU处理媒体流数据的耗时,计算每个CPU的负载,确定网络设备中负载最小的CPU作为该媒体流数据的处理CPU,然后为该媒体流数据分配一个目的端口,由此可以创建一条包括媒体流数据的目的端口、CPU处理媒体流数据的耗时、媒体流数据的处理CPU的一条表项。
在另一种可能的实现方式中,可以使用预先确定目的端口到CPU的映射关系,即使用所述目的端口的端口值对所述网络设备的CPU个数取余得到的值,作为所述目的端口所对应的CPU号。在这种实现方式下,本发明实施例可创建一个包括媒体流数据的目的端口、CPU处理媒体流数据的耗时的二元组表作为负载均衡表。后续要为其他媒体流发送端发送的媒体流数据分配相应的处理CPU时,可根据该负载均衡表以及目的端口到CPU的映射关系为每个媒体流发送端的媒体流数据选择网络设备中进行CPU处理耗时预测时负载最小的CPU作为处理CPU,再根据映射关系确定对应的媒体流数据的目的端口,并添加表项到负载均衡表中。
当某个媒体流发送端的媒体流数据传输完毕时,可断开与该媒体流发送端的数据连接,并删除负载均衡表中相应的表项。
步骤204:使用所述处理CPU对所述媒体流数据进行处理。
其中本发明技术方案的执行主体为网络设备上的某个CPU,该CPU可以为CPU0,也可以为其他CPU,本发明对此不作限定。
结合图2的实施例可知,在网络设备接收到媒体流发送端发送的媒体流数据时,即可解析媒体流数据获得该媒体流数据的目的端口,根据该目的端口,可获取媒体流数据的处理CPU,由该处理CPU对媒体流数据进行处理即可。本发明根据媒体流数据的目的端口获取对应的处理CPU,而该处理CPU,为所述网络设备对所述多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的所述网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU,解决了现有技术中不能有效实现多核CPU之间负载均衡的问题,可以提高网络设备并行处理媒体流数据的能力。
参见图3,图3为本发明一种实施方式中建立负载均衡表的方法流程图:
步骤301:获取第一股媒体流数据的CPU处理耗时。
在一种可选的实现方式中,网络设备可媒体流发送端进行报文协商,获取第一股媒体流数据的码流大小,根据第一媒体流数据的处理复杂度,对第一媒体流数据的码流大小进行加权处理得到第一股媒体流数据的CPU处理耗时。例如,在视频监控领域,可使用ONVIF(Open Network Video Interface Forum,开放型网络视频接口论坛)报文协商获取监控前端设备的主码流、辅码流、三码流的码流大小,主码流、辅码流、三码流的处理复杂度不同,可根据处理复杂度对相应码流的码流大小进行加权处理,进而得到媒体流数据的CPU处理耗时。其中,对媒体流数据进行存储的处理复杂度最低,对媒体流数据进行存储并转发处理的复杂度较低,对媒体流数据进行存储并实时播放处理的复杂度较高,对媒体流数据进行智能分析处理的复杂度最高,具体加权权重可根据试验得出经验值。
在另一种可选的实现方式中,网络设备可根据与媒体流发送端预先约定的负载获得媒体流数据的CPU处理耗时。例如,在视频监控领域,监控客户端设备可与所连接的多个监控前端设备预先约定单位时间内发送的媒体流数据的大小,网络设备可根据该预先约定获得媒体流数据的CPU处理耗时。
步骤302:选择一个空闲端口作为第一股媒体流数据的目的端口。
步骤303:为负载均衡表创建第一条表项。
在一种可能的实现方式中,如果负载均衡表为三元组表,每条表项的内容包括媒体流数据的目的端口、CPU处理媒体流数据的耗时及媒体流数据处理CPU的CPU号,第一条表项的三个值可为第一股媒体流数据的目的端口的端口值、第一股媒体流数据的CPU处理耗时、CPU1(当然也可为其他CPU)。
在另一种可能的实现方式中,如果负载均衡表为二元组表,每条表项的内容包括媒体流数据的目的端口、CPU处理媒体流数据的耗时,第一条表项的两个值可为第一股媒体流数据的目的端口的端口值、第一股媒体流数据的CPU处理耗时。
步骤304:建立与第一股媒体流数据对应的媒体流发送端之间的数据连接。
网络设备可根据第一条表项建立与第一股媒体流数据对应的媒体流发送端之间的数据连接,即网络设备通过步骤302所选择的空闲端口接收该第一股媒体流数据。
步骤305:继续获取其他媒体流数据的CPU处理耗时。
其他媒体流数据的CPU处理耗时的获取方法与步骤301相同,此处不再赘述。
步骤306:遍历负载均衡表,获取负载最小的CPU号,并创建新的表项。
在一种可能的实现方式中,如果负载均衡表为三元组表,遍历负载均衡表,对CPU号相同的表项的CPU处理媒体流数据的耗时进行求和,并根据每个CPU号对应的媒体流数据的股数对CPU的耗时进行非线性补偿处理,得到每个CPU的负载,根据得到的每个CPU的负载,获取负载最小的CPU。计算得到每个CPU的负载后,可通过排序算法,对每个CPU按照负载大小进行排序,获取负载最小的CPU。获取到负载最小的CPU后,即可选择一个空闲端口作为对应媒体流数据的目的端口,然后按照步骤303的方法创建一条新的表项即可。需要说明的是,在三元组表的表项创建过程中,目的端口的选择和获取负载最小的CPU两个操作步骤并无先后顺序,可以先选择目的端口再获取负载最小的CPU,也可以先选择负载最小的CPU再选择目的端口。
需要说明的是,CPU处理每一个媒体流还需额外的时间开销,即CPU处理10个1兆的辅码流与处理1个10兆的辅码流所需时间不等,因此,可根据媒体流的个数对根据负载均衡表所计算出的每个CPU的负载进行非线性补偿处理,即每多一个媒体流,增加一定的负载补偿量作为补偿处理。所增加的负载补偿量的大小需要系统实测才能得出。
在另一种可能的实现方式中,如果负载均衡表为二元组表,则可遍历负载均衡表,获取每个表项的目的端口的端口值,对每个目的端口号取余获得对应表项的CPU号,对CPU号相同的表项的CPU处理媒体流数据的耗时进行求和,并根据每个CPU号对应的媒体流数据的股数对CPU的耗时进行非线性补偿处理,得到每个CPU的负载,根据得到的每个CPU的负载,获取负载最小的CPU。获取到负载最小的CPU后,即可根据所述目的端口到CPU的映射关系获取所述负载最小的CPU对应的空闲端口作为媒体流发送端N的目的端口,然后按照步骤303的方法创建一条新的表项即可。
其中,根据所述目的端口到CPU的映射关系,获取负载最小的CPU对应的空闲端口作为媒体流发送端N的目的端口的操作具体可以为:检查端口号50000+CPU号×(CPU个数)是否空闲,若空闲则可选择该端口作为媒体流发送端N的目的端口,若不空闲,则继续检测端口值(上一次检测的端口值)+CPU个数后的端口是否空闲,直到获取到空闲端口为止。这里从端口值为50000的端口开始检测是因为一般情况下端口值为50000以上的端口都是自由使用的空闲端口。
步骤307:建立与相应媒体流发送端之间的数据连接。
其中,建立的数据连接的目的端口为负载均衡表中对应该媒体流发送端的媒体流数据的目的端口。
步骤308:当不需要再从相应媒体流发送端获取媒体流数据时,释放相应的数据连接,并在负载均衡表中清除相应的表项。
结合图3的实施例可知,网络设备可预测每个媒体流发送端单位时间内发送的媒体流数据的CPU处理耗时,并建立负载均衡表,这样在网络设备接收到某个媒体流数据时,即可根据该负载均衡表确定处理该媒体流发送端CPU,有效实现了多核CPU之间负载均衡的问题,可以提高网络设备并行处理媒体流数据的能力。
参见图4,为本发明一种实施方式中多核CPU负载均衡装置所在网络设备的一种硬件结构图:
本发明多核CPU负载均衡装置可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的核心CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明一种实施方式中多核CPU负载均衡装置所在网络设备的一种硬件结构图,除了图4所示的多核CPU、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常还可以包括其他硬件。
参见图5,为本发明一种实施方式中多核CPU负载均衡装置框图,该装置应用于网络设备上:
所述装置包括:接收单元510,解析单元520,分发单元530,处理单元540。
接收单元510,用于接收每个媒体流发送端发送的媒体流数据。
解析单元520,用于解析所述每个媒体流发送端发送的媒体流数据,获得所述每个媒体流发送端的媒体流数据的目的端口。
分发单元530,用于根据所述目的端口,获取所述每个媒体流发送端的媒体流数据对应的处理CPU,其中,所述媒体流数据对应的处理CPU,为所述网络设备对所述多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的所述网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU。
所述装载还包括:负载均衡表创建单元550,所述负载均衡表创建单元用于预先创建负载均衡表。
在一种可能的实现方式中,负载均衡表为包括媒体流数据的目的端口、CPU处理媒体流数据的耗时、CPU号的三元组表,分发单元530具体用于根据每个媒体流数据的目的端口,检索所述负载均衡表,获取所述媒体流数据的处理CPU。负载均衡表创建单元550,具体用于:当获取到第一股媒体流数据的CPU处理耗时时,选择所述网络设备的一个空闲端口作为所述第一股媒体流数据的目的端口,并为所述负载均衡表创建第一条表项;当后续获取到其他媒体流数据的CPU处理耗时时,遍历所述负载均衡表的表项,获取负载最小的CPU作为相应媒体流数据的处理CPU,再次选择所述网络设备的一个空闲端口作为所述相应媒体流发送端的目的端口,并相应创建新的表项。
所述装置还包括:预测单元560,所述预测单元用于获取每个媒体流发送端的单位时间内发送的媒体流数据的CPU处理耗时,所述预测单元560具体用于与媒体流发送端进行报文协商,获取所述媒体流发送端单位时间内发送的媒体流数据的码流大小,根据所述媒体流数据的处理复杂度,对所述媒体流数据的码流大小进行加权处理得到媒体流数据的CPU处理耗时;或者,根据与媒体流发送端预先约定的负载获得媒体流数据的CPU处理耗时。
在另一种可能的实现方式中,负载均衡表为包括目的端口、负载的二元组表,
所述分发单元530,具体用于使用所述目的端口的端口值对所述网络设备的CPU个数进行取余,获取所述目的端口对应的媒体流数据的处理CPU;所述负载均衡表创建单元550具体用于,当获取到第一股媒体流数据的CPU处理耗时时,选择所述网络设备的一个空闲端口作为所述第一股媒体流数据的目的端口,并为所述负载均衡表创建第一条表项,其中所述第一股媒体流数据的处理CPU的CPU号通过使用所述目的端口值对所述网络设备的CPU个数进行取余得到;当后续获取到其他媒体流数据的CPU处理耗时时,遍历所述负载均衡表的表项,获取负载最小的CPU作为相应媒体流数据的处理CPU,并根据所述目的端口与处理CPU之间的关系获取所述负载最小的CPU对应的一个空闲端口作为目的端口,创建新的表项。
处理单元540,使用所述处理CPU对所述媒体流数据进行处理。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种多核CPU负载均衡方法,其特征在于,所述方法应用于网络设备,所述网络设备具有多核CPU,所述网络设备与多个媒体流发送端连接,所述方法包括:
接收每个媒体流发送端发送的媒体流数据;
解析所述每个媒体流发送端发送的媒体流数据,获得所述每个媒体流发送端的媒体流数据的目的端口;
根据所述目的端口,获取所述每个媒体流发送端的媒体流数据对应的处理CPU,其中,所述媒体流数据对应的处理CPU,为所述网络设备对所述多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的所述网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU;
使用所述处理CPU对所述媒体流数据进行处理;
其中,所述媒体流发送端的单位时间内发送的媒体流数据的CPU处理耗时通过以下方式获得:
与媒体流发送端进行报文协商,获取所述媒体流发送端单位时间内发送的媒体流数据的码流大小,根据所述媒体流数据的处理复杂度,对所述媒体流数据的码流大小进行加权处理得到媒体流数据的CPU处理耗时;或者,根据与媒体流发送端预先约定的负载获得媒体流数据的CPU处理耗时。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:预先创建负载均衡表。
3.根据权利要求2所述的方法,其特征在于,所述负载均衡表为包括媒体流数据的目的端口、CPU处理媒体流数据的耗时、CPU号的三元组表;
所述根据所述目的端口,获取所述每个媒体流发送端的媒体流数据对应的处理CPU,包括:根据每个媒体流数据的目的端口,检索所述负载均衡表,获取所述媒体流数据的处理CPU;
所述负载均衡表通过以下步骤建立:
当获取到第一股媒体流数据的CPU处理耗时时,选择所述网络设备的一个空闲端口作为所述第一股媒体流数据的目的端口,并为所述负载均衡表创建第一条表项;
当后续获取到其他媒体流数据的CPU处理耗时时,遍历所述负载均衡表的表项,获取负载最小的CPU作为相应媒体流数据的处理CPU,再次选择所述网络设备的一个空闲端口作为所述相应媒体流发送端的目的端口,并相应创建新的表项。
4.根据权利要求2所述的方法,其特征在于,所述负载均衡表为包括媒体流数据的目的端口、CPU处理媒体流数据的耗时的二元组表;
所述根据所述目的端口,获取所述每个媒体流发送端的媒体流数据对应的处理CPU,包括:使用所述目的端口的端口值对所述网络设备的CPU个数进行取余,获取所述目的端口对应的媒体流数据的处理CPU;
所述负载均衡表通过以下步骤建立:
当获取到第一股媒体流数据的CPU处理耗时时,选择所述网络设备的一个空闲端口作为所述第一股媒体流数据的目的端口,并为所述负载均衡表创建第一条表项,其中所述第一股媒体流数据的处理CPU的CPU号通过使用所述目的端口值对所述网络设备的CPU个数进行取余得到;
当后续获取到其他媒体流数据的CPU处理耗时时,遍历所述负载均衡表的表项,获取负载最小的CPU作为相应媒体流数据的处理CPU,并根据所述目的端口与处理CPU之间的关系获取所述负载最小的CPU对应的一个空闲端口作为目的端口,创建新的表项。
5.根据权利要求3或者4所述的方法,其特征在于,所述获取负载最小的CPU,具体包括:
对CPU号相同的表项的CPU处理媒体流数据的耗时进行求和,并根据每个CPU号对应的媒体流数据的股数对CPU的耗时进行非线性补偿处理,得到每个CPU的负载,根据得到的每个CPU的负载,获取负载最小的CPU。
6.一种多核CPU负载均衡装置,其特征在于,所述装置应用于网络设备,所述网络设备具有多核CPU,所述网络设备与多个媒体流发送端连接,所述装置包括:
接收单元,用于接收每个媒体流发送端发送的媒体流数据;
解析单元,用于解析所述每个媒体流发送端发送的媒体流数据,获得所述每个媒体流发送端的媒体流数据的目的端口;
分发单元,用于根据所述目的端口,获取所述每个媒体流发送端的媒体流数据对应的处理CPU,其中,所述媒体流数据对应的处理CPU,为所述网络设备对所述多个媒体流发送端单位时间内发送的媒体流数据进行CPU处理耗时预测后确定的所述网络设备中对每个媒体流发送端的媒体流数据进行CPU处理耗时预测时负载最小的CPU;
处理单元,用于使用所述处理CPU对所述媒体流数据进行处理;
其中,所述装置还包括预测单元,所述预测单元用于获取每个媒体流发送端的单位时间内发送的媒体流数据的CPU处理耗时;
所述预测单元,具体用于与媒体流发送端进行报文协商,获取所述媒体流发送端单位时间内发送的媒体流数据的码流大小,根据所述媒体流数据的处理复杂度,对所述媒体流数据的码流大小进行加权处理得到媒体流数据的CPU处理耗时;或者,根据与媒体流发送端预先约定的负载获得媒体流数据的CPU处理耗时。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:负载均衡表创建单元,所述负载均衡表创建单元用于预先创建负载均衡表。
8.根据权利要求7所述的装置,其特征在于,所述负载均衡表为包括媒体流数据的目的端口、CPU处理媒体流数据的耗时、CPU号的三元组表;
所述分发单元,具体用于根据每个媒体流数据的目的端口,检索所述负载均衡表,获取所述媒体流数据的处理CPU;
所述负载均衡表创建单元,具体用于:当获取到第一股媒体流数据的CPU处理耗时时,选择所述网络设备的一个空闲端口作为所述第一股媒体流数据的目的端口,并为所述负载均衡表创建第一条表项;当后续获取到其他媒体流数据的CPU处理耗时时,遍历所述负载均衡表的表项,获取负载最小的CPU作为相应媒体流数据的处理CPU,再次选择所述网络设备的一个空闲端口作为所述相应媒体流发送端的目的端口,并相应创建新的表项。
9.根据权利要求7所述的装置,其特征在于,所述负载均衡表为包括目的端口、负载的二元组表;
所述分发单元,具体用于使用所述目的端口的端口值对所述网络设备的CPU个数进行取余,获取所述目的端口对应的媒体流数据的处理CPU;
所述负载均衡表创建单元具体用于,当获取到第一股媒体流数据的CPU处理耗时时,选择所述网络设备的一个空闲端口作为所述第一股媒体流数据的目的端口,并为所述负载均衡表创建第一条表项,其中所述第一股媒体流数据的处理CPU的CPU号通过使用所述目的端口值对所述网络设备的CPU个数进行取余得到;
当后续获取到其他媒体流数据的CPU处理耗时时,遍历所述负载均衡表的表项,获取负载最小的CPU作为相应媒体流数据的处理CPU,并根据所述目的端口与处理CPU之间的关系获取所述负载最小的CPU对应的一个空闲端口作为目的端口,创建新的表项。
10.根据权利要求8或者9所述的装置,其特征在于,所述负载均衡表创建单元包括获取模块,用于对CPU号相同的表项的CPU处理媒体流数据的耗时进行求和,并根据每个CPU号对应的媒体流数据的股数对CPU的耗时进行非线性补偿处理,得到每个CPU的负载,根据得到的每个CPU的负载,获取负载最小的CPU。
CN201510833727.2A 2015-11-25 2015-11-25 多核cpu负载均衡方法及装置 Active CN105373433B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510833727.2A CN105373433B (zh) 2015-11-25 2015-11-25 多核cpu负载均衡方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510833727.2A CN105373433B (zh) 2015-11-25 2015-11-25 多核cpu负载均衡方法及装置

Publications (2)

Publication Number Publication Date
CN105373433A CN105373433A (zh) 2016-03-02
CN105373433B true CN105373433B (zh) 2018-12-07

Family

ID=55375658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510833727.2A Active CN105373433B (zh) 2015-11-25 2015-11-25 多核cpu负载均衡方法及装置

Country Status (1)

Country Link
CN (1) CN105373433B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721328B (zh) * 2014-12-02 2020-10-30 中兴通讯股份有限公司 一种vrrp负载均衡的方法、装置和路由器
CN106487784B (zh) * 2016-09-28 2019-06-25 东软集团股份有限公司 一种会话迁移的方法、装置及防火墙
CN111131292B (zh) * 2019-12-30 2022-04-26 北京天融信网络安全技术有限公司 报文分流方法、装置、网络安全检测设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594621A (zh) * 2012-02-21 2012-07-18 德科仕通信(上海)有限公司 一种高性能ip媒体流监测方法及系统
CN103685053A (zh) * 2013-11-26 2014-03-26 北京航空航天大学 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594621A (zh) * 2012-02-21 2012-07-18 德科仕通信(上海)有限公司 一种高性能ip媒体流监测方法及系统
CN103685053A (zh) * 2013-11-26 2014-03-26 北京航空航天大学 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法

Also Published As

Publication number Publication date
CN105373433A (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
US10812358B2 (en) Performance-based content delivery
US10027739B1 (en) Performance-based content delivery
US9774665B2 (en) Load balancing of distributed services
US8812609B2 (en) Methods, circuits, devices, systems and associated computer executable code for distributed content caching and delivery
CN109981805A (zh) 一种域名解析的方法及装置
US20160127276A1 (en) Packet capture engine for commodity network interface cards in high-speed networks
WO2014061481A1 (ja) 適応的圧縮アルゴリズムを用いたデータ転送装置及びデータ転送システム
Veillon et al. F-FDN: Federation of fog computing systems for low latency video streaming
CN105373433B (zh) 多核cpu负载均衡方法及装置
US20190182315A1 (en) Sharing network connections to content sources
CN114389975B (zh) 网络带宽预估方法、装置、系统、电子设备及存储介质
CN110650209A (zh) 实现负载均衡的方法和装置
CN113453025B (zh) 数据获取方法及装置
US20150089052A1 (en) Context-Aware HTTP Compression
CN114710499A (zh) 基于算力路由的边缘计算网关负载均衡方法、装置及介质
JP7097427B2 (ja) データ処理システム、及びデータ処理方法
WO2022057131A1 (zh) 数据拥塞处理方法、装置、计算机设备和存储介质
CN109710502A (zh) 日志传输方法、装置及存储介质
JP2019009610A (ja) エッジ装置、データ処理システム、データ送信方法、及びプログラム
JP5682233B2 (ja) 解析処理装置、解析処理プログラム、及び解析処理方法
US20180349190A1 (en) Process control program, process control method, information processing device, and communication device
CN112416887B (zh) 信息交互方法、装置和电子设备
CN105302645B (zh) 一种任务分发方法及装置
CN113867946A (zh) 访问资源的方法、装置、存储介质及电子设备
US11470145B2 (en) Server selection apparatus, server selection method and program

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