CN113806083A - 一种处理聚合流数据的方法和装置 - Google Patents

一种处理聚合流数据的方法和装置 Download PDF

Info

Publication number
CN113806083A
CN113806083A CN202111040279.2A CN202111040279A CN113806083A CN 113806083 A CN113806083 A CN 113806083A CN 202111040279 A CN202111040279 A CN 202111040279A CN 113806083 A CN113806083 A CN 113806083A
Authority
CN
China
Prior art keywords
load
cpu
target
bitmap
cpus
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
CN202111040279.2A
Other languages
English (en)
Other versions
CN113806083B (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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN202111040279.2A priority Critical patent/CN113806083B/zh
Publication of CN113806083A publication Critical patent/CN113806083A/zh
Application granted granted Critical
Publication of CN113806083B publication Critical patent/CN113806083B/zh
Active 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

本说明书提供一种处理聚合流数据的方法及装置,所述方法包括:基在接收到聚合流数据后,基于预设负载分担算法在所述多个CPU中为聚合流数据确定目标CPU;判断所述目标CPU的负载情况是否符合负载要求;若符合,则将所述聚合流数据发送至所述目标CPU处理。应用本方案,可基于预设分担算法先在多个CPU中确定一个作为处理聚合流数据的目标CPU,然后检测目标CPU的负载情况,当目标CPU的负载情况符合负载要求时,将聚合流数据发送至目标CPU处理,可有效的解决聚合流数据由于携带的流数据大小不同所导致部分CPU负载过高的问题,进而实现真正意义上的CPU负载均衡。

Description

一种处理聚合流数据的方法和装置
技术领域
本申请涉及通信技术领域,尤其涉及一种处理聚合流数据的方法和装置。
背景技术
随着网络***的发展,各种网络攻击层出不穷,恶意的消耗网络有限的资源或占用***,进而破坏***对外提供服务的能力,针对此类攻击,可以通过对网络数据流的检测来识别。目前网络数据流检测技术可包括Netflow、Xflow、Sflow、Netsteam等等,这些检测技术可先收集具有共同元组字段的数据流,然后对数据流进行解析和聚合,得到聚合流数据,再对聚合流数据进行检测,以识别上述恶意攻击。
对于单台路由器来说,聚合流数据的五元组是相同的,也就是多个聚合流数据的源IP,目的IP,源端口,目的端口以及协议是一样的,而现有的多核架构设备在处理数据时,会根据数据的五元组或者七元组对数据进行分发,这样就导致了所有的聚合流数据将被分发至单个CPU(Central Processing Unit,中央处理器)进行处理,进而导致设备的性能大幅降低。
发明内容
针对上述问题,本申请提供了一种处理聚合流数据的方法和装置,具体技术方案如下:
根据本申请的第一方面,提供一种数据聚合流数据的方法,该方法应用于多核架构设备,所述多核架构设备上包括多个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处理;
或者,采用不同的负载分担算法重新在所述多个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中为聚合流数据确定目标CPU。
本申请提供的技术方案,多核架构设备在接收聚合流数据后,可基于预设分担算法先在多个CPU中确定一个作为处理聚合流数据的目标CPU,然后检测目标CPU的负载情况,当目标CPU的负载情况符合负载要求时,将聚合流数据发送至目标CPU处理,可有效的解决聚合流数据由于携带的流数据大小不同所导致部分CPU负载过高的问题,进而实现真正意义上的CPU负载均衡。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。此外,本申请中的任一实施例并不需要达到上述的全部效果。
附图说明
图1是本申请示出的一种处理聚合流数据的方法的流程图;
图2是本申请示出的一种确定目标CPU的方法的流程图;
图3是本申请示出的一种CPU负载位图示意图;
图4是本申请示出的在CPU使用率为15%时的CPU负载位图各位图单元取值示意图;
图5是本申请示出的一种确定目标CPU并判断目标CPU负载情况的方法的流程图;
图6是本申请示出的在CPU使用率为90%时的CPU负载位图各位图单元取值示意图;
图7是本申请处理聚合流数据的装置所在多核架构设备的一种硬件结构图;
图8是本申请示出的一种处理聚合流数据的装置的框图;
图9是本申请示出的一种目标确定模块的单元框图;
图10是本申请示出的另一种目标确定模块的单元框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为解决上述CPU性能降低的问题,本发明实施例提供了一种处理聚合流数据的方法,以在多个CPU之间实现聚合流数据处理的均衡负载,请参见图1,图1为本申请示出的一种处理聚合流数据的方法的流程图。所述处理聚合流数据的方法可应用于多核架构设备,多核架构设备上配置有多个CPU所述方法包括以下步骤:
S102:在接收到聚合流数据后,基于预设负载分担算法在多个CPU中为聚合流数据确定目标CPU。
所述聚合流数据是对收集到的数据流进行解析和聚合得到的数据,对聚合流数据进行检测,可以识别上述恶意攻击
在接收到聚合流数据后,基于预设负载分担算法在多个CPU中为聚合流数据确定目标CPU,所述负载分担算法包括轮询法、哈希法,利用负载分担算法在多个CPU中选择一个作为用来处理聚合流数据的目标CPU,保证各CPU的负载均衡。
例如,可以预先设置多核架构设备中多个CPU的顺序,采用轮询的方式选择一个CPU作为处理聚合流数据的目标CPU;
或者,在接收到聚合流数据后提取数据指定的头部字段,基于所述参数算法,如哈希法,对所述指定头部字段运算第一调度参数,基于对第一调度参数取余的方式确定目标CPU。
S104:判断所述目标CPU的负载情况是否符合负载要求。
由于不同的聚合流数据中携带的流数据大小不同,会导致处理速率不同,当多个大数据被分到相同的CPU时,就会出现CPU负载过高,损耗性能的问题。为避免上述问题,在发送聚合流数据至目标CPU前,先判断所述目标CPU的负载情况是否符合负载要求。
所述负载情况可以包括目标CPU的使用率,所述负载要求包括目标CPU的使用率小于等于预设的一个使用率阈值,即在确定目标CPU后,获取目标CPU当前使用率,若当前使用率小于或等于预设的使用率阈值,则认为所述目标CPU的负载情况符合负载要求,若当前使用率大于预设的使用率阈值,则认为所述目标CPU的负载情况不符合负载要求;
或者,在确定目标CPU后,获取目标CPU的负载位图,基于CPU负载位图上每个负载位图单元的取值可判断目标CPU的负载情况是否符合负载要求。
S106:若符合,则将所述聚合流数据发送至所述目标CPU。
在判断所述目标CPU的负载情况符合负载要求的情况下,说明目标CPU当前负载情况尚好,可选择当前目标CPU来处理聚合流数据。
在判断所述目标CPU的负载情况不符合负载要求的情况下,说明目标CPU当前负载过高,可利用负载分担算法重新在多个CPU中为聚合流数据确定目标CPU,或者在所述多个CPU中确定使用率最低的CPU作为目标CPU,并将所述聚合流数据发送至所述使用率最低的CPU处理。
本申请多核架构设备在接收聚合流数据后,可基于预设分担算法先在多个CPU中确定一个作为处理聚合流数据的目标CPU,然后检测目标CPU的负载情况,当目标CPU的负载情况符合负载要求时,将聚合流数据发送至目标CPU处理,可有效的解决聚合流数据由于携带的流数据大小不同所导致部分CPU负载过高的问题,进而实现真正意义上的CPU负载均衡。
下面结合具体的实施例来描述本申请的实现过程。
前述步骤S102,在接收到聚合流数据后,基于预设负载分担算法在多个CPU中为聚合流数据确定目标CPU,其实施例如图2所示:
步骤1022,从接收到的聚合流数据中提取指定头部字段,基于预设参数算法对所述指定头部字段进行运算,得到所述聚合流数据的第一调度参数。
聚合流数据的头部字段一般分为固定字段和非固定字段,如数据版本,通信分类等为固定字段,时间戳,日志序列号等为非固定字段,本步骤可选取非固定的字段进行第一调度参数的运算。
以Netflow数据为例,由于其头部字段中sysUptime和Timestamp都会随时间变化,可从中选择其中一个字段,与根据数据变化的FlowSequence字段一起进行运算,算法可以是哈希算法,也可以是任意结果是正整数的算法,如karatsuba乘法,运算得到第一调度参数,后续以第一调度参数为依据为聚合流数据选择目标CPU。
步骤1024,基于CPU数量对所述第一调度参数进行取余运算,得到第一运算结果。
步骤1026,基于所述第一运算结果在所述多个CPU中确定所述目标CPU。
本实施例中,在选取目标CPU之前,可先为多核架构设备中的CPU进行编号。例如,对所述多个CPU从0开始进行顺序编号。假设,该多核架构设备中一共有32个CPU,对这32个CPU从0开始顺序编号,这些CPU的编号依次为0、1、2、…、31。对多个CPU编号后,对上述第一调度参数进行取余运算,除数是CPU的数量,余数作为第一运算结果,将与余数相同的编号的CPU作为目标CPU。
例如,若CPU的数量为32,对第一调度参数进行取余运算后,得到的余数的范围为0到31,若得到的余数为17,将编号为17的CPU作为目标CPU处理数据。
由以上描述可以看出,通过对CPU编号,利用负载分担算法可以快速的在多个CPU中确定出目标CPU。
在本申请另一实施例中,多核架构设备在获取聚合流数据后,可以通过一次运算就得到目标CPU和目标CPU的负载情况。
在本例中,每个CPU都可设置有对应的负载位图,用于表示对应CPU的使用率,每个负载位图所包括的负载位图单元数量相同,所述数量可预先设定。请参考图3,图3示出了一种负载位图,该负载位图包括N个位图单元。
CPU对应的负载位图的负载位图单元的取值可基于CPU的使用率确定,在多核架构设备上可预先设有更新时间间隔,例如预设更新时间间隔为1秒。每隔一次更新时间间隔可获取各个CPU的当前使用率,基于所述当前使用率确定对应负载位图中每个负载位图单元的取值。
由于CPU使用率最高是100%,较为简单的,可将负载位图单元的数量设置为10,每个负载位图单元可代表10%的CPU使用率。举例来说,可从左边开始,第一个负载位图单元可代表CPU的使用率为0%~10%,第二个负载位图单元代表CPU的使用率为10%~20%,以此类推。若CPU的使用率覆盖了对应负载位图单元的使用率,即CPU的使用率达到了对应负载位图单元所代表的使用率上限值,可将CPU使用率覆盖的负载位图单元的取值设置成第一参数,第一参数可以是0,还可将CPU使用率未覆盖的负载位图单元的取值设置成第二参数,第二参数可以是1。
举例来说,请参考图4,当CPU的使用率为15%时,CPU的使用率为15%完全覆盖了第一个负载位图单元的使用率,所以将第一个负载位图单元的取值设置为0,未完全覆盖第二个负载位图单元和其余的负载位图单元,所以将从第二个负载位图单元至最后一个负载位图单元的取值都设置成1。
在本例中,多核架构设备在接收到聚合流数据后,可基于CPU负载位图通过一次运算确定目标CPU以及目标CPU的负载情况,其步骤如图5所示:
步骤502,从接收到的聚合流数据中提取指定头部字段,基于预设参数算法对所述指定头部字段进行运算,得到所述聚合流数据的第二调度参数。
本步骤与步骤1022类似,其中用于运算调度参数的参数算法可与步骤1022中的参数算法相同,也可以不同,为了便于区分,可将本步骤中计算得到的调度参数称为第二调度参数。
步骤504,基于CPU数量和所述负载位图单元数量对第二调度参数进行取余运算,得到第二运算结果。
本步骤对第二调度参数进行取余运算的除数为CPU数量与CPU负载位图单元数量的乘积。
步骤506,将所述第二运算结果命中的目标负载位图对应的CPU确定为目标CPU。
可选的,对每个CPU从0开始顺序编号,每个负载位图包含有N个负载位图单元,按照CPU的编号顺序对各CPU对应的负载位图单元进行顺序编号,例如,编号为0的CPU对应的负载位图的负载位图单元从0至N-1进行编号,将编号为1的CPU对应的负载位图的负载位图单元从N至2N-1进行编号,以此类推,每个负载位图单元对应唯一编号,如下表1所示:
Figure BDA0003249011850000101
表1
若CPU的数量为M,对第二调度参数进行取余运算,除数是M×N,余数的范围为0到M×N-1,确定与余数相同编号的负载位图单元对应的CPU,并将此CPU作为目标CPU。
举例来说,若一共有32个CPU,每个CPU的负载位图包含有5个负载位图单元,对每个负载位图单元进行编号,如下表2所示:
Figure BDA0003249011850000102
表2
对第二调度参数进行取余运算,此时除数为160,若运算得到的余数为8,确定编号为8的负载位图单元对应的是编号为1的CPU,将编号为1的CPU作为目标CPU。
可选的,由于运算第二运算结果是采用十进制数进行运算,较为简单的,可将负载位图单元数量设置为10,对第二调度参数进行取余运算,将得到的余的个位数定位到负载位图单位,非个位数定位到目标CPU。
举例来说,若一共有32个CPU,每个CPU的负载位图包含有10个负载位图单元,对第二调度参数进行取余运算,此时除数为320,若运算得到的余数为17,则余数的个位数7对应的是目标CPU负载位图上从左向右数第8个负载位图单元,非个位数1对应的是编号为1的CPU,将编号为1的CPU作为目标CPU。
步骤508,基于所述第二运算结果命中的目标负载位图中的目标负载位图单元的取值判断目标CPU负载情况是否符合负载要求。
较为简单的,基于步骤506中第二运算结果确定出的负载位图单元的取值确定目标CPU的负载情况是否符合负载要求。负载位图单元的取值包括第一参数和第二参数,第一参数代表的是CPU的使用率完全覆盖此负载位图单元,若第二运算结果对应的负载位图单元的取值为第一参数,则表示目标CPU的负载情况不满足负载要求,目标CPU不可调度,需重新选择目标CPU,第二参数代表的是CPU的使用率未完全覆盖此负载位图单元,若第二运算结果对应的负载位图单元的取值为第二参数,则表示目标CPU的负载情况满足负载要求,目标CPU可调度。
举例来说,将第一参数设置为0,第二参数设置为1,若第二运算结果命中图4所示的负载位图中的第7个负载位图单元,取值为1,则表示此负载位图对应的目标CPU负载情况满足负载要求,可以被调度,将聚合流数据发送给此目标CPU处理;若第二运算结果命中图6所示的负载位图中的第7个负载位图单元,取值为0,则表示此负载位图对应的CPU负载情况不满足负载要求,不可以被调度。
在判断目标CPU负载情况不符合负载要求时,重新确定目标CPU的方法可以根据多个CPU的使用率进行排序,将使用率最低的CPU确定为目标CPU,将所述聚合流数据发送至使用率最低的目标CPU处理,或者利用负载分担算法重新在多个CPU中确定目标CPU,并继续判断目标CPU的负载情况是否符合负载要求。
通过上述方法,对每个CPU设置对应的负载位图,并根据CPU使用率对负载位图单元的取值进行更新。在获取聚合流数据后,基于一次运算就可以定位到一个负载位图单元,然后一方面可根据负载位图单元所在的CPU负载位图与CPU的对应关系,确定目标CPU,另一方面可根据负载位图单元的取值确定目标CPU的负载情况是否符合负载要求,不需要每接收一个数据就将所有的CPU根据CPU使用率进行排序,提升了确定目标CPU处理聚合流数据的效率。
与前述处理聚合流数据的方法的实施例相对应,本说明书还提供了处理聚合流数据的装置及其所应用的终端的实施例。
本申请处理聚合流数据装置的实施例可以应用在多核架构设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在处理聚合流数据的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请处理聚合流数据装置所在多核架构设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的多核架构设备通常根据该多核架构设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图8,图8是本申请示出的一种处理聚合流数据的装置的框图,所述装置包括:
目标确定模块802,用于在接收到聚合流数据后,基于预设负载分担算法在所述多个CPU中为聚合流数据确定目标CPU;
负载判断模块804,用于判断所述目标CPU的负载情况是否符合负载要求;
数据发送模块806,用于在判断目标CPU负载情况符合负载要求时,将所述聚合流数据发送至所述目标CPU处理。
在本实施例中,多核架构设备接收聚合流数据后,可利用目标确定模块802在多个CPU中确定目标CPU,目标确定模块802中各单元如图9所示,图9是本申请示出的一种目标确定模块的单元框图,包括:
第一参数计算单元802a1,用于从接收到的聚合流数据中提取指定头部字段,基于预设参数算法对所述指定头部字段进行运算,得到所述聚合流数据的第一调度参数;
第一余数运算单元802b1,用于基于CPU数量对所述第一参数计算单元中的第一调度参数进行取余运算,得到第一运算结果;
第一CPU确定单元802c1,用于基于第一余数运算单元中的第一运算结果在所述多个CPU中确定所述目标CPU。
可选的,各CPU均对应有负载位图,其中各CPU对应的负载位图所包括的负载位图单元数量相同,目标确定模块802中的各单元还可如图10所示,图10是另一种目标确定模块的单元框图,所述目标确定模块802包括:
第二参数计算单元802a2,用于从接收到的聚合流数据中提取指定头部字段,基于预设参数算法对所述指定头部字段进行运算,得到所述聚合流数据的第二调度参数;
第二余数运算单元802b2,用于基于CPU数量和所述负载位图单元数量对所述第二参数计算单元中的第二调度参数进行取余运算,得到第二运算结果;
第二确定CPU单元802c2,用于将所述第二余数运算单元中的第二运算结果命中的目标负载位图对应的CPU确定为目标CPU;
在本实施例中,所述处理聚合流数据的装置中还包括CPU负载位图更新模块,所述CPU负载位图模块,用于针对每一负载位图,基于预设的时间间隔获取对应CPU的使用率;
基于所述使用率确定所述负载位图中每个负载位图单元的取值,以更新所述负载位图。
在本实施例中,所述处理聚合流数据的装置中还包括二次发送模块,所述二次发送模块,用于若所述目标CPU的负载情况不符合负载要求,则在所述多个CPU中确定使用率最低的CPU,并将所述聚合流数据发送至所述使用率最低的CPU处理;
或者,调用目标确定模块采用不同的负载分担算法重新在所述多个CPU中为聚合流数据确定目标CPU。
上述装置中各个模块和单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和***通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种处理聚合流数据的方法,其特征在于,该方法应用于多核架构设备,所述多核架构设备上包括多个CPU,所述方法包括:
在接收到聚合流数据后,基于预设负载分担算法在所述多个CPU中为聚合流数据确定目标CPU;
判断所述目标CPU的负载情况是否符合负载要求;
若符合,则将所述聚合流数据发送至所述目标CPU处理。
2.根据权利要求1所述的方法,其特征在于,所述基于预设负载分担算法在所述多个CPU中为聚合流数据确定目标CPU,包括:
从接收到的聚合流数据中提取指定头部字段,基于预设参数算法对所述指定头部字段进行运算,得到所述聚合流数据的第一调度参数;
基于CPU数量对所述第一调度参数进行取余运算,得到第一运算结果;
基于所述第一运算结果在所述多个CPU中确定所述目标CPU。
3.根据权利要求1所述的方法,其特征在于,各CPU均对应有负载位图,其中各CPU对应的负载位图所包括的负载位图单元数量相同,所述基于预设负载分担算法在所述多个CPU中为聚合流数据确定目标CPU,包括:
从接收到的聚合流数据中提取指定头部字段,基于预设参数算法对所述指定头部字段进行运算,得到所述聚合流数据的第二调度参数;
基于CPU数量和所述负载位图单元数量对第二调度参数进行取余运算,得到第二运算结果;
将所述第二运算结果命中的目标负载位图对应的CPU确定为目标CPU;
所述判断目标CPU的负载情况是否符合负载要求,包括:
基于所述第二运算结果命中的目标负载位图中的目标负载位图单元的取值判断目标CPU负载情况是否符合负载要求。
4.根据权利要求3所述,其特征在于,所述CPU负载位图更新的方法,包括:
针对每一负载位图,基于预设的时间间隔获取对应CPU的使用率;
基于所述使用率确定所述负载位图中每个负载位图单元的取值,以更新所述负载位图。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标CPU的负载情况不符合负载要求,则在所述多个CPU中确定使用率最低的CPU,并将所述聚合流数据发送至所述使用率最低的CPU处理;
或者,采用不同的负载分担算法重新在所述多个CPU中为聚合流数据确定目标CPU。
6.一种处理聚合流数据的装置,其特征在于,该装置应用于多核架构设备,所述多核架构设备上包括多个CPU,所述装置包括:
目标确定模块,用于在接收到聚合流数据后,基于预设负载分担算法在所述多个CPU中为聚合流数据确定目标CPU;
负载判断模块,用于判断所述目标CPU的负载情况是否符合负载要求;
数据发送模块,用于在判断目标CPU负载情况符合负载要求时,将所述聚合流数据发送至所述目标CPU处理。
7.根据权利要求6所述的装置,其特征在于,所述目标确定模块,包括:
第一参数计算单元,用于从接收到的聚合流数据中提取指定头部字段,基于预设参数算法对所述指定头部字段进行运算,得到所述聚合流数据的第一调度参数;
第一余数运算单元,用于基于CPU数量对所述第一参数计算单元中的第一调度参数进行取余运算,得到第一运算结果;
第一CPU确定单元,用于基于第一余数运算单元中的第一运算结果在所述多个CPU中确定所述目标CPU。
8.根据权利要求6所述的装置,其特征在于,各CPU均对应有负载位图,其中各CPU对应的负载位图所包括的负载位图单元数量相同,所述目标确定模块,包括:
第二参数计算单元,用于从接收到的聚合流数据中提取指定头部字段,基于预设参数算法对所述指定头部字段进行运算,得到所述聚合流数据的第二调度参数;
第二余数运算单元,用于基于CPU数量和所述负载位图单元数量对所述第二参数计算单元中的第二调度参数进行取余运算,得到第二运算结果;
第二确定CPU单元,用于将所述第二余数运算单元中的第二运算结果命中的目标负载位图对应的CPU确定为目标CPU;
所述负载判断模块,用于基于所述第二运算结果命中的目标负载位图中的目标负载位图单元的取值判断目标CPU负载情况是否符合负载要求。
9.根据权利要求8所述的装置,其特征在于,该装置还包括CPU负载位图更新模块,所述CPU负载位图更新模块,用于针对每一负载位图,基于预设的时间间隔获取对应CPU的使用率;
基于所述使用率确定所述负载位图中每个负载位图单元的取值,以更新所述负载位图。
10.根据权利要求6所述的装置,其特征在于,还包括二次发送模块,所述二次发送模块,用于若负载判断模块中所述目标CPU的负载情况不符合负载要求,则在所述多个CPU中确定使用率最低的CPU,并将所述聚合流数据发送至所述使用率最低的CPU处理;
或者,调用目标确定模块采用不同的负载分担算法重新在所述多个CPU中为聚合流数据确定目标CPU。
CN202111040279.2A 2021-09-06 2021-09-06 一种处理聚合流数据的方法和装置 Active CN113806083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111040279.2A CN113806083B (zh) 2021-09-06 2021-09-06 一种处理聚合流数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111040279.2A CN113806083B (zh) 2021-09-06 2021-09-06 一种处理聚合流数据的方法和装置

Publications (2)

Publication Number Publication Date
CN113806083A true CN113806083A (zh) 2021-12-17
CN113806083B CN113806083B (zh) 2023-07-25

Family

ID=78940497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111040279.2A Active CN113806083B (zh) 2021-09-06 2021-09-06 一种处理聚合流数据的方法和装置

Country Status (1)

Country Link
CN (1) CN113806083B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101022417A (zh) * 2007-03-16 2007-08-22 华为技术有限公司 一种选择负载分担链路的方法和路由器
CN102004673A (zh) * 2010-11-29 2011-04-06 中兴通讯股份有限公司 多核处理器负载均衡的处理方法及***
WO2012106894A1 (zh) * 2011-07-18 2012-08-16 华为技术有限公司 云计算***中的媒体流数据的传输方法及装置
CN104901898A (zh) * 2015-06-08 2015-09-09 东软集团股份有限公司 一种负载均衡方法及装置
CN105207946A (zh) * 2015-08-27 2015-12-30 国家计算机网络与信息安全管理中心 一种网络数据包负载均衡和预解析方法
US20170063979A1 (en) * 2014-03-19 2017-03-02 Nec Corporation Reception packet distribution method, queue selector, packet processing device, and recording medium
US20170318082A1 (en) * 2016-04-29 2017-11-02 Qualcomm Incorporated Method and system for providing efficient receive network traffic distribution that balances the load in multi-core processor systems
CN108055203A (zh) * 2017-12-26 2018-05-18 杭州迪普科技股份有限公司 一种等价路由负载分担方法及装置
CN108170533A (zh) * 2017-12-27 2018-06-15 杭州迪普科技股份有限公司 报文的处理方法及装置、计算机可读存储介质
CN109033008A (zh) * 2018-07-24 2018-12-18 山东大学 一种动态可重构的Hash计算架构及其方法、Key-Value存储***
CN111800348A (zh) * 2019-04-09 2020-10-20 中兴通讯股份有限公司 一种负载均衡方法和装置
CN112000296A (zh) * 2020-08-28 2020-11-27 北京计算机技术及应用研究所 一种全闪存阵列中的性能优化***

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101022417A (zh) * 2007-03-16 2007-08-22 华为技术有限公司 一种选择负载分担链路的方法和路由器
CN102004673A (zh) * 2010-11-29 2011-04-06 中兴通讯股份有限公司 多核处理器负载均衡的处理方法及***
WO2012106894A1 (zh) * 2011-07-18 2012-08-16 华为技术有限公司 云计算***中的媒体流数据的传输方法及装置
US20170063979A1 (en) * 2014-03-19 2017-03-02 Nec Corporation Reception packet distribution method, queue selector, packet processing device, and recording medium
CN104901898A (zh) * 2015-06-08 2015-09-09 东软集团股份有限公司 一种负载均衡方法及装置
CN105207946A (zh) * 2015-08-27 2015-12-30 国家计算机网络与信息安全管理中心 一种网络数据包负载均衡和预解析方法
US20170318082A1 (en) * 2016-04-29 2017-11-02 Qualcomm Incorporated Method and system for providing efficient receive network traffic distribution that balances the load in multi-core processor systems
CN108055203A (zh) * 2017-12-26 2018-05-18 杭州迪普科技股份有限公司 一种等价路由负载分担方法及装置
CN108170533A (zh) * 2017-12-27 2018-06-15 杭州迪普科技股份有限公司 报文的处理方法及装置、计算机可读存储介质
CN109033008A (zh) * 2018-07-24 2018-12-18 山东大学 一种动态可重构的Hash计算架构及其方法、Key-Value存储***
CN111800348A (zh) * 2019-04-09 2020-10-20 中兴通讯股份有限公司 一种负载均衡方法和装置
CN112000296A (zh) * 2020-08-28 2020-11-27 北京计算机技术及应用研究所 一种全闪存阵列中的性能优化***

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
S.ZHANG等: "Revisiting the Resign of Data Stream Processing Systems on Multi-Core Processors", 《2017 IEEE 3RD INTERNATIONAL CONFERENCE ON DATA ENGINEERING(ICDE)》, pages 659 - 670 *
包晓安等: "基于mean-variance的服务集群负载均衡方法", 《电信科学》, vol. 33, no. 01, pages 1 - 8 *
张哲宇等: "XMPP协议的数据分发网络的负载均衡算法", 《北京邮电大学学报》, vol. 39, no. 1, pages 27 - 31 *
彭书凯等: "分布式流计算框架中负载管理功能的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 11, pages 139 - 12 *

Also Published As

Publication number Publication date
CN113806083B (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
CN108965347B (zh) 一种分布式拒绝服务攻击检测方法、装置及服务器
CN111935170B (zh) 一种网络异常流量检测方法、装置及设备
US9485155B2 (en) Traffic analysis of data flows
US10523692B2 (en) Load balancing method and apparatus in intrusion detection system
US8677488B2 (en) Distributed denial of service attack detection apparatus and method, and distributed denial of service attack detection and prevention apparatus for reducing false-positive
CN107968791B (zh) 一种攻击报文的检测方法及装置
US10567426B2 (en) Methods and apparatus for detecting and/or dealing with denial of service attacks
CN104468507B (zh) 基于无控制端流量分析的木马检测方法
JP2007336512A (ja) 統計情報収集システム及び統計情報収集装置
US9160639B2 (en) Network flow abnormality detection system and a method of the same
CN111163018A (zh) 网络设备及其降低传输时延的方法
CN110944016A (zh) DDoS攻击检测方法、装置、网络设备及存储介质
CN110958245B (zh) 一种攻击的检测方法、装置、设备和存储介质
JP6317685B2 (ja) 通信監視システム、通信監視方法およびプログラム
CN113806083B (zh) 一种处理聚合流数据的方法和装置
US10511529B2 (en) Packet processing method for virtual switch
CN111385667A (zh) 视频数据处理方法、装置和计算机可读存储介质
KR101429114B1 (ko) 다중 프로세서 기반의 패킷 처리 장치 및 그 방법
CN106817268B (zh) 一种ddos攻击的检测方法及***
CN110162969B (zh) 一种流量的分析方法和装置
CN109120543B (zh) 网络流量的监控方法、装置、计算机设备及存储介质
CN112383563A (zh) 一种入侵检测方法及相关装置
KR102285661B1 (ko) 침입 탐지 시스템에서 로드 밸런싱 방법 및 장치
CN106385706B (zh) 一种电量控制的方法和装置
CN113691607A (zh) 一种流量负载均衡控制方法、装置及电子设备

Legal Events

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