【技术实现步骤摘要】
一种基于多核处理器的分组突发负载均衡方法及系统
[0001]本专利技术涉及负载均衡领域,具体涉及一种基于多核处理器的分组突发负载均衡方法及系统。
技术介绍
[0002]在10Gbps以上的高速网络下,网络流量监控处理设备常常需要在一秒内处理数以百万计的网络数据包,并且在同一设备中执行多种数据包处理流程,例如深度包检测和活跃网络流统计等。通过设置不同的应用类型,此类设备即可用于数据中心等生产环境,也可用于校园和产业园区等场所,对通过部分节点的网络流量进行分析。
[0003]现有的部分工作采用生产者消费者模型,其中生产者与网卡对接,将网卡接收到的网络数据包按照预定规则分类,对应不同的上层处理流程,并放入与该类别相对应的缓冲区内;在任意类别下,对应有一组消费者从对应缓冲区中取出网络数据包,执行分析和处理任务。为了降低硬件成本,加速网络数据包的处理,现有的部分工作选择通用硬件,通过绕过操作系统内核协议栈等方法避免不必要的上下文切换和内存复制。其所使用的通用硬件常采用多核架构,其中的消费者和生产者均为线程,利用并行执行计算任务 ...
【技术保护点】
【技术特征摘要】
1.一种基于多核处理器的分组突发负载均衡方法,其特征在于,包括:步骤S1:建立多阶段流水线网络流量处理模型,包括:数据包接收分类模块、数据包缓冲模块和数据包处理模块;其中,所述数据包接收分类模块包含多个线程以及多个数据包分类规则;所述数据包缓冲模块包含多个缓冲区域,每个所述缓冲区域包含多个子缓冲区,其中所述缓冲区域个数与所述分类规则个数相同;所述数据包处理模块包含多个上层处理应用,每个所述上层处理应用对应一组数据包处理线程,其中所述数据包处理线程与所述子缓冲区一一对应;步骤S2:在所述多阶段流水线网络流量处理模型上,设置拥塞检测模块,对各个所述数据包处理线程及其对应子缓冲区的性能进行持续监测;在预定周期内采集各个所述数据包处理线程及其对应子缓冲区的性能信息,用于计算拥塞检测结果,并根据所述拥塞检测结果对存在拥塞的所述数据包处理线程进行标记;步骤S3:对标记为拥塞的所述数据包处理线程进行网络流量短期测量,对接收到的数据包进行采样分析,生成线程流量环境信息,并发送给网络流映射调节模块;步骤S4:设置所述网络流映射调节模块,接收流量环境信息,并针对该信息和当前时刻流量处理性能信息生成额外网络流映射规则,并应用至子缓冲区映射策略中。2.根据权利要求1所述的基于多核处理器的分组突发负载均衡方法,其特征在于,所述步骤S1:建立多阶段流水线网络流量处理模型,包括:数据包接收分类模块、数据包缓冲模块和数据包处理模块;其中,所述数据包接收分类模块包含多个线程以及多个数据包分类规则;所述数据包缓冲模块包含多个缓冲区域,每个所述缓冲区域包含多个子缓冲区,其中所述缓冲区域个数与所述分类规则个数相同;所述数据包处理模块包含多个上层处理应用,每个所述上层处理应用对应一组数据包处理线程,其中所述数据包处理线程与所述子缓冲区一一对应,具体包括:步骤S11:构造所述数据包接收分类模块:所述数据包接收分类模块包含多个线程{CThread1,CThread2,
…
,CThread
n
,...,CThread
N
},其中,CThread
n
是该模块中的第n个线程,N表示所述数据包接收分类模块中的线程个数;所述数据包接收分类模块还包含多个数据包分类规则{Rule1,Rule2,
…
,Rule
m
,...,Rule
M
},Rule
m
是所述数据包接收分类模块设定的第m条数据包分类规则;M为所述数据包接收分类模块中预设的数据包分类规则的条数;规则Rule
m
包含分类标识信息分别为网络数据包对应的起始源IP网络地址,终止源IP网络地址,起始目的IP网络地址,终止目的IP网络地址,起始源端口号,终止源端口号,起始目的端口号和终止目的端口号;步骤S12:构造所述数据包缓冲模块:所述数据包缓冲模块包含多个缓冲区域{Area1,Area2,
…
,Area
m
,...,Area
M
},Area
m
是该模块中的第m个缓冲区域,M为所述数据包缓冲模块中预设的缓冲区域个数,与所述数据包分类规则的条数相同,并且一一对应;每个所述缓冲区域包含多个子缓冲区D为第m个所述缓冲区域中的子缓冲区个数;根据子缓冲区映射策略,将数据包存入对应的所述子缓冲区;
步骤S13:构造所述数据包处理模块:所述数据包处理模块包含M个上层处理应用,每个所述上层处理应用对应一组数据包处理线程其中,为所述数据包处理模块中第m个上层处理应用中的第d个线程;第m个所述上层处理应用中的线程与所述缓冲区域Area
m
中的子缓冲区一一对应,所述处理线程从所述子缓冲区取出所述数据包,并执行分析处理。3.根据权利要求1所述的基于多核处理器的分组突发负载均衡方法,其特征在于,所述步骤S2:在所述多阶段流水线网络流量处理模型上,设置拥塞检测模块,对各个所述数据包处理线程及其对应子缓冲区的性能进行持续监测;在预定周期内采集各个所述数据包处理线程及其对应子缓冲区的性能信息,用于计算拥塞检测结果,并根据所述拥塞检测结果对存在拥塞的所述数据包处理线程进行标记,具体包括:步骤S21:根据预定的周期,采集各个所述数据包处理线程及其对应子缓冲区的性能信息,在采集周期内,所述拥塞检测模块阻塞执行,利用下述公式(1)计算轮询效率息,在采集周期内,所述拥塞检测模块阻塞执行,利用下述公式(1...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。