一种基于预测的网络业务流量负载均衡方法与流程

文档序号:15624852发布日期:2018-10-09 22:43阅读:669来源:国知局

本发明涉及负载均衡技术领域,尤其涉及一种基于预测的网络业务流量负载均衡方法。



背景技术:

当前网络会话负载均衡方法大多使用静态和动态相结合的方式进行分流。首先使用流表和哈希分发方法把流量均分到不同的流束,每个流束对应到一个处理节点机。通过周期性收集反馈信息,当发现负载不均或有节点超载时,进行流束的重映射或者根据流束其他特征对流束重新进行分配。

李彦军等人在多核平台入侵检测系统负载均衡算法设计与实现文中提出了一种调整最大流的负载均衡方法,该方法首先通过哈希的方法把流量分成不同的流束,每个流束发给不同的处理节点。同时,维护一张最大流的信息表,实时维护最大流信息,当发现需要进行动态调整时,查找最大流信息表,把最大流发往负载最小的机器,以达到负载均衡的目的。该方法通过破坏最大流的方式,可以达到更少的会话破坏率,但仍然存在流的破坏。



技术实现要素:

本发明目的在于提供一种基于预测的网络业务流量负载均衡方法,该方法在基础分发和调整时,使用动态哈希方法达到流量分配均衡,同时结合流表和动态指数平滑预测方法实现零会话破坏率。最终通过实验证明,本方法在保证负载均衡性和低丢包率的基础上实现了零会话破坏率。

为解决上述技术问题,本发明提供了一种基于预测的网络业务流量负载均衡方法,包括以下步骤:

s1、数据包到达后,提取数据部分四元组信息,根据四元组信息,通过哈希函数计算出哈希值,根据计算得到的哈希值,查找流表;

s2、找到流表节点,直接进入到步骤s4;

s3、没找到流表节点,进入动态哈希分发模块,根据动态哈希分发结果,找到目的主机,创建流表节点;

s4、根据流表中后端处理节点信息,构造数据包,把数据包放入对应的缓存队列;

s5、发送线程从队列中取数据并发送;

s6、以t为周期收集后端反馈信息;

s7、负载根据反馈得到的信息,根据加权信息熵方法计算负载值,根据历史负载信息,计算得到动态指数平滑系数,根据得到的系数,使用一次指数平滑方法,计算出预测负载值;

s8、根据预测负载信息,根据每台机器的预测负载和阈值的对比情况,动态调整哈希中虚拟节点的比例,达到动态调整的效果。

本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

该方法在基础分发和调整时,使用动态哈希方法达到流量分配均衡,同时结合流表和动态指数平滑预测方法实现零会话破坏率。最终通过实验证明,本方法在保证负载均衡性和低丢包率的基础上实现了零会话破坏率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的负载均衡方法图。

图2是本发明的负载均衡处理流程图。

图3是本发明的负载破坏表。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

如图1-图3所示,本实施例所述的一种基于预测的网络业务流量负载均衡方法,包括以下步骤:

s1、数据包到达后,提取数据部分四元组信息,根据四元组信息,通过哈希函数计算出哈希值,根据计算得到的哈希值,查找流表;

s2、找到流表节点,直接进入到步骤s4;

s3、没找到流表节点,进入动态哈希分发模块,根据动态哈希分发结果,找到目的主机,创建流表节点;

s4、根据流表中后端处理节点信息,构造数据包,把数据包放入对应的缓存队列;

s5、发送线程从队列中取数据并发送;

s6、以t为周期收集后端反馈信息;

s7、负载根据反馈得到的信息,根据加权信息熵方法计算负载值,根据历史负载信息,计算得到动态指数平滑系数,根据得到的系数,使用一次指数平滑方法,计算出预测负载值;

s8、根据预测负载信息,根据每台机器的预测负载和阈值的对比情况,动态调整哈希中虚拟节点的比例,达到动态调整的效果。

更为具体的:

1)对捕获的数据包解析头信息,解析出链路类型,如vlan、pppoe或者正常数据类型,对不同的类型数据包作对应ip头位置的偏移,提取出ip头,tcp头,udp头。

2)根据数据包头找出四元组(源目的ip、源目的端口),根据公式(1)计算出哈希值,查找流表。流表由哈希表和二叉搜索树组织,有效的提升查找速度。

(1)

其中,sip、dip、sport和dport分别代表源目的ip和源目的端口。其中下标1代表前16个字节,下标2代表后16个字节。

3)如果找到节,根据动态哈希计算出后端节点值,研究表明,哈希效果的优劣受到节点个数的影响。当节点个数少时,哈希方法会导致流量分发不均。而随着节点的增加,分发结果越发均衡。因此为了在基础上实现流量的均衡分发,我们采用虚拟节点的思想,为每个处理节点根据其处理性能分配一定比例的节点。这样就能有效改善流量分布不均的问题,最大限度地使流量均衡分布到不同处理节点上。在虚拟节点的选择上,存在选择数目的问题,如果选择的数目过多,在进行动态调整时,需要耗费时间过长,如果选择的节点过少,那么在分发的时候效果没有节点多的时候均衡效果理想。同时,还要考虑到哈希函数计算时,要再次分发到每个处理节点,如果处理节点n=2k时,只需要取数据的最后k比特,即可得到哈希函数的结果。可以使用位运算的方式得到节点机,该方法比取模的方式高效。综合考虑上述因素,本文中选取虚拟节点的个数为256。得到节点值后,直接把数据包放入对应的处理队列中,重复步骤1到步骤3。

4)发包线程从对应的队列中取包,根据处理节点构建数据包发送。

5)接受处理节点发送的数据包,计算节点负载,进入步骤6。

为了量化每个处理节点的负载大小,对每个处理节点定义负载函数为。其中t时刻i处理节点的负载大小,n为总处理节点个数。

定义1处理节点的当前会话数函数:代表t时刻i处理节点当前正在处理的会话数。该值越小,表明节点负载越轻。

定义2处理节点的当前数据包数函数:t时刻i处理节点当前正在处理的数据包个数。该值越小,表明节点负载越轻。

定义3处理节点的cpu占用率函数:t时刻i处理节点当前cpu利用率。该值越小,表明节点负载越轻。

定义4处理节点的内存占用率数函数:t时刻i处理节点当前内存利用率。该值越小,表明节点负载越轻。

根据上述定义,处理节点负载计算函数如公式(2)所示。

(2)

上式子为每项的权重,权重关系如公式(3)所示。

(3)

指数平滑法(es)是g.brown提出的基于时间序列对后续进行推演的一种时间序列预测法。该方法可以有效的生成平滑时间序列,可以通过对不同时间的历史数据赋予不同的权重对将来进行预测。该方法根据选择的参数,可分为不同次数的指数平滑法。考虑到我们的应用背景,选取一次指数平滑法。一次指数平滑方法具有随时间序列追溯历史数据的性质,在预测的过程中通过给予历史数据逐渐减弱的影响系数。下面是对该方法的介绍。

设时间序列为,则一次指数平滑公式为:

(4)

其中,为第t周期的一次指数平滑值;为加权系数,0<<1。将公式(4-4)中的逐次展开,可得到公式(5)如下。

(5)

由于0<<1,当时,,于是上述公式变为:

(6)

由此可见实际上是的加权平均值。加权系数分别为,…,,…,即加权系数按照几何级数衰减,历史数据的影响逐渐变小,其中权值系数关系如公式(7)所示。

(7)

指数平滑中对预测效果影响最大的就是指数平滑参数的设置,参数的设置直接影响到拟合的效果,也就是预测的准确性。大部分情况下,指数平滑的参数是通过多次测试或根据经验进行设置,设置结果大多差强人意。因此,本文采用动态参数的方式,提升指数平滑预测准确度。

负载均衡器通过节点的定时反馈,定时获取各节点的会话数、数据包剩余量、cpu利用率、内存使用率信息,根据(2)式求出负载值。并使用动态指数平滑计算出预测负载值。相对于传统的指数平滑,动态指数平滑算法可以动态变更系数和初始值。

本文中提出的动态指数平滑算法选用sse最小作为算法的评价标准,其计算方法如(8)式所示。

(8)

其中为负载预测值和负载真实值的差值,本文采用三个历史负载信息,根据sse最小从0.1到0.9中选出本次指数平滑的最佳系数,根据该系数计算出负载预测值。平滑初值的选择,本文采用前三次实际负载值的平均值作为平滑初值。

6)通过动态指数平滑预测方法计算得到预测负载后,根据每个节点的负载情况对其进行管控调整。为了能够高效的进行流量分发,每次收集完负载都进行调整的策略显然是低效的。同时,由于业务分流的主要目的是为了提升整体处理性能,而负载均衡只是为了达到这一目的的手段。所以当所有处理节点当前负载都远没有达到处理能力上限的时候,对系统性能并没有造成影响,不需要进行调整。因此,我们定义负载低阈值和调整方差阈值。当所有节点负载均比阈值低时,说明当前每个节点的负载都不重,不需要进行调整。一旦有节点负载超过负载低阈值。这时计算节点的方差,如果方差超过了,说明当前节点负载不均,需要进行节点的调整。调整方法是,根据当前每个处理节点的负载情况,用节点的总负载值减去当前负载值得到节点剩余负载值,计算节点剩余负载值的比值,乘以虚拟节点的个数计算出每个节点机目前应该分配的虚拟节点数。同时,定义负载高阈值,如果所有节点的负载都超过了,生成警示日志信息,以便给管理人员提供参考。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1