一种负载均衡方法及系统与流程

文档序号:31359576发布日期:2022-08-31 14:19阅读:43来源:国知局
一种负载均衡方法及系统与流程

1.本技术涉及资源分配技术领域,尤其涉及一种负载均衡方法及系统。


背景技术:

2.随着业务量的提高、访问量和数据量的爆炸式增长,现有网络的各个核心部分处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担,各种分布式计算技术应运而生。为了充分发挥各个服务器节点的性能,提高资源利用率与运行效率,必须通过有效的方式协调各节点工作,平衡各节点的负载。
3.负载均衡是一种建立于现有网络结构之上,旨在扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力以及提高网络的灵活性和可用性的廉价、有效且透明的方法。
4.发明人认为,现有的负载均衡方法大多是对资源的一个简单分配,很难根据用户的需求合理分配资源,从而容易造成系统卡顿或资源浪费。


技术实现要素:

5.为了有助于提高资源分配效果,本技术提供一种负载均衡方法及系统。
6.第一方面本技术提供的一种负载均衡方法,采用如下的技术方案:一种负载均衡方法,包括:获取用户使用不同软件时的资源占用情况;获取目标软件;基于所述目标软件,获取所有适配节点;获取所述适配节点的当前使用用户的用户使用情况;基于所述资源占用情况以及所述用户使用情况,获取当前使用用户的此次使用趋势;基于所述此次使用趋势以及所述适配节点,获取节点使用趋势;获取目标用户使用趋势;基于所述节点使用趋势以及所述目标用户使用趋势,为目标用户分配所述目标节点。
7.通过采用上述技术方案,获取用户此次使用趋势,通过用户此次使用趋势计算出节点使用趋势,再通过节点使用趋势以及目标用户使用趋势,为目标用户分配与其相适应的目标节点,根据目标用户的使用趋势有助于更加真实的反映出目标用户的实际使用需求,根据节点使用趋势也有助于更加真实的反映出该节点资源的实际占用情况,二者结合考虑则有助于更加合理的分配资源,提高资源分配效果,从而有助于减少系统卡顿与资源浪费的情况发生。
8.可选的,所述基于所述目标软件,获取所有适配节点的具体步骤包括:基于所述目标软件,获取所述目标软件的系统类型以及打开方式;
基于所述系统类型以及所述打开方式,获取所有所述适配节点。
9.通过采用上述技术方案,根据目标软件的系统类型以及打开方式,得到所有适配节点,有助于为合理的分配资源提供基础。
10.可选的,所述基于所述资源占用情况以及所述用户使用情况,获取当前使用用户的此次使用趋势的具体步骤包括:获取所述适配节点的当前使用用户;获取所述当前使用用户的当前使用趋势;基于所述资源占用情况以及所述用户使用情况,获取所述当前使用用户的历史使用趋势;基于所述当前使用趋势和所述历史使用趋势,获取所述当前使用用户的此次使用趋势。
11.通过采用上述技术方案,通过当前使用情况推测出用户的当前使用趋势,再根据当前使用趋势和历史使用趋势,得到用户的此次使用趋势,有助于根据用户此次使用趋势预测出节点的使用趋势,从而提高资源分配效果。
12.可选的,所述基于所述当前使用用户的所述当前使用趋势和所述历史使用趋势,获取所述当前使用用户的此次使用趋势的具体步骤包括:获取差异程度,所述差异程度为所述当前使用趋势与所述历史使用趋势的差值;将所述差异程度按照预设的排序规则进行排序,并生成差异列表;基于所述差异列表以及预设的获取规则,获取k条历史使用记录;基于k条所述历史使用记录,获取所述当前使用用户的此次使用趋势。
13.通过采用上述技术方案,采用多条历史使用记录来计算出当前使用用户的此次使用趋势,有助于使得当前使用用户的此次使用趋势更加真实,进而有助于提高资源分配效果。
14.可选的,所述基于k条所述历史使用记录,获取所述当前使用用户的此次使用趋势的具体步骤包括:基于所述历史使用记录,获取资源占用数据;获取相同类型的所述资源占用数据中对应位置的资源占用平均值;基于所述资源占用平均值,获取所述当前使用用户的此次使用趋势。
15.通过采用上述技术方案,通过计算资源占用数据中对应位置的资源占用平均值来计算出当前使用用户的此次使用趋势,从而有助于提高数据准确性。
16.可选的,所述基于此次使用趋势,获取节点使用趋势的具体步骤包括:获取所述适配节点下所有用户的所述此次使用趋势;获取所有所述此次使用趋势中的最大值作为所述节点使用趋势。
17.通过采用上述技术方案,计算出该适配节点下所有用户的此次使用趋势,并将其最大值作为节点使用趋势,数据更加准确,有助于预测的节点使用趋势更加贴合实际情况,从而有助于提高资源分配效果。
18.可选的,所述获取目标用户使用趋势的具体步骤包括:获取目标用户使用目标软件的所有历史使用记录;基于所述历史使用记录,分别获取每次所述历史使用记录的记录权重;
基于所述记录权重以及所述历史使用记录,获取所述目标用户使用趋势。
19.通过采用上述技术方案,根据历史使用记录获取不同的记录权重,再根据记录权重和历史使用记录得到目标用户使用趋势,有助于更加真实的预测目标用户使用趋势。
20.可选的,所述基于所述历史使用记录,分别获取每次所述历史使用记录的记录权重的具体步骤包括:将所述历史使用记录按照预设的时间规则排序,并生成排序列表;基于所述排序列表,获取所述记录权重。
21.通过采用上述技术方案,按照时间规则排序设置记录权重,有助于预测的目标用户使用趋势更加贴合实际情况,从而有助于提高资源分配效果。
22.可选的,所述基于所述节点使用趋势以及所述目标用户使用趋势,为目标用户分配所述目标节点的具体步骤包括:基于所述节点使用趋势,获取节点剩余趋势;判断所述节点剩余趋势是否大于所述目标用户使用趋势;若所述节点剩余趋势大于所述目标用户使用趋势,则将所述节点剩余趋势所对应的节点作为目标节点;若所述节点剩余趋势小于或等于所述目标用户使用趋势,则将备用节点作为所述目标节点;将所述目标节点分配给所述目标用户。
23.通过采用上述技术方案,通过节点使用趋势计算出节点剩余趋势,再通过判断节点剩余趋势是否大于目标用户使用趋势,为目标用户选择目标节点,从而有助于提高资源分配效果,减少系统卡顿与资源浪费的情况发生。
24.第二方面,本技术还公开了一种负载均衡系统,采用如下的技术方案:一种负载均衡系统,包括:第一获取模块,用于获取用户使用不同软件时的资源占用情况;第二获取模块,用于获取目标软件;第三获取模块,用于基于所述目标软件,获取所有适配节点;第四获取模块,用于获取所述适配节点的当前使用用户的用户使用情况;第五获取模块,用于基于所述资源占用情况以及所述用户使用情况,获取当前使用用户的此次使用趋势;第六获取模块,用于基于所述此次使用趋势以及所述适配节点,获取节点使用趋势;第七获取模块,用于获取目标用户使用趋势;分配模块,用于基于所述节点使用趋势以及所述目标用户使用趋势,为目标用户分配所述目标节点。
25.通过采用上述技术方案,获取用户此次使用趋势,通过用户此次使用趋势计算出节点使用趋势,再通过节点使用趋势以及目标用户使用趋势,为目标用户分配与其相适应的目标节点,根据目标用户的使用趋势有助于更加真实的反映出目标用户的实际使用需求,根据节点使用趋势也有助于更加真实的反映出该节点资源的实际占用情况,二者结合考虑则有助于更加合理的分配资源,提高资源分配效果,从而有助于减少系统卡顿与资源浪费的情况发生。
26.综上所述,本技术包括以下有益技术效果:获取用户此次使用趋势,通过用户此次使用趋势计算出节点使用趋势,再通过节点使用趋势以及目标用户使用趋势,为目标用户分配与其相适应的目标节点,根据目标用户的使用趋势有助于更加真实的反映出目标用户的实际使用需求,根据节点使用趋势也有助于更加真实的反映出该节点资源的实际占用情况,二者结合考虑则有助于更加合理的分配资源,提高资源分配效果,从而有助于减少系统卡顿与资源浪费的情况发生。
附图说明
27.图1是本技术实施例一种负载均衡方法的主要流程图;图2是获取适配节点的具体步骤流程图;图3是获取当前使用用户的此次使用趋势的具体步骤流程图;图4是图3中s440的具体步骤流程图;图5是图4中s444的具体步骤流程图;图6是获取节点使用趋势的具体步骤流程图;图7是获取目标用户使用趋势的具体步骤流程图;图8是图7中s620的具体步骤流程图;图9是目标用户分配所述目标节点的具体步骤流程图;图10是本技术实施例一种负载均衡系统的模块图。
28.附图标记说明:1、第一获取模块;2、第二获取模块;3、第三获取模块;4、第四获取模块;5、第五获取模块;6、第六获取模块;7、第七获取模块;8、分配模块。
具体实施方式
29.第一方面,本技术公开了一种负载均衡方法。
30.参照图1,一种负载均衡方法,包括步骤s100至步骤s800:步骤s100:获取用户使用不同软件时的资源占用情况。
31.具体的,本实施例中,资源占用情况是根据用户历史数据统计得到的,用户历史数据存储于app_connection表以及连接监控表中。本实施例中,资源指cpu、gpu以及内存等,资源占用情况指用户完成一次连接时,cpu、gpu以及内存的占用情况以及使用时长等。例如,李四使用不同软件的资源占用情况即李四每次使用landmark以及petrel等软件时的使用时长,以及在使用这些软件时cpu、gpu以及内存的占用情况;landmark是在一体化的勘探开发项目数据管理基础上,集地震解释与地质分析等各项研究工作于一体的应用软件环境,以二维、三维地震解释、地质分析和三维可视化等软件为主,结合属性分析等相关软件,组成的一个基本的一体化软件环境,petrel是一款以三维地质模型为中心的勘探开发一体化平台,属于地球物理专业软件。
32.步骤s200:获取目标软件。
33.具体的,本实施例中,目标软件指的是用户想要使用的某一指定的软件,例如landmark以及petrel等。
34.步骤s300:基于所述目标软件,获取所有适配节点。
35.具体的,在本实施例中,每款软件都有适合的系统类型(例如windows或者linux等)和打开方式(例如通过horizon、dvc2019或xenapp等软件打开),而在使用该软件时,所使用的节点也应需要与软件的系统类型以及打开方式相匹配。例如,petrel软件所适合的系统类型是windows,而打开方式是horizon,那么适合节点即是指适合windows且打开方式为horizon的节点。
36.步骤s400:获取所述适配节点的当前使用用户的用户使用情况。
37.具体的,本实施例中,用户使用情况包括用户历史id以及使用时长等。
38.步骤s500:基于资源占用情况以及用户使用情况,获取当前使用用户的此次使用趋势。
39.具体的,本实施例中,当前使用用户此次使用趋势即指当前用户此次使用软件时占用的资源的趋势,用户使用软件将会占用一定的资源,在此次使用的所有时刻,资源的使用量绘制成的曲线图即是当前使用用户的此次使用趋势。
40.步骤s600:基于此次使用趋势以及适配节点,获取节点使用趋势。
41.具体的,本实施例中,节点使用趋势指的节点的整体资源占用量在各个时间组成的趋势图。
42.步骤s700:获取目标用户使用趋势;具体的,本实施例中,目标用户是指使用目标软件的用户。
43.步骤s800:基于节点使用趋势以及目标用户使用趋势,为目标用户分配目标节点。
44.具体的,本实施例中,目标节点指的是最终分配给目标用户的适配节点。
45.通过用户此次使用趋势计算出节点使用趋势,再通过节点使用趋势以及目标用户使用趋势,为目标用户分配与其相适应的目标节点,根据目标用户的使用趋势有助于更加真实的反映出目标用户的实际使用需求,而根据节点使用趋势也有助于更加真实的反映出该节点资源的实际占用情况,二者结合考虑则有助于更加合理的分配资源,提高资源分配效果,从而有助于减少系统卡顿与资源浪费的情况发生。
46.参照图2,在本实施例的其中一种实施方式中,步骤s200的具体步骤包括步骤s210至步骤s220:步骤s210:基于目标软件,获取目标软件的系统类型以及打开方式。
47.步骤s220:基于系统类型以及打开方式,获取所有适配节点。
48.根据目标软件的系统类型以及打开方式,找出所有适配节点,有助于为合理的分配资源提供基础。
49.参照图3,在本实施例的其中一种实施方式中,步骤s400的具体步骤包括步骤s410至步骤s440:步骤s410:获取适配节点的当前使用用户。
50.具体的,本实施例中,适配节点的当前使用用户即当前正在适配节点下使用的所有用户。
51.步骤s420:获取当前使用用户的当前使用趋势。
52.具体的,本实施例中,当前使用趋势指用户当前对资源占用组成的趋势图。
53.步骤s430:基于资源占用情况以及用户使用情况,获取当前使用用户的历史使用趋势。
54.具体的,本实施例中,历史使用趋势指用户历史登录账户后对资源占用组成的趋势图。
55.步骤s440:基于当前使用趋势和历史使用趋势,获取当前使用用户的此次使用趋势。
56.通过获取用户的当前使用趋势,再根据当前使用趋势和历史使用趋势,得到用户的此次使用趋势,有助于根据用户此次使用趋势预测出节点的使用趋势,从而提高资源分配效果。
57.参照图4,在本实施例的其中一种实施方式中,步骤s440的具体步骤包括步骤s441至步骤s444:步骤s441:获取差异程度。
58.具体的,本实施例中,差异程度为当前使用趋势与历史使用趋势的差值。
59.步骤s442:将差异程度按照预设的排序规则进行排序,并生成差异列表。
60.具体的,本实施例中,按照预设的规则进行排序可以为根据差异程度的大小进行排序,例如差异程度由小到大或者差异程度由大到小等。
61.步骤s443:基于差异列表以及预设的获取规则,获取k条历史使用记录。
62.具体的,本实施例中,差异程度值越小,则当前使用趋势与历史使用趋势越相近,相似度越高,预设的获取规则即获取按照差异程度从大到小排序时,最后k条历史记录,或者按照差异程度从小到大排序时,最前k条历史记录,k可以为5,也可以是10等其它数值。
63.步骤s444:基于k条历史使用记录,获取当前使用用户的此次使用趋势。
64.采用多条差异程度最小的历史使用记录来计算出当前使用用户的此次使用趋势,有助于使得当前使用用户的此次使用趋势更加贴近实际的发生几率,进而有助于提高资源分配效果。
65.参照图5,在本实施例的其中一种实施方式中,步骤s444的具体步骤包括步骤s4441至步骤s4443:步骤s4441:基于历史使用记录,获取资源占用数据。
66.具体的,本实施例中,资源占用数据包括cpu数据、gpu数据以及内存数据等,值得说明的是,这些资源占用数据均是k条差异程度最小的历史使用记录的资源占用数据。
67.步骤s4442:获取相同类型的资源占用数据中对应位置的资源占用平均值。
68.具体的,本实施例中,同类型占用资源指的是k条使用记录的每条cpu数据或k条使用记录的每条gpu数据等;本实施例中每隔15s对资源进行一次监控,因此对应位置可以是登录账号后的第n个15s,其中,n为大于或等于1的正整数。
69.步骤s4443:基于资源占用平均值,获取当前使用用户的此次使用趋势。
70.通过计算资源占用数据中对应位置的资源占用平均值来计算出当前使用用户的此次使用趋势,有助于从而提高数据准确性。
71.参照图6,在本实施例的其中一种实施方式中,步骤s500的具体步骤包括步骤s510至步骤s520:步骤s510:获取适配节点下所有用户的此次使用趋势。
72.步骤s520:获取所有此次使用趋势中的最大值作为节点使用趋势。
73.具体的,本实施例中,假设a节点下共有两个用户在使用,例如张三和李四在使用a
节点期间,张三的cpu、gpu以及内存使用趋势均高于李四,那么张三的此次使用趋势大于李四的此次使用趋势,则节点使用趋势为张三的此次使用趋势。
74.值得指出的是,如果张三的cpu使用量高于李四的cpu使用量,但是李四的gpu使用趋势高于张三的使用趋势,则结合目标用户使用目标软件时更注重哪个资源的使用趋势,如果目标用户更需要有较高的gpu使用趋势,则将gpu使用趋势剩余多的用户的此次使用趋势作为节点使用趋势,即节点使用趋势为李四的此次使用趋势。
75.计算出该适配节点下所有用户的此次使用趋势,并将其最大值作为节点使用趋势,数据更加准确,有助于预测的节点使用趋势更加贴合实际情况,从而有助于提高资源分配效果。
76.参照图7,在本实施例的其中一种实施方式中,步骤s600的具体步骤包括步骤s610至步骤s630:步骤s610:获取目标用户使用目标软件的所有历史使用记录。
77.步骤s620:基于历史使用记录,分别获取每次历史使用记录的记录权重。
78.步骤s630:基于记录权重以及历史使用记录,获取目标用户使用趋势。
79.根据历史使用记录获取不同的记录权重,再根据记录权重和历史使用记录得到目标用户使用趋势,有助于更加真实的预测目标用户使用趋势。
80.参照图8,在本实施例的其中一种实施方式中,步骤s620的具体步骤包括步骤s621至步骤s622:步骤s621:将历史使用记录按照预设的时间规则排序,并生成排序列表。
81.具体的,本实施例中,按照预设的时间规则排序可以是按照连接时间先后顺序进行排列。
82.步骤s622:基于排序列表,获取记录权重。
83.具体的,本实施例中,记录权重的总和为1,按照第一次连接的记录权重值小于第二次连接的记录权重值,最近一次连接的记录权重最大的规则进行分配,具体记录权重分配公式为其中qn表示第n次连接的记录权重。
84.参照图9,在本实施例的其中一种实施方式中,步骤s700的具体步骤包括步骤s710至步骤s750:步骤s710:基于节点使用趋势,获取节点剩余趋势。
85.具体的,本实施例中,节点剩余趋势为该节点剩余的使用趋势,其结果为百分百减去节点使用趋势。
86.步骤s720:判断节点剩余趋势是否大于目标用户使用趋势。
87.具体的,本实施例中,为防止系统卡顿,会设置一个阈值,当使用趋势达到该阈值后,则判定该节点剩余趋势为零,本实施例中,该阈值可以为总量的百分之九十。
88.步骤s730:若节点剩余趋势大于目标用户使用趋势,则将节点剩余趋势所对应的节点作为目标节点。
89.具体的,本实施例中,节点剩余趋势大于目标用户使用趋势指的是节点剩余趋势在每个位置上的值均大于目标用户使用趋势。
90.步骤s740:若节点剩余趋势小于或等于目标用户使用趋势,则将备用节点作为目标节点。
91.具体的,本实施例中,节点剩余趋势小于或等于目标用户使用趋势指的是存在节点剩余趋势不能有效的满足目标用户使用的情况,备用节点指较优的设备,较优的设备可以根据分别计算各设备与目标用户使用趋势在相应位置的值来确定,整体差值最小的则被设定为较优的设备。
92.步骤s750:将目标节点分配给目标用户。
93.通过节点使用趋势计算出节点剩余趋势,再通过判断节点剩余趋势是否大于目标用户使用趋势,为目标用户选择目标节点,从而有助于提高资源分配效果,减少系统卡顿与资源浪费的情况发生。
94.此外,本实施例中,还可以根据用户所在公司、部门等,分析出用户所在行业以及层次,并进行分类,从而用于预测与该用户相同或相近行业以及层次的人的使用趋势,还可以通过获取用户兴趣爱好以及习惯等预测用户使用趋势。
95.本技术实施例一种负载均衡方法的实施原理为:获取用户使用不同软件时的资源占用情况,获取目标软件,基于目标软件,获取所有适配节点;获取适配节点的当前使用用户的用户使用情况,基于资源占用情况以及用户使用情况,获取当前使用用户的此次使用趋势,基于此次使用趋势以及适配节点,获取节点使用趋势;获取目标用户使用趋势,基于节点使用趋势以及目标用户使用趋势,为目标用户分配目标节点。
96.第二方面,本技术还公开了一种负载均衡系统。
97.参照图10,一种负载均衡系统,包括:第一获取模块1,用于获取用户使用不同软件时的资源占用情况;第二获取模块2,用于获取目标软件;第三获取模块3,用于基于所述目标软件,获取所有适配节点;第四获取模块4,用于获取所述适配节点的当前使用用户的用户使用情况;第五获取模块5,用于基于所述资源占用情况以及所述用户使用情况,获取当前使用用户的此次使用趋势;第六获取模块6,用于基于所述此次使用趋势以及所述适配节点,获取节点使用趋势;第七获取模块7,用于获取目标用户使用趋势;分配模块8,用于基于所述节点使用趋势以及所述目标用户使用趋势,为目标用户分配所述目标节点。
98.本技术实施例一种负载均衡系统的实施原理为:第一获取模块1获取用户使用不同软件时的资源占用情况;第二获取模块2获取目标软件,第三获取模块3基于从第二获取模块2获取的目标软件,获取所有适配节点;第四获取模块4获取适配节点的当前使用用户的用户使用情况,并将当前使用用户的用户使用情况发送至第五获取模块5,第五获取模块5基于资源占用情况以及用户使用情况,获取当前使用用户的此次使用趋势,并将此次使用趋势发送至第六获取模块6,第六获取模块6基于用户此次使用趋势获取节点使用趋势;第七获取模块7获取目标用户使用趋势,并将目标用户使用趋势发送至分配模块8,分配模块8基于节点使用趋势以及目标用户使用趋势,为目标用户分配目标节点,从而达到与前述一
种负载均衡方法同样的技术效果。
99.以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1