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

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

Info

Publication number
CN105373433A
CN105373433A CN201510833727.2A CN201510833727A CN105373433A CN 105373433 A CN105373433 A CN 105373433A CN 201510833727 A CN201510833727 A CN 201510833727A CN 105373433 A CN105373433 A CN 105373433A
Authority
CN
China
Prior art keywords
media stream
cpu
stream data
load balancing
destination interface
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
CN201510833727.2A
Other languages
English (en)
Other versions
CN105373433B (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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (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(IPCamera,网络摄像机)、网络设备可以为NVR(NetworkVideoRecorder,网络视频录像机)设备,或者DVR(DigitalVideoRecorder,硬盘录像机);或者媒体流发送端为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(OpenNetworkVideoInterfaceForum,开放型网络视频接口论坛)报文协商获取监控前端设备的主码流、辅码流、三码流的码流大小,主码流、辅码流、三码流的处理复杂度不同,可根据处理复杂度对相应码流的码流大小进行加权处理,进而得到媒体流数据的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 (12)

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

Cited By (3)

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

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 北京航空航天大学 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法

Cited By (6)

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

Also Published As

Publication number Publication date
CN105373433B (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
Jader et al. A state of art survey for web server performance measurement and load balancing mechanisms
US11171969B2 (en) Systems and methods for real-time configurable load determination
US10812358B2 (en) Performance-based content delivery
US10027739B1 (en) Performance-based content delivery
US20180124165A1 (en) Load balancing of distributed services
Rani et al. An implementation of modified blowfish technique with honey bee behavior optimization for load balancing in cloud system environment
US20060277295A1 (en) Monitoring system and monitoring method
US20170171344A1 (en) Scheduling method and server for content delivery network service node
US20080270399A1 (en) Method and system for parallel flow-awared pattern matching
US9161064B2 (en) Auto-scaling management of web content
US11184429B2 (en) Sharing network connections to content sources
US9160639B2 (en) Network flow abnormality detection system and a method of the same
CN109726004B (zh) 一种数据处理方法及装置
KR101679573B1 (ko) 멀티코어 처리 시스템에서 dimm 채널 분산을 이용한 트래픽 보안 서비스 제공 방법 및 장치
JP2016149698A (ja) パケット通信装置およびパケット受信処理方法
Khorassani et al. Performance evaluation of MPI libraries on GPU-enabled OpenPOWER architectures: Early experiences
CN105373433A (zh) 多核cpu负载均衡方法及装置
EP2634699B1 (en) Application monitoring
CN102404211A (zh) 一种amp架构下处理器负载均衡的实现方法及装置
Ramu Performance Impact of Microservices Architecture
CN115277080B (zh) 基于默克尔树的内容分发网络缓存污染防御方法
CN115033904A (zh) 数据处理方法、装置、系统、介质和产品
US8495141B2 (en) Efficient maintenance of a distributed system membership view
Ting et al. Smart video hosting and processing platform for Internet-of-Things
KR100980593B1 (ko) 유비쿼터스 모니터링 시스템

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