本技术涉及负载均衡分配,具体而言,涉及一种基于负载均衡的服务器集群的负载分配方法。
背景技术:
1、随着网络业务的访问量的快速增长,为了提高业务请求的处理能力,可以将多台底层服务器通过网络互联形成一个服务器集群来处理大量业务请求。现有的技术方案中,会通过应用管理平台,对服务器进行监控,并根据对服务器目前的性能来判断服务器的负载能力,进而使每台负载均衡服务器根据各自的负载均衡配置向底层服务器分发业务请求。当应用管理平台监控到任意底层服务器的工作状态发生变化时,应用管理平台可以更新本地存储的服务器信息并触发相关的负载均衡服务器自动更新负载均衡配置,使该负载均衡服务器根据最新的负载均衡配置分发业务请求。
2、但是,服务器在使用过程中会出现性能上的降低,其性能的降低是一个渐进的过程。在集群式服务器的运用中,会将一些老化、或者无法运行的服务器替换掉。但是,还会存在很多服务器,虽然存在一定的老化现象,但是还没有来得及更换,或者还在运行的情况。而在对这些服务器进行服务器负载的分配时,一般都是将其作为正常的服务器进行看待,然后进行负载均衡的划分,从而导致了期望的负载分配情况,与实际的预期不符合。
技术实现思路
1、本技术的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本技术的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
2、为了解决以上背景技术部分提到的技术问题,本技术的一些实施例提供了一种基于负载均衡的服务器集群的负载分配方法,包括如下步骤:
3、步骤1:将服务器集群划分为为若干个服务器群组;
4、步骤2:基于神经网络模型预测每个服务器群组的预计性能,并根据每个服务器群组的预计性能分配服务器群组的群组流量负载;
5、步骤3:基于负载均衡算法将群组流量负载均衡的分配到服务器群组的每个服务器中,以平衡所有服务器的负载。
6、在关于服务器的预计性能的预测上,对于单个的服务器的预测准确性实际上并不高,很容易因为每个服务器的特殊性,而导致预测结果不准确,因此也无法进行负载均衡的匹配。但是,在本技术所提供的技术方案中,是先将大的服务器集群划分为一个个小的服务器群组,再每个小的服务器群组进行基于负载均衡的流量分配,在预测服务器群组的性能时,一般而言准确性就会相比较于单个的服务器集高很多,所以每个服务器群组上分配到的群组流量负载的可靠性更高,进而再进行负载均衡的分配时效果更好,避免了服务器之间因为寿命和性能的差距,而导致的预计效果与实际效果不匹配的问题。
7、在划分服务器群组时,如果将不同性能的服务器划分到同一个服务器群组内,在采用神经网络模型预测了该服务器群组的性能时,得到的是整个服务器群组的平均性能,服务器群组中的每个服务器与服务器群组的平均性能之间都具有很大的区别。针对这一问题,本技术提供了如下技术方案:
8、步骤1包括如下步骤:
9、步骤11:获取服务器集群中每个服务器的工作年限和额定性能参数;
10、步骤12:将服务器集群中相同工作时间的服务器划分为一个服务器群,得到服务器群1、服务器群2、…服务器群i…服务器群m;其中,第i个服务器群为服务器群i;
11、步骤13:获取每个服务器群i中每个服务器的额定性能参数,将额定性能参数处于相同区间内的服务器划分为一个1个服务器群组,得到n×m个服务器群组;且服务器群组中服务器的数量大于预设值。
12、本技术所提供的技术方案中,在划分服务器群组时,是根据工作时间和额定性能参数来划分服务器群组,所以在一定程度上,保证了划分在同一个服务器群组内的服务器具有相同的额定性能参数和工作时间,进而大概率而言,在同一个服务器群组内的服务器的实际性能会比较接近,所以保证了预测得到的服务器群组的平均性能,与服务器群组中每个服务器的性能都足够接近。
13、服务器群组中的服务器的数量虽然很多,但是在相同工作时间和相同型号的服务器数量可能不够多,进而无法满足最小的服务器群组数量的要求,进而在将这些不同信号的服务器归类到其余的服务器群组内时,因为与其余的服务器的信号不同,所以无法准确的归类。针对这一问题,本技术提供如下计算方案:
14、步骤11中,在获取额定性能参数时,采用如下公式计算:
15、c=w1pp+w2np+w3nb;其中,w1、w2、w3为加权系数,w1+w2+w3=1,pp为处理器分数,与处理器的性能有关;np为内存分数,与内存的性能有关系;nb为网络带宽分数,与服务器的网络带宽有关。
16、本技术所提供的技术方案中,在获取服务器的额定性能时,并不是简单的通过对比服务器的型号进行判断,而是通过设置加权系数的方式,来衡量服务器的性能,所以能够通过这种方式,将不同信号的服务器按照其额定性能进行准确的划分。
17、步骤2包括如下步骤:
18、步骤21:收集服务器的历史性能数据,历史性能数据至少包括处理器利用率a1、内存利用率a2、网络带宽利用率a3、对应的服务器的处理器温度a4,以及服务器的性能比例a5;
19、步骤22:建立基于神经网络模型,将处理器利用率a1、内存利用率a2、网络带宽利用率a3、对应的服务器的处理器温度a4作为输入数据,将服务器的性能比例a5作为标签数据对神经网络模型进行训练;
20、步骤23:收集服务器群组中每个服务器的处理器利用率、内存利用率、网络带宽利用率、对应的服务器的处理器温度,将其输入至神经网络模型中,得到服务器的性能比例;
21、步骤24:根据服务器的性能比例和每个服务器的额定性能参数计算服务器群组的群组流量负载。
22、本技术所提供的技术方案中,并不是直接将服务器的工作时间和工作时长来作为服务器性能比例的阐述。而是,将处理器利用率a1、内存利用率a2、网络带宽利用率a3、对应的服务器的处理器温度a4作为衡量依据。可以预见,服务器的性能虽然与使用时间有着比较大的关系,但是更多的是与服务器的热量有关。对于想通过的服务器而言,如果其性能好,在形同的处理器利用率a1、内存利用率a2、网络带宽利用率a3下,其服务器的温度应该更低,反之服务器的温度就更高。所以,本技术所提供的技术方案中,能够计算到对应的服务器的性能比例,进而可以更好的得到每个服务器的流量负载。
23、步骤21中,对于收集到的处理器利用率a1、内存利用率a2、网络带宽利用率a3、对应的服务器的处理器温度a4,以及服务器的性能比例a5都需要进行归一化处理。
24、对于服务器而言,其性能的变化是一个缓慢的过程中,一直收集服务器的各项参数,实际上并能够得到服务器的相关状态,并且在计算这些数据的平均数时,还有可能导致变化的数据的,在平均数的计算过程中被均匀掉,使得神经网络模型不能够很好的发现输入数据和标签数据之间的内在联系。针对这一问题,本技术提供了如下技术方案:
25、步骤21中,收集服务器的历史数据时,在预设时间跨度t内的处理器利用率a1、内存利用率a2、网络带宽利用率a3、对应的服务器的处理器温度a4,以及服务器的性能比例a5的平均数;并且每个数据集之间的时间间隔至少相差一个月。
26、本技术所提供的技术方案中,在收集历史数据时,是在预设时间跨度t内完成了数据的收集,并计算了对应的平均数,所以可以通过时间跨度t的调整来增加所收集到的数据的在随机性,以及准确性之间的关系。如果,时间跨度短,则会导致数据的随机性增加,例如服务器刚启动时,处理器的温度是比较低的,这个比较低的温度数据,则会导致数据的随机性增加,也就是受到不可预见的随机因素的影响会更大;如果,时间跨度长,则会导致数据与数据之间的联系变少;例如,在时间超过七天时,服务器的内存利用率、处理器利用率等数据,可能已经发生了很多次重大的改变,进而计算得到的平均数,并不能够代表这段时间服务器的工作情况。如此,本方案中,通过调整时间跨度t,能很好的平衡数据随机性与准确性之间的关系。
27、进一步的,预设时间跨度t在1小时和2小时之间。
28、服务器在1个小时至两个小时内运行的情况比较稳定。并且,从实际服务器的使用上来看,在1个小时到两个小时内,服务器的负载情况变化不会很大。不会出现,在时间跨度太长的情况下,直接使得时间进度跨越了服务器下辖的用户在活跃期间的情况,而引起的数据不准确的问题。
29、进一步的,步骤23中,周期性的更新服务器的性能比例,并且在更新性能比例时,选择至少间隔24h的至少3项数据所计算得到的性能比例的平均数作为该服务器的性能比例。
30、本技术中,为了避免更新服务器的性能比例时,因为单一的数据对于服务器的性能比例的影响,所以计算的是多个数据下的服务器性能比例的平均数。
31、进一步的,步骤24中,群组流量负载q,q=n×j×k,其中,n为服务器群组中服务器的数量,j为服务器群组中服务器的性能比例的平均数,k为服务器群组中单个服务器能够接收的最大流量负载。
32、在现有的负载均衡算法中,很难及时的改变服务器的流量负载,也就是在服务器请求很多的情况下,流量分配器很难及时的更改,对应的服务器的负载情况,进而导致了流量分配器在分配流量时,准确性和及时性不高。针对这一问题,本技术提供了如下技术方案:
33、步骤3:基于负载均衡算法将群组流量负载均衡的分配到服务器群组的每个服务器中,以平衡所有服务器的负载。
34、步骤3包括如下步骤:
35、步骤31:配置哈希函数的计算公式;
36、步骤32:依次计算所有服务器群组中各服务器所代表的节点的哈希值;
37、步骤33:将所有的服务器群组的服务器所代表的结点的哈希值从小达到依次排序,有行程哈希环;
38、步骤34:基于每个服务器集群的群组流量负载为每个服务器群组分配对应的虚拟节点数量,服务器群组中的服务器均分对应的虚拟节点数量;
39、步骤35:计算接入至服务器集群的请求的哈希值,根据该请求在哈希环上的位置,按照顺时针方向找到第一个虚拟节点所对应的服务器处理该请求。
40、本技术所提供的技术方案在进行负载均衡的分配时,不需要考虑过多的因素,只需要分配服务器的虚拟节点在哈希环上的比例就好了。服务器所对应的虚拟节点越多,该服务器就容易被分配到请求,反之则越少。
41、步骤34中:服务器的虚拟节点数量g的计算公式如下:
42、g=ec×k÷m+r;ec为服务器所在的服务器群组的群组流量负载与服务器集群的总流量的比值,m为服务器所在的服务器群组的数量,k为虚拟节点的最大线性公式,r为虚拟节点的冗余值,虚拟节点的冗余值的初始值为零。
1.一种基于负载均衡的服务器集群的负载分配方法,其特征在于:包括:
2.根据权利要求1所述的基于负载均衡的服务器集群的负载分配方法,其特征在于:步骤1包括如下步骤:
3.根据权利要求2所述的基于负载均衡的服务器集群的负载分配方法,其特征在于:步骤11中,在获取额定性能参数时,采用如下公式计算:
4.根据权利要求3所述的基于负载均衡的服务器集群的负载分配方法,其特征在于:步骤2包括如下步骤:
5.根据权利要求4所述的基于负载均衡的服务器集群的负载分配方法,其特征在于:步骤21中,对于收集到的处理器利用率a1、内存利用率a2、网络带宽利用率a3、对应的服务器的处理器温度a4,以及服务器的性能比例a5都需要进行归一化处理。
6.根据权利要求4所述的的基于负载均衡的服务器集群的负载分配方法,其特征在于:步骤21中,收集服务器的历史数据时,在预设时间跨度t内的处理器利用率a1、内存利用率a2、网络带宽利用率a3、对应的服务器的处理器温度a4,以及服务器的性能比例a5的平均数;并且每个数据集之间的时间间隔至少相差一个月。
7.根据权利要求6所述的的基于负载均衡的服务器集群的负载分配方法,其特征在于:预设时间跨度t在1小时和2小时之间。
8.根据权利要求4所述的的基于负载均衡的服务器集群的负载分配方法,其特征在于:步骤23中,周期性的更新服务器的性能比例,并且在更新性能比例时,选择至少间隔24h的至少3项数据所计算得到的性能比例的平均数作为该服务器的性能比例。
9.根据权利要求4所述的基于负载均衡的服务器集群的负载分配方法,其特征在于:步骤24中,群组流量负载q,q=n×j×k,其中,n为服务器群组中服务器的数量,j为服务器群组中服务器的性能比例的平均数,k为服务器群组中单个服务器能够接收的最大流量负载。
10.根据权利要求1所述的基于负载均衡的服务器集群的负载分配方法,其特征在于:步骤3包括如下步骤:
