CN116737373A - 负载均衡方法、装置、计算机设备、存储介质 - Google Patents
负载均衡方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN116737373A CN116737373A CN202310684257.2A CN202310684257A CN116737373A CN 116737373 A CN116737373 A CN 116737373A CN 202310684257 A CN202310684257 A CN 202310684257A CN 116737373 A CN116737373 A CN 116737373A
- Authority
- CN
- China
- Prior art keywords
- load
- server
- request
- training
- available
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012549 training Methods 0.000 claims description 91
- 238000004590 computer program Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 16
- 238000003062 neural network model Methods 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种负载均衡方法、装置、计算机设备、存储介质。所述方法包括:接收负载请求,确定所述负载请求对应的负载类型;将所述负载类型、服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态;根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,所述负载均衡指数是利用每个服务器的可用负载状态、可用负载状态的均值和所述服务器集群中服务器的数量计算得到的。将所述负载请求分配给所述负载接收服务器。采用本方法能够准确的预测服务器的资源,并且提高负载分配的效果,保证负载均衡。
Description
技术领域
本公开涉及计算机技术领域,特别是涉及一种负载均衡方法、装置、计算机设备、存储介质。
背景技术
随着互联网的高速发展,各类网络化信息系统规模越来越大,访问流量呈几何级数增长,这对服务器的工作性能提出更高要求。服务器集群中单个服务器的结构和性能存在差异,客户端访问具有随机性和突发性。而在云计算异构环境中,通常存在负载不均衡的问题。
然而,目前解决负载不均衡的问题,通常都是对服务器的资源进行预测,进而对不同的负载请求进行分配。但是目前解决负载不均衡时大多存在对服务器资源的预测不够精准,且指标不够全面,负载分配效果较差的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够准确的预测服务器的资源,并且提高负载分配的效果的负载均衡方法、装置、计算机设备、存储介质。
第一方面,本公开提供了一种负载均衡方法,应用于服务器集群,所述服务器集群中包括多个服务器:
接收负载请求,确定所述负载请求对应的负载类型;
将所述负载类型、所述服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态;
根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,所述负载均衡指数是利用每个服务器的可用负载状态、可用负载状态的均值和所述服务器集群中服务器的数量计算得到的将所述负载请求分配给所述负载接收服务器。
在其中一个实施例中,所述预测模型采用下述方式得到:
基于训练预测服务器接收的训练负载请求对应的负载类型、所述训练预测服务器的性能数据、所述训练预测服务器接收所述训练负载请求前的可用负载状态、所述训练预测服务器接收所述训练负载请求后的可用负载状态,训练神经网络模型,得到预测模型;其中,所述训练预测服务器的性能数据,包括:训练预测服务器擅长处理的负载类型和等价性能参数,所述等价性能参数表征所述训练预测服务器和基准服务器之间的性能的对比值。
在其中一个实施例中,所述训练预测服务器擅长处理的负载类型,采用下述方式确定:
获取多种负载类型的负载请求;
将每种负载类型的负载请求分别分配至所述训练预测服务器中,得到每种类型负载请求所对应的响应时间;
根据所述响应时间,确定所述训练预测服务器擅长处理的负载类型。
在其中一个实施例中,所述每个服务器的可用负载状态,采用下述方式确定:
获取所述服务器的资源指标的剩余率,其中所述资源指标至少包括:CPU指标、内存指标、磁盘指标、网络带宽指标;
根据所述资源指标的剩余率以及所述资源指标对应的权重系数进行加权求和,得到所述服务器的可用负载状态。
在其中一个实施例中,所述根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,包括:
利用所述预测负载状态对所述服务器集群中服务器进行筛选,删除所述预测负载状态小于预设的可用阈值的服务器,得到待分配服务器;
针对每个待分配服务器,根据所述待分配服务器的预测负载状态和所述服务器集群中待分配服务器之外的服务器的可用负载状态,计算得到每个待分配服务器所对应的负载均衡指数;
根据每个待分配服务器所对应的负载均衡指数,确定所述待分配服务器中负载接收服务器。
在其中一个实施例中,所述接收负载请求,确定所述负载请求对应的负载类型,包括:
接收负载请求,其中,所述负载请求中包括按照比特位进行标识的分类结果,所述分类结果是将所述负载请求按照对服务器资源的消耗进行分类后得到的;
根据所述负载请求对应的比特位的标识,确定所述负载请求对应的负载类型
第二方面,本公开还提供了一种负载均衡装置。应用于服务器集群,所述服务器集群中包括多个服务器,所述装置包括:
负载接收模块,用于接收负载请求,确定所述负载请求对应的负载类型;
模型处理模块,用于将所述负载类型、所述服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态;
服务器确定模块,用于根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,所述负载均衡指数是利用每个服务器的可用负载状态、可用负载状态的均值和所述服务器集群中服务器的数量计算得到的;
负载分配模块,用于将所述负载请求分配给所述负载接收服务器。
第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一方法实施例中的步骤。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
上述各实施例中,将负载类型、所述服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态。能够利用预测模型来准确的确定每个服务器响应负载请求后的其自身的预测负载状态。然后由于会存在负载分配不均衡的问题,因此可以根据预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器。由于负载均衡指数能够反映整个服务器集群的负载状态,而预测负载状态反映每个服务器的可用负载状态,综合两者,能够在服务器集群中确定需要负载分配的负载接收服务器。然后将所述负载请求分配给负载接收服务器,来提高负载分配的效果,保证负载分配均衡。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中负载均衡方法的应用环境示意图;
图2为一个实施例中负载均衡方法的流程示意图;
图3为一个实施例中确定负载类型的步骤的流程示意图;
图4为一个实施例中确定负载状态的步骤的流程示意图;
图5为一个实施例中S206步骤的流程示意图;
图6为一个实施例中S202步骤的流程示意图;
图7为一个实施例中负载均衡装置的结构示意框图;
图8为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开实施例提供了一种负载均衡方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器集群104中的服务器进行通信。终端102可以接收云端或者其他客户端对服务器集群104的负载请求。终端102可以确定所述负载请求对应的负载类型。终端102可以将负载类型、服务器集群104中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用预测模型输出每个服务器响应负载请求后的预测负载状态。终端102根据所述预测负载状态和负载均衡指数,确定所述服务器集群104中负载接收服务器。所述负载均衡指数是利用每个服务器的可用负载状态、可用负载状态的均值和服务器集群104中服务器的数量计算得到的。终端102确定负载接收服务器之后,可以将负载请求分配给负载接收服务器。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。
在一个实施例中,如图2所示,提供了一种负载均衡方法,以该方法执行主体为图1中的终端102,执行对象为图1中的服务器集群104为例进行说明,包括以下步骤:
S202,接收负载请求,确定所述负载请求对应的负载类型。
其中,负载类型在本公开的一些实施例中通常可以是负载请求需要消耗的服务器资源的类型。负载类型可以由消耗CPU资源、消耗内存资源、消耗硬盘资源等来构成。
具体地,终端102可以接收云端或者其他客户端发送的负载请求,然后终端可以对负载请求进行分析,进而来确定负载请求对应的负载类型。
在一些示例性的实施例中,负载请求中通常情况下可以存在需要消耗的服务资源的分类标识,可以根据分类标识来确定负载请求对应的负载类型。例如,消耗CPU资源的标识为A、消耗内存资源的标识为B、消耗硬盘资源的标识为C,而负载请求中分类标识为A和B,则可以确定负载请求的负载类型为消耗CPU资源的和消耗内存资源的负载。
S204,将所述负载类型、所述服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态。
其中,预测模型通常可以将负载类型、服务器的性能数据和输入负载请求后的可用负载状态和输入负载请求的可用负载状态作为训练数据,来训练神经网络模型后得到的。神经网络模型在本公开的一些实施例中不对其类型进行限制。服务器的性能数据通常可以包括了每个服务器擅长处理的负载类型以及每个服务器所相对于基准服务器的等价性能参数。等价性能参数是选中一种服务器作为基准,将其他服务器的性能表现用与基准服务器性能表现的对比值表示得到的参数,可以更好的来衡量各个服务器之间的性能差异。预测负载状态通常情况下,可以是每个服务器接收负载请求并响应后,每个服务器剩余的可用负载状态,该状态通常可以是使用预测模型进行预测的得到的。
具体地,当接收到负载请求后,需要将负载请求分配给服务器集群中的服务器,为了保证负载均衡。此时可以将负载请求对应的负载类型、每个服务器的性能数据和每个服务器的可用负载状态作为输入数据,输入至预先训练完成的预测模型中,利用预测模型输出每个服务器响应负载请求后的预测负载状态。
S206,根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,所述负载均衡指数是利用每个服务器的可用负载状态、可用负载状态的均值和所述服务器集群中服务器的数量计算得到的。
其中,负载均衡指数可以用来标识整个服务器集群的负载状态,当负载均衡指数越小,表示服务器集群负载越均衡。
具体地,可以根据每个服务器的预测负载状态,来计算相对应的负载均衡指数。然后利用计算得到的负载均衡指数对服务器进行筛选,确定负载均衡指数较小的服务器为负载接收服务器。
S208,将所述负载请求分配给所述负载接收服务器。
具体地,当确定负载接收服务器后,可以将负载请求分配给负载接收服务器,以保证服务器集群中的负载均衡。
上述负载均衡方法中,将负载类型、所述服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态。能够利用预测模型来准确的确定每个服务器响应负载请求后的其自身的预测负载状态。然后由于会存在负载分配不均衡的问题,因此可以根据预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器。由于负载均衡指数能够反映整个服务器集群的负载状态,而预测负载状态反映每个服务器的可用负载状态,综合两者,能够在服务器集群中确定需要负载分配的负载接收服务器。然后将所述负载请求分配给负载接收服务器,来提高负载分配的效果,保证负载分配均衡。
在一个实施例中,所述预测模型采用下述方式得到:
基于训练预测服务器接收的训练负载请求对应的负载类型、所述训练预测服务器的性能数据、所述训练预测服务器接收所述训练负载请求前的可用负载状态、所述训练预测服务器接收所述训练负载请求后的可用负载状态,训练神经网络模型,得到预测模型;其中,所述训练预测服务器的性能数据,包括:训练预测服务器擅长处理的负载类型和等价性能参数,所述等价性能参数表征所述训练预测服务器和基准服务器之间的性能的对比值。
具体地,由于预测模型需要预测每个服务器响应负载请求后的预测负载状态。因此,可以使用训练预测服务器的一些指标来作为训练数据。首先可以获取训练预测服务器未进行接收训练负载请求时的可用负载状态,然后可以获取训练预测服务器接收训练负载请求后的可用负载状态,再获取训练负载请求对应的负载类型、训练预测服务器的性能数据。该性能数据也可以包括:训练预测服务器擅长处理的负载类型和等价性能参数(关于此处等价性能参数的限定可参见上述实施例,在此不进行重复数据)。将上述数据作为神经网络模型的训练数据,来训练神经网络模型。训练完成后,可以得到预测模型。
得到预测模型后,可以设置定时任务,定时处理上述训练预测模型时所使用的数据再次进行训练预测模型,以对预测模型进行更新。
在一些实施例中,性能数据还可以包括训练预测服务器的性能评分数据,性能评分数据可以作为训练预测服务器的性能高低的评分。
在一些示例性的实施例中,训练预测服务器的各种性能数据和负载请求信息通常会以日志文件的形式存放在服务器中,需要将文件内容解析后存入数据库中,然后根据计算服务器负载状态。性能数据解析并存入数据库的代码逻辑步骤如下:
1、根据配置的文件路径,校验文件名称后读取日志文件;
2、逐行读取文件内容,校验读取的行文件信息,解析为入库sql语句,存入缓存队列中;
3:当队列中sql语句大于99时,统一进行批量入库操作,成功后清空缓存队列;
4:重复步骤2与步骤3,当文件读取完毕后,将缓存队列中的sql语句统一入库,结束程序。
服务器的负载请求信息解析入库的代码逻辑步骤如下:
1:根据配置的文件路径,校验文件名包含access且后缀为log时读取日志文件;
2:逐行读取文件内容,校验读取的行文件信息内容中包含特定字符串“apirequest info”时,按英文逗号“,”解析为入库sql语句,存入缓存队列中;
3:当队列中sql语句大于99时,统一进行批量入库操作,成功后清空缓存队列;
4:重复步骤2与步骤3,当文件读取完毕后,将缓存队列中的sql语句统一入库,结束程序。
本实施例中,在训练神经网络模型的过程中,使用了训练预测服务器的性能数据,而其中可以包括训练预测服务器擅长处理的负载类型和等价性能参数,能够将擅长处理的负载类型和等价性能参数作为预测模型评估接收训练负载请求后的可用负载状态的指标之一,并且将各个指标作为数据关联起来来训练神经网络模型,得到预测模型,能够提高预测模型预测的准确性。
在一个实施例中,如图3所示,所述训练预测服务器擅长处理的负载类型,采用下述方式确定:
S302,获取多种负载类型的负载请求。
S304,将每种负载类型的负载请求分别分配至所述训练预测服务器中,得到每种类型负载请求所对应的响应时间。
S306,根据所述响应时间,确定所述训练预测服务器擅长处理的负载类型。
具体地,由于负载请求的负载类型不同,因此每个服务器相应的处理不同负载类型的负载请求其对应的处理时间也不相同。因此,需要找到训练预测服务器擅长处理的负载类型,来作为训练预测模型时的指标。因此,可以获取多类负载类型的负载请求。然后将每种负载类型的负载请求分别分配至训练预测服务器中,得到响应该负载请求的响应时间。可以将每种负载类型的响应请求的响应时间进行排序,获取响应时间最对的负载类型对应的负载请求,该负载类型可以为训练预测服务器擅长处理的负载类型。
在一些示例性的实施例中,例如多种负载类型的负载请求包括:A负载类型对应的A负载请求,B负载类型对应的B负载请求和C负载类型对应的C负载请求。其中,A负载类型、B负载类型和C负载类型均可以由一种或者多种服务资源组成,例如A负载类型由消耗CPU资源和消耗内存资源组成。B负载类型由消耗内存资源组成,C负载类型由消耗CPU资源组成。分别将A负载请求、B负载请求和C负载请求依次分配至训练预测服务器中,得到A负载请求对应的A响应时间,B负载请求对应的B响应时间和C负载请求对应的C响应时间。其中C响应时间小于B响应时间小于A响应时间,则可以确定训练预测服务器擅长处理的负载类型为A负载类型。可以理解的是,上述仅用于举例说明。
另外,在本公开实施例中提及的确定训练预测服务器擅长处理的负载类型的方式,也可以应用于服务器集群中的其他服务器。
在本实施例中,通过确定训练预测服务器擅长处理的负载类型,能够保证训练预测模型和使用预测模型预测的准确性。
在一个实施例中,如图4所示,所述每个服务器的可用负载状态,采用下述方式确定:
S402,获取所述服务器的资源指标的剩余率,其中所述资源指标至少包括:CPU指标、内存指标、磁盘指标、网络带宽指标、GPU指标等等。
S404,根据所述资源指标的剩余率以及所述资源指标对应的权重系数进行加权求和,得到所述服务器的可用负载状态。
具体地,可以采用加权结合法结合服务器的资源指标以及对应的权重系数来构建资源评价函数。选择的资源指标分别属于服务器中不同的硬件的指标,因此其相互之间的关系相对独立,对服务器负载状态的影响可以线性叠加。因此可以获取服务器中每种资源指标的剩余率(总资源减去已使用的资源),然后将剩余率乘以每种资源指标对应的权重,然后进行求和,得到服务器的可用负载状态。可以理解的是,上述方法也可应用于计算训练预测服务器接收训练负载请求前的可用负载状态以及接收训练负载请求后的可用负载状态。
在一些示例性的实施例中,可以采用下述公式计算得到服务器的已用负载状态:
f(x1)=cpuucpu+kmemumem+kiouio+knetunet
可以采用下述公式计算得到服务器的可用负载状态,该可用负载状态通常情况下是可用的负载状态,首先对资源指标进行如下处理:
xcpu=1-ucpu,xmem=1-umem,xio=1-uio,xnet=1-unet;
f(x2)=cpuxcpu+kmemxmem+kioxio+knetxnet
其中,ucpu为CPU资源指标的使用率,umem为内存资源指标的使用率,uio为磁盘资源指标的使用率,unet为网络带宽资源的使用率。kcpu为CPU资源指标的权重,kmem为内存资源指标的权重,kio为磁盘资源指标的权重,knet为网络带宽资源指标的权重。xcpu为CPU资源指标的剩余率,xmem为内存资源指标的剩余率,xio为磁盘资源指标的剩余率,xnet为网络带宽资源的剩余率。可以理解的是上述实施例中仅以四种资源指标进行举例说明,在实际应用中不仅限于上述四种资源指标。通常情况下,f(x2)越大,代表服务器的可用负载状态越多。
在一些示例性的实施例中,服务器负载状态计算代码逻辑步骤如下:
1、读取数据库数据;2、根据上述公式计算服务器的可用负载状态。3、可以将负载请求的负载类型、负载请求的请求时间、当前训练预测服务器的连接数、服务器编号与训练预测服务器的可用负载状态关联起来,作为训练数据。
在本实施例中,由于各个资源指标之间并无相关影响,因此服务器负载状态的影响可以线性叠加,可以通过资源指标的剩余率和权重系数,进行加权求和来准确的确定服务器的可用负载状态,提高了负载分配准确性,能够保证负载均衡。
在一个实施例中,如图5所示,所述根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,包括:
S502,利用所述预测负载状态对所述服务器集群中服务器进行筛选,删除所述预测负载状态小于预设的可用阈值的服务器,得到待分配服务器。
S504,针对每个待分配服务器,根据所述待分配服务器的预测负载状态和所述服务器集群中待分配服务器之外的服务器的可用负载状态,计算得到每个待分配服务器所对应的负载均衡指数。
S506,根据每个待分配服务器所对应的负载均衡指数,确定所述待分配服务器中负载接收服务器。
具体地,预测负载状态通常情况下代表了每个服务器接收负载请求后的负载状态,因此当预测负载状态较小或者接近0时,通常情况下代表该服务器接收负载请求后本身的负载已经快接近满载了,不符合负载均衡的需求,因此可以利用鸽群算法的思想,将预测负载状态小于可用阈值的对应的服务器从服务器集群中删除,得到待分配服务器。然后针对每个待分配服务器,可以利用待分配服务器的预测负载状态,以及服务器集群中除待分配服务器之外的其他的服务器的可用负载状态,来计算得到每个待分配服务器所对应的负载均衡指数。如上述实施例中所提到的负载均衡指标越小,代表负载分配越均衡。因此,可以根据每个待分配服务器所对应的负载均衡指数,选择最小的负载均衡指数对应的待分配服务器,该待分配服务器可以为负载接收服务器。
在一些示例性的实施例中,例如,服务器集群中存在10台服务器,先使用10台服务器的预测负载状态对10台服务器进行筛选,得到5台待分配服务器。例如5台待分配服务器分别为S1、S2、S3、S4和S5。则针对S1至S5每台待分配服务器,将S1的预测负载状态和服务器集群中其余9台服务器的可用负载状态计算得到负载均衡指数。以此类推,直至计算得到S1至S5每台待分配服务器对应的负载均衡指数,例如S2待分配服务器的负载均衡指数最小,则S2可以为负载接收服务器。
在一些示例性的实施例中,可以采用如下公式计算得到负载均衡指数:
其中,f(x2)为除待分配服务器外每个服务器的可用负载状态,f(x待)为待分配服务器的可用负载状态。f(x均)为所有服务器的可用负载状态的均值,N为服务器集群中服务器的数量。
在本实施例中,通过利用负载均衡指数对以及预测负载状态对服务器集群中的服务器进行筛选,进而确定负载接收服务器,能够提高负载分配的效果,保证负载分配均衡。
在一个实施例中,如图6所示,所述接收负载请求,确定所述负载请求对应的负载类型,包括:
S602,接收负载请求,其中,所述负载请求中包括按照比特位进行标识的分类结果,所述分类结果是将所述负载请求按照对服务器资源的消耗进行分类后得到的。
S604,根据所述负载请求对应的比特位的标识,确定所述负载请求对应的负载类型。
具体地,当负载请求通常情况下可以按照比特位进行标识不同的分类结果。然后可以按照负载请求对应的比特位的标识来确定负载请求对应的负载类型。
在一些示例性的实施例中,以负载类型包括:消耗CPU资源、消耗内存资源、消耗硬盘资源和消耗网络资源为例进行说明。可以按bit位进行标识不同的负载类型,例如0代表不消耗,1代表消耗。可以形成如表1资源类型表。
表1资源类型表
网络带宽 | 磁盘 | 内存 | CPU | 说明 |
0 | 0 | 0 | 0 | 值为0,不占用系统资源 |
0 | 0 | 0 | 1 | 值为1,仅消耗CPU |
0 | 0 | 1 | 0 | 值为2,仅消耗内存 |
0 | 1 | 0 | 0 | 值为4,仅占用磁盘 |
1 | 0 | 0 | 0 | 值为8,仅占用网络带宽 |
1 | 0 | 0 | 1 | 值为9,同时CPU与网络带宽 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | 值为15,对四种资源全面消耗 |
通过上述表中不同的值可以确定负载请求对应的负载类型。
在本实施例中,通过比特位对不同的资源消耗的分类结果进行标识,能够快速准确的确定负载请求对应的负载类型,进而提高负载分配的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的负载均衡方法的负载均衡装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个负载均衡装置实施例中的具体限定可以参见上文中对于负载均衡方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种负载均衡装置700,应用于服务器集群,所述服务器集群中包括多个服务器,装置包括:负载接收模块702、模型处理模块704、服务器确定模块706和负载分配模块708,其中:
负载接收模块702,用于接收负载请求,确定所述负载请求对应的负载类型;
模型处理模块704,用于将所述负载类型、所述服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态;
服务器确定模块706,用于根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,所述负载均衡指数是利用每个服务器的可用负载状态、可用负载状态的均值和所述服务器集群中服务器的数量计算得到的;
负载分配模块708,用于将所述负载请求分配给所述负载接收服务器。
在所述装置的一个实施例中,所述装置还包括:模型训练模块,用于基于训练预测服务器接收的训练负载请求对应的负载类型、所述训练预测服务器的性能数据、所述训练预测服务器接收所述训练负载请求前的可用负载状态、所述训练预测服务器接收所述训练负载请求后的可用负载状态,训练神经网络模型,得到预测模型;其中,所述训练预测服务器的性能数据,包括:训练预测服务器擅长处理的负载类型和等价性能参数,所述等价性能参数表征所述训练预测服务器和基准服务器之间的性能的对比值。
在所述装置的一个实施例中,所述装置还包括:负载类型确定模块,用于获取多种负载类型的负载请求;将每种负载类型的负载请求分别分配至所述训练预测服务器中,得到每种类型负载请求所对应的响应时间;根据所述响应时间,确定所述训练预测服务器擅长处理的负载类型。
在所述装置的一个实施例中,所述装置还包括:负载状态计算模块,用于获取所述服务器的资源指标的剩余率,其中所述资源指标至少包括:CPU指标、内存指标、磁盘指标、网络带宽指标;根据所述资源指标的剩余率以及所述资源指标对应的权重系数进行加权求和,得到所述服务器的可用负载状态。
在所述装置的一个实施例中,所述服务器确定模块706,包括:
服务器筛选模块,用于利用所述预测负载状态对所述服务器集群中服务器进行筛选,删除所述预测负载状态小于预设的可用阈值的服务器,得到待分配服务器。
指数计算模块,用于针对每个待分配服务器,根据所述待分配服务器的预测负载状态和所述服务器集群中待分配服务器之外的服务器的可用负载状态,计算得到每个待分配服务器所对应的负载均衡指数。
服务器确定子模块,用于根据每个待分配服务器所对应的负载均衡指数,确定所述待分配服务器中负载接收服务器。
在所述装置的一个实施例中,所述负载接收模块702,还用于接收负载请求,其中,所述负载请求中包括按照比特位进行标识的分类结果,所述分类结果是将所述负载请求按照对服务器资源的消耗进行分类后得到的;根据所述负载请求对应的比特位的标识,确定所述负载请求对应的负载类型。
上述负载均衡装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储负载均衡指数、预测负载状态等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种负载均衡方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。
Claims (10)
1.一种负载均衡方法,其特征在于,应用于服务器集群,所述服务器集群中包括多个服务器,所述方法包括:
接收负载请求,确定所述负载请求对应的负载类型;
将所述负载类型、所述服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态;
根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,所述负载均衡指数是利用每个服务器的可用负载状态、可用负载状态的均值和所述服务器集群中服务器的数量计算得到的;
将所述负载请求分配给所述负载接收服务器。
2.根据权利要求1所述的方法,其特征在于,所述预测模型采用下述方式得到:
基于训练预测服务器接收的训练负载请求对应的负载类型、所述训练预测服务器的性能数据、所述训练预测服务器接收所述训练负载请求前的可用负载状态、所述训练预测服务器接收所述训练负载请求后的可用负载状态,训练神经网络模型,得到预测模型;其中,所述训练预测服务器的性能数据,包括:训练预测服务器擅长处理的负载类型和等价性能参数,所述等价性能参数表征所述训练预测服务器和基准服务器之间的性能的对比值。
3.根据权利要求2所述的方法,其特征在于,所述训练预测服务器擅长处理的负载类型,采用下述方式确定:
获取多种负载类型的负载请求;
将每种负载类型的负载请求分别分配至所述训练预测服务器中,得到每种类型负载请求所对应的响应时间;
根据所述响应时间,确定所述训练预测服务器擅长处理的负载类型。
4.根据权利要求1所述的方法,其特征在于,所述每个服务器的可用负载状态,采用下述方式确定:
获取所述服务器的资源指标的剩余率,其中所述资源指标至少包括:CPU指标、内存指标、磁盘指标、网络带宽指标;
根据所述资源指标的剩余率以及所述资源指标对应的权重系数进行加权求和,得到所述服务器的可用负载状态。
5.根据权利要求1所述的方法,其特征在于,所述根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,包括:
利用所述预测负载状态对所述服务器集群中服务器进行筛选,删除所述预测负载状态小于预设的可用阈值的服务器,得到待分配服务器;
针对每个待分配服务器,根据所述待分配服务器的预测负载状态和所述服务器集群中待分配服务器之外的服务器的可用负载状态,计算得到每个待分配服务器所对应的负载均衡指数;
根据每个待分配服务器所对应的负载均衡指数,确定所述待分配服务器中负载接收服务器。
6.根据权利要求1所述的方法,其特征在于,所述接收负载请求,确定所述负载请求对应的负载类型,包括:
接收负载请求,其中,所述负载请求中包括按照比特位进行标识的分类结果,所述分类结果是将所述负载请求按照对服务器资源的消耗进行分类后得到的;
根据所述负载请求对应的比特位的标识,确定所述负载请求对应的负载类型。
7.一种负载均衡装置,其特征在于,应用于服务器集群,所述服务器集群中包括多个服务器,所述装置包括:
负载接收模块,用于接收负载请求,确定所述负载请求对应的负载类型;
模型处理模块,用于将所述负载类型、所述服务器集群中每个服务器的性能数据以及每个服务器的可用负载状态输入至预先训练完成的预测模型中,利用所述预测模型输出每个服务器的响应所述负载请求后的预测负载状态;
服务器确定模块,用于根据所述预测负载状态和负载均衡指数,确定所述服务器集群中负载接收服务器,所述负载均衡指数是利用每个服务器的可用负载状态、可用负载状态的均值和所述服务器集群中服务器的数量计算得到的;
负载分配模块,用于将所述负载请求分配给所述负载接收服务器。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310684257.2A CN116737373A (zh) | 2023-06-09 | 2023-06-09 | 负载均衡方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310684257.2A CN116737373A (zh) | 2023-06-09 | 2023-06-09 | 负载均衡方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737373A true CN116737373A (zh) | 2023-09-12 |
Family
ID=87902266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310684257.2A Pending CN116737373A (zh) | 2023-06-09 | 2023-06-09 | 负载均衡方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737373A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149099A (zh) * | 2023-10-31 | 2023-12-01 | 江苏华鲲振宇智能科技有限责任公司 | 一种计算存储分体式服务器系统及控制方法 |
-
2023
- 2023-06-09 CN CN202310684257.2A patent/CN116737373A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149099A (zh) * | 2023-10-31 | 2023-12-01 | 江苏华鲲振宇智能科技有限责任公司 | 一种计算存储分体式服务器系统及控制方法 |
CN117149099B (zh) * | 2023-10-31 | 2024-03-12 | 江苏华鲲振宇智能科技有限责任公司 | 一种计算存储分体式服务器系统及控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12056583B2 (en) | Target variable distribution-based acceptance of machine learning test data sets | |
WO2022037337A1 (zh) | 机器学习模型的分布式训练方法、装置以及计算机设备 | |
US10311044B2 (en) | Distributed data variable analysis and hierarchical grouping system | |
CN109858740B (zh) | 企业风险的评估方法、装置、计算机设备及存储介质 | |
CN111797928A (zh) | 生成机器学习样本的组合特征的方法及系统 | |
CN114298323A (zh) | 生成机器学习样本的组合特征的方法及系统 | |
CN113761185B (zh) | 主键提取方法、设备及存储介质 | |
CN113689285B (zh) | 一种检测用户特征的方法、装置、设备及存储介质 | |
CN116737373A (zh) | 负载均衡方法、装置、计算机设备、存储介质 | |
CN114816711A (zh) | 批量任务处理方法、装置、计算机设备和存储介质 | |
CN112148483A (zh) | 一种容器迁移方法及相关装置 | |
CN117435130A (zh) | 金融数据存储方法、装置、计算机设备和存储介质 | |
CN115619261A (zh) | 一种作业标签画像数据处理方法、装置、计算机设备 | |
CN110264306B (zh) | 基于大数据的产品推荐方法、装置、服务器及介质 | |
CN111598390A (zh) | 服务器高可用性评估方法、装置、设备和可读存储介质 | |
CN111061711A (zh) | 一种基于数据处理行为的大数据流卸载方法和装置 | |
US20220398433A1 (en) | Efficient Cross-Platform Serving of Deep Neural Networks for Low Latency Applications | |
CN117992241B (zh) | 基于大数据的科技型中小企业银企对接服务系统及方法 | |
CN117459576A (zh) | 基于边缘计算的数据推送方法、装置和计算机设备 | |
CN116681164A (zh) | 资源信息处理方法、装置、计算机设备和存储介质 | |
Shukla | Decentralized Collaborative Filtering for Distributed Hash Tables | |
CN117376410A (zh) | 业务推送方法、装置、计算机设备和存储介质 | |
CN115496158A (zh) | 对象价值预测方法、装置、计算机设备和存储介质 | |
CN117221250A (zh) | 资源利用率的确定方法、装置和计算机设备 | |
CN118138638A (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 |