CN116909735A - 算力调度方法及装置、服务器和存储介质 - Google Patents

算力调度方法及装置、服务器和存储介质 Download PDF

Info

Publication number
CN116909735A
CN116909735A CN202310861136.0A CN202310861136A CN116909735A CN 116909735 A CN116909735 A CN 116909735A CN 202310861136 A CN202310861136 A CN 202310861136A CN 116909735 A CN116909735 A CN 116909735A
Authority
CN
China
Prior art keywords
target
weight
node
computing
load
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
Application number
CN202310861136.0A
Other languages
English (en)
Inventor
温伟能
孙剑骏
张攀翔
杨杰
王喆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Group Guangdong Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Guangdong Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Group Guangdong Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202310861136.0A priority Critical patent/CN116909735A/zh
Publication of CN116909735A publication Critical patent/CN116909735A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开涉及计算机技术领域,尤其涉及一种算力调度方法及装置、服务器和存储介质。其中,该算力调度方法,包括:在当前调度周期内,确定目标算力节点对应的目标负载权值,其中,目标负载权值由历史调度数据和目标算力节点对应的当前平均响应时间确定;若目标负载权值满足信息统计条件,则控制目标算力节点获取算力节点集合中除目标算力节点之外的算力节点的负载权值,得到负载权值集合;确定目标负载权值与负载权值集合中任一负载权值之间的权值差异,若权值差异满足节点过载条件,则确定目标算力节点对应的迁移决策,并根据迁移决策对目标应用程序在目标算力节点上的连接指向进行调整。采用本公开可以均衡算力节点之间的负载分配。

Description

算力调度方法及装置、服务器和存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种算力调度方法及装置、服务器和存储介质。
背景技术
随着业务的发展,单台应用服务器承载不了系统的流量的时候,就需要部署多台服务器,将流量分散在不同的服务器上,这样可以提高系统的可用性。考虑到服务请求的不同类型、服务器的不同处理能力以及随机选择造成的负载分配不均匀等问题,为了更加合理的把负载分配给内部的多个服务器,就需要应用相应的能够正确反映各个服务器处理能力及网络状态的负载均衡算法。然而,现有的负载均衡算法在投入应用生产过程中都存在一定的适用场景和缺陷,无法均衡算力节点之间的负载分配。
发明内容
本公开提供一种算力调度方法及装置、服务器和存储介质,以至少解决相关技术中无法均衡算力节点之间的负载分配的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种算力调度方法,包括:
在当前调度周期内,确定目标算力节点对应的目标负载权值,其中,所述目标算力节点为算力节点集合中任一算力节点,所述目标负载权值由历史调度数据和目标算力节点对应的当前平均响应时间确定;
若所述目标负载权值满足信息统计条件,则控制所述目标算力节点获取所述算力节点集合中除所述目标算力节点之外的算力节点的负载权值,得到负载权值集合;
确定所述目标负载权值与所述负载权值集合中任一负载权值之间的权值差异,若所述权值差异满足节点过载条件,则确定所述目标算力节点对应的迁移决策,并根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整,其中,所述目标应用程序为所述目标算力节点对应的应用程序集合中满足迁移要求的应用程序。
可选的,所述确定目标算力节点对应的目标负载权值,包括:
获取历史调度数据以及目标算力节点对应的当前平均响应时间,其中,所述历史调度数据包括历史平均响应时间和历史负载权值;
根据所述当前平均响应时间、所述历史平均响应时间以及所述历史负载权值,确定目标算力节点对应的目标负载权值。
可选的,所述获取目标算力节点对应的当前平均响应时间,包括:
获取目标算力节点对应的业务链接集合,其中,所述业务链接集合包括所述目标算力节点对应的应用程序集合中任一应用程序的业务链接数;
根据所述业务链接集合确定所述目标算力节点对应的平均请求响应时间集合,其中,所述平均请求响应时间集合包括所述目标算力节点对应的应用程序集合中任一应用程序的平均请求响应时间;
确定所述应用程序集合对应的活跃应用程序数量,并根据所述平均请求响应时间集合和所述活跃应用程序数量确定所述目标算力节点对应的当前平均响应时间。
可选的,所述根据所述业务链接集合确定所述目标算力节点对应的平均请求响应时间集合,包括:
获取任一应用程序对应的请求事件集合中任一请求事件的响应时间,得到响应时间集合;
根据所述响应时间集合和所述业务链接数,确定所述任一应用程序的平均请求响应时间,得到所述目标算力节点对应的平均请求响应时间集合。
可选的,所述获取任一应用程序对应的请求事件集合中任一请求事件的响应时间,包括:
获取任一应用程序对应的请求事件集合中任一请求事件的到达时间戳和回复时间戳;
根据所述到达时间戳和所述回复时间戳,确定所述任一请求事件的响应时间。
可选的,在所述根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整之前,还包括:
根据所述业务链接数和所述平均请求响应时间,确定所述任一应用程序的负载值,得到所述目标算力节点对应的负载值集合;
确定所述负载值集合中的最大负载值,并确定所述最大负载值对应的应用程序为目标应用程序。
可选的,所述确定所述目标算力节点对应的迁移决策,包括:
获取权值差异集合和权值乘积集合,其中,所述权值差异集合包括所述算力节点集合中任两个算力节点之间的负载权值差异,所述权值乘积集合包括所述算力节点集合中任两个算力节点之间的负载权值乘积;
根据所述权值差异集合和所述权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合;
确定所述目标算力节点在所述负权值节点有序集合中的位置,并确定所述正权值算力节点有序集合中所述位置对应的目标迁移算力节点,得到所述目标算力节点对应的迁移决策,其中,所述迁移决策指示将目标应用程序在所述目标算力节点上的连接指向调整至所述目标迁移算力节点。
可选的,所述根据所述权值差异集合和所述权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合,包括:
若所述任两个算力节点之间的负载权值差异满足所述节点过载条件,且所述任两个算力节点之间的负载权值乘积小于零,则确定所述任两个算力节点中负载权值小于零的算力节点为负数权值算力节点,确定所述任两个算力节点中负载权值大于零的算力节点为正数权值算力节点,得到负数权值算力节点集合和正数权值算力节点集合;
将所述负数权值算力节点集合中的至少一个负数权值算力节点按照负载权值由小到大的顺序进行排序,得到负权值节点有序集合;
将所述正数权值算力节点集合中的至少一个正数权值算力节点按照负载权值由大到大的顺序进行排序,得到正权值算力节点有序集合。
可选的,在所述根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整之后,还包括:
对所述目标负载权值进行初始化处理,并清空所述负权值节点有序集合和所述正权值算力节点有序集合。
可选的,在所述若所述目标负载权值满足信息统计条件,则控制所述目标算力节点获取所述算力节点集合中除所述目标算力节点之外的算力节点的负载权值,得到负载权值集合之前,还包括:
若所述目标负载权值低于负载权值阈值,则确定所述目标负载权值满足信息统计条件。
可选的,在所述若所述权值差异满足节点过载条件,则确定所述目标算力节点对应的迁移决策之前,还包括:
若所述权值差异高于权值差异阈值,则确定所述权值差异满足节点过载条件。
根据本公开实施例的第二方面,提供一种算力调度方法装置,包括:
权值确定单元,用于在当前调度周期内,确定目标算力节点对应的目标负载权值,其中,所述目标算力节点为算力节点集合中任一算力节点,所述目标负载权值由历史调度数据和目标算力节点对应的当前平均响应时间确定;
信息统计单元,用于若所述目标负载权值满足信息统计条件,则控制所述目标算力节点获取所述算力节点集合中除所述目标算力节点之外的算力节点的负载权值,得到负载权值集合;
决策确定单元,用于确定所述目标负载权值与所述负载权值集合中任一负载权值之间的权值差异,若所述权值差异满足节点过载条件,则确定所述目标算力节点对应的迁移决策,并根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整,其中,所述目标应用程序为所述目标算力节点对应的应用程序集合中满足迁移要求的应用程序。
可选的,所述权值确定单元用于确定目标算力节点对应的目标负载权值时,具体用于:
获取历史调度数据以及目标算力节点对应的当前平均响应时间,其中,所述历史调度数据包括历史平均响应时间和历史负载权值;
根据所述当前平均响应时间、所述历史平均响应时间以及所述历史负载权值,确定目标算力节点对应的目标负载权值。
可选的,所述权值确定单元用于获取目标算力节点对应的当前平均响应时间时,具体用于:
获取目标算力节点对应的业务链接集合,其中,所述业务链接集合包括所述目标算力节点对应的应用程序集合中任一应用程序的业务链接数;
根据所述业务链接集合确定所述目标算力节点对应的平均请求响应时间集合,其中,所述平均请求响应时间集合包括所述目标算力节点对应的应用程序集合中任一应用程序的平均请求响应时间;
确定所述应用程序集合对应的活跃应用程序数量,并根据所述平均请求响应时间集合和所述活跃应用程序数量确定所述目标算力节点对应的当前平均响应时间。
可选的,所述权值确定单元用于根据所述业务链接集合确定所述目标算力节点对应的平均请求响应时间集合时,具体用于:
获取任一应用程序对应的请求事件集合中任一请求事件的响应时间,得到响应时间集合;
根据所述响应时间集合和所述业务链接数,确定所述任一应用程序的平均请求响应时间,得到所述目标算力节点对应的平均请求响应时间集合。
可选的,所述权值确定单元用于获取任一应用程序对应的请求事件集合中任一请求事件的响应时间时,具体用于:
获取任一应用程序对应的请求事件集合中任一请求事件的到达时间戳和回复时间戳;
根据所述到达时间戳和所述回复时间戳,确定所述任一请求事件的响应时间。
可选的,所述决策确定单元用于在所述根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整之前,还用于:
根据所述业务链接数和所述平均请求响应时间,确定所述任一应用程序的负载值,得到所述目标算力节点对应的负载值集合;
确定所述负载值集合中的最大负载值,并确定所述最大负载值对应的应用程序为目标应用程序。
可选的,所述决策确定单元用于确定所述目标算力节点对应的迁移决策时,具体用于:
获取权值差异集合和权值乘积集合,其中,所述权值差异集合包括所述算力节点集合中任两个算力节点之间的负载权值差异,所述权值乘积集合包括所述算力节点集合中任两个算力节点之间的负载权值乘积;
根据所述权值差异集合和所述权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合;
确定所述目标算力节点在所述负权值节点有序集合中的位置,并确定所述正权值算力节点有序集合中所述位置对应的目标迁移算力节点,得到所述目标算力节点对应的迁移决策,其中,所述迁移决策指示将目标应用程序在所述目标算力节点上的连接指向调整至所述目标迁移算力节点。
可选的,所述决策确定单元用于根据所述权值差异集合和所述权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合时,具体用于:
若所述任两个算力节点之间的负载权值差异满足所述节点过载条件,且所述任两个算力节点之间的负载权值乘积小于零,则确定所述任两个算力节点中负载权值小于零的算力节点为负数权值算力节点,确定所述任两个算力节点中负载权值大于零的算力节点为正数权值算力节点,得到负数权值算力节点集合和正数权值算力节点集合;
将所述负数权值算力节点集合中的至少一个负数权值算力节点按照负载权值由小到大的顺序进行排序,得到负权值节点有序集合;
将所述正数权值算力节点集合中的至少一个正数权值算力节点按照负载权值由大到大的顺序进行排序,得到正权值算力节点有序集合。
可选的,所述装置还包括信息初始单元,用于在所述根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整之后,具体用于:
对所述目标负载权值进行初始化处理,并清空所述负权值节点有序集合和所述正权值算力节点有序集合。
可选的,所述装置还包括条件判定单元,用于在所述若所述目标负载权值满足信息统计条件,则控制所述目标算力节点获取所述算力节点集合中除所述目标算力节点之外的算力节点的负载权值,得到负载权值集合之前,具体用于:
若所述目标负载权值低于负载权值阈值,则确定所述目标负载权值满足信息统计条件。
可选的,所述装置还包括条件判定单元,用于在所述若所述权值差异满足节点过载条件,则确定所述目标算力节点对应的迁移决策之前,具体用于:
若所述权值差异高于权值差异阈值,则确定所述权值差异满足节点过载条件。
根据本公开实施例的第三方面,提供一种服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现前述一方面中任一项所述的算力调度方法。
根据本申请的第四方面,提供了一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行前述一方面中任一项所述的算力调度方法。
根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述一方面中任一项所述的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
1)通过根据目标算力节点对应的目标负载权值来判断负载情况,当检测判断出目标负载权值小于满足信息统计条件时,才进行对其他算力节点的负载权值的统计和处理,相对于现有负载均衡算法而言,可以无需周期性的统计所有算力节点的负载情况,减少了算力节点之间的频繁的通信开销;
2)通过根据目标算力节点自身的目标负载权值进行判定负载情况,进而收集其他算力节点的负载信息并进行迁移决策的制定,因此,可以通过判断算力节点的最短响应时间来决定负载均衡方案,相对于现有负载均衡算法而言,可以有效的提高算力节点对业务请求的响应速度,提高业务处理效率,可以有效解决现有负载均衡算法无法找到业务处理效率最高的算力节点的问题;
3)通过充分考虑算力节点对业务请求消息的平均响应时间这一因素,可以清晰有效的反映出算力节点响应速度的变化情况、自身负荷的变动情况和算力节点之间的相对负载情况,并为服务器应用程序和算力节点负载值的计算带来了便利,减少了中央处理器利用率、内存利用率和网络带宽等的复杂变动数值的统计;
4)通过为算力节点引入一个负载权值,并通过算力节点的历史调度数据对其不断进行更新,以对负载权值进行精细变动,可以更加准确的描述算力节点对于消息请求的响应速度,也可以更好地比对不同算力节点之间的权值差异。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1示出本公开实施例提供的一种算力调度方法的流程示意图;
图2示出本公开实施例提供的另一种算力调度方法的流程示意图;
图3示出本公开实施例提供的又一种算力调度方法的流程示意图;
图4示出本公开实施例提供的一种算力调度装置的结构示意图;
图5是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
由服务器集群组成的计算网络需要算力调度器来对各服务器之间的算力进行调度。负载均衡(Load Ba1ance)器作为算力调度器的一种,建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡服务能够平衡服务器群中的所有的服务器和应用之间的通信负载,根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理和最佳的服务器群性能。
相关技术中,常用的负载均衡算法主要有:
一、轮循均衡(RoundRobin):每一次来自网络的请求轮流分配给内部中的服务器,从1至N然后重新开始。此种均衡算法默认配置,实现简单,依次遍历所有上游服务器,适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况;其更适合测试场景,确保请求以相等的数量(或适当的加权比例)分布在所有服务器上,不会导致测试结果出现偏差;另外,没有配置请求的权重变化,请求权重变化会引起服务器负载的不均衡,导致业务响应问题。
二、权重轮循均衡(Weighted Round Robin):根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。例如:服务器A的权值被设计成1,B的权值是3,C的权值是6,则服务器A、B、C将分别接受到10%、30%、60%的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。
三、随机均衡(Random):把来自网络的请求随机分配给内部中的多个服务器。
四、权重随机均衡(Weighted Random):此种均衡算法类似于权重轮循均衡算法,不过其在处理请求分担时是一个随机选择的过程。
五、最少连接数均衡(Least Connection):客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同,并没有达到真正的负载均衡。最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,适合生产场景,能够更有可能将请求发送到强大的服务器。
六、哈希散列算法:散列法也叫哈希法(HASH),通过单射不可逆的哈希函数,按照某种规则将网络请求发往集群节点,将具有相同源地址的数据包发给同一服务器。以后对相同的请求,相同的服务器组,计算出来的哈希结果相同,从而达到哈希分布的效果。其可以给定类型的客户端请求(在哈希值中捕获)和特定服务器之间创建固定关联,并维持会话保持,具体而言,对于每个请求,负载均衡器都会根据指定的文本和服务器(NGINX)变量的组合计算一个哈希值,并将该哈希值与其中一个服务器相关联,它将带有该哈希的所有请求发送到该服务器,从而建立一种基本的会话持久性。适用于更看重会话保持的场景,在负载均衡器重新启动后,因为计算结果相同,会话保持持续存在。然而,这样操作容易造成后端服务负载的不均衡。
七、网际协议(Internet Protocol,IP)哈希:其仅适用于超文本传输协议(Hypertext Transfer Protocol,HTTP),是哈希散列算法的预定义变体,其中哈希基于客户端的IP地址。可以用ip_hash指令设置它。其对于ipv6而言是基于整个地址,对于ipv4而言是基于前三个8位字节,对于来自同一/24位网络上的客户端则没有意义;另外,其也能够维持会话保持,适用于更看重会话保持的场景,在负载均衡器重新启动后,因为计算结果相同,会话保持持续存在。并且,也容易造成后端服务负载的不均衡。
综上,现有的负载均衡算法均无法通过判断算力节点对应用请求的响应速度,将应用请求分发到对请求响应时间最短的服务器上进行处理,在投入应用生产过程中都有存在一定的适用场景和缺陷,无法均衡算力节点之间的负载分配。因此需要提供一种更适合生产场景的负载均衡算法,以使应用请求可以以最快的速度,花费最短的时间得到算力节点的响应,从而提高客户对应用服务的满意度。
下面结合具体的实施例对本公开进行详细说明。
在第一个实施例中,如图1所示,图1示出本公开实施例提供的一种算力调度方法的流程示意图,该方法可依赖于计算机程序实现,可运行于进行算力调度方法的装置上。该方法由服务器执行。
具体的,该算力调度方法包括:
S101,在当前调度周期内,确定目标算力节点对应的目标负载权值;
需要说明的是,由多台服务器组成的服务器集群中,每一台服务器对应一个算力节点。也就是说,服务器集群对应一个算力节点集合。
在一些实施例中,目标服务器为服务器集群中任一服务器。目标算力节点为该目标服务器对应的算力节点。
根据一些实施例,负载权值是一个用于表征算力节点响应速度变化的一个算力节点负载指标值。该负载权值可以通过前后调度周期中算力节点的平均响应时间的变动进行不断迭代更新。若负载权值递减,则算力节点的响应速度递减,故算力节点负载递增。当负载权值小于负载权值阈值时,算力节点可能会出现过载。
在一些实施例中,目标负载权值指的是当前调度周期内目标算力节点对应的负载权值。该目标负载权值由历史调度数据和目标算力节点对应的当前平均响应时间确定。
在一些实施例中,历史调度数据指的是目标服务器在当前调度周期之前执行算力调度方法时的调度数据。
在一些实施例中,当前平均响应时间指的是在当前调度周期内目标算力节点的平均响应时间。
在一些实施例中,负载权值阈值并不特指某一固定阈值。该负载权值阈值例如可以为零。
易于理解的是,当目标服务器执行算力调度方法时,在当前调度周期内,目标服务器可以根据历史调度数据确定目标算力节点对应的目标负载权值。
S102,若目标负载权值满足信息统计条件,则控制目标算力节点获取算力节点集合中除目标算力节点之外的算力节点的负载权值,得到负载权值集合;
根据一些实施例,信息统计条件指的是目标服务器判定是否需要目标算力节点对其他算力节点的负载权值进行统计和处理时采用的条件。该信息统计条件例如可以为目标负载权值小于负载权值阈值。
在一些实施例中,负载权值集合指的是由算力节点集合中除目标算力节点之外的所有算力节点的负载权值汇聚而成的一个集合。
易于理解的是,当目标服务器获取到目标算力节点对应的目标负载权值时,若该目标负载权值满足信息统计条件,则目标服务器可以控制目标算力节点获取算力节点集合中除目标算力节点之外的算力节点的负载权值,得到负载权值集合。
S103,确定目标负载权值与负载权值集合中任一负载权值之间的权值差异,若权值差异满足节点过载条件,则确定目标算力节点对应的迁移决策,并根据迁移决策对目标应用程序在目标算力节点上的连接指向进行调整。
根据一些实施例,权值差异指的是目标负载权值与负载权值集合中任一负载权值之间的差值。
在一些实施例中,节点过载条件指的是目标服务器判断目标算力节点是否过载时采用的条件。
根据一些实施例,迁移决策指的是对目标算力节点中的负载进行迁移时采用的策略。目标算力节点中的负载包括目标算力节点对应的应用程序集合中任一应用程序的负载。
在一些实施例中,应用程序集合指的是目标算力节点所管理的应用程序汇聚而成的一个集合。
在一些实施例中,目标应用程序指的是应用程序集合中满足迁移要求的应用程序。迁移要求指的是服务器判断是否需要对应用程序的负载进行迁移时采用的策略。
在一些实施例中,连接指向用于指示管理应用程序的算力节点。
易于理解的是,当目标服务器获取到负载权值集合时,目标服务器可以确定目标负载权值与负载权值集合中任一负载权值之间的权值差异,若权值差异满足节点过载条件,则服务器可以确定目标算力节点对应的迁移决策,并根据迁移决策对目标应用程序在目标算力节点上的连接指向进行调整。
综上,本公开实施例提供的方法,通过根据目标算力节点对应的目标负载权值来判断负载情况,当检测判断出目标负载权值小于满足信息统计条件时,才进行对其他算力节点的负载权值的统计和处理,相对于现有负载均衡算法而言,可以无需周期性的统计所有算力节点的负载情况,减少了算力节点之间的频繁的通信开销。同时,通过根据目标算力节点自身的目标负载权值进行判定负载情况,进而收集其他算力节点的负载信息并进行迁移决策的制定,因此,可以通过判断算力节点的最短响应时间来决定负载均衡方案,相对于现有负载均衡算法而言,可以有效的提高算力节点对业务请求的响应速度,提高业务处理效率,可以有效解决现有负载均衡算法无法找到业务处理效率最高的算力节点的问题。其次,通过充分考虑算力节点对业务请求消息的平均响应时间这一因素,可以清晰有效的反映出算力节点响应速度的变化情况、自身负荷的变动情况和算力节点之间的相对负载情况,并为服务器应用程序和算力节点负载值的计算带来了便利,减少了中央处理器利用率、内存利用率和网络带宽等的复杂变动数值的统计。最后,通过为算力节点引入一个负载权值,并通过算力节点的历史调度数据对其不断进行更新,以对负载权值进行精细变动,可以更加准确的描述算力节点对于消息请求的响应速度,也可以更好地比对不同算力节点之间的权值差异。
请参见图2,图2示出本公开实施例提供的一种算力调度方法的流程示意图。该方法由服务器执行。
具体的,该算力调度方法包括:
S201,在当前调度周期内,获取历史调度数据以及目标算力节点对应的当前平均响应时间;
根据一些实施例,获取目标算力节点对应的当前平均响应时间时,首先,可以获取目标算力节点对应的业务链接集合。接着,可以根据业务链接集合确定目标算力节点对应的平均请求响应时间集合。最后,可以确定应用程序集合对应的活跃应用程序数量,并根据平均请求响应时间集合和活跃应用程序数量确定目标算力节点对应的当前平均响应时间。因此,可以提高当前平均响应时间获取的准确性以及获取的效率。
在一些实施例中,业务链接集合包括目标算力节点对应的应用程序集合中任一应用程序的业务链接数。业务链接数指的是在当前调度周期内,任一应用程序的请求消息总数。
需要说明的是,负载均衡器作为算力调度器的一种,建立在服务器集群之上。伴随着算力节点的正常运行,服务器集群中每个服务器对应的算力节点中的响应时间计算模块可以周期性的统计并计算得到其所管理的应用程序的业务链接数,并上传至负载均衡器。从而,负载均衡器可以得到业务链接矩阵其中,/>指的是第i个算力节点ci所管理的第k个应用程序sk的业务链接数。
在一些实施例中,平均请求响应时间集合包括目标算力节点对应的应用程序集合中任一应用程序的平均请求响应时间。
需要说明的是,服务器集群中每个服务器均可以计算得到其对应的算力节点所管理的应用程序的平均请求响应时间,并上传至负载均衡器。从而,负载均衡器可以得到请求响应时间矩阵其中,/>指的是第i个算力节点ci所管理的第k个应用程序sk的平均请求响应时间。
根据一些实施例,根据业务链接集合确定目标算力节点对应的平均请求响应时间集合时,首先,可以获取任一应用程序对应的请求事件集合中任一请求事件的响应时间tresponse,得到响应时间集合。接着,可以根据响应时间集合和业务链接数,确定任一应用程序的平均请求响应时间,得到目标算力节点对应的平均请求响应时间集合。因此,可以提高平均请求响应时间集合获取的效率和准确性。
在一些实施例中,获取任一应用程序对应的请求事件集合中任一请求事件的响应时间tresponse时,首先,可以获取任一应用程序对应的请求事件集合中任一请求事件的到达时间戳和回复时间戳。接着,可以根据到达时间戳和回复时间戳,确定任一请求事件的响应时间。因此,可以提高响应时间获取的准确性。
例如,在当前调度周期内,对于第k个应用程序sk而言,当管理它的第i个算力节点ci收到了针对应用程序sk发来的一个请求消息(即请求事件)时,响应时间计算模块可以记录该请求消息的到达时间戳tarrive、以及算力节点ci给予请求消息发送回复消息的回复时间戳treply。接着,可以得到算力节点ci针对该请求消息的响应时间tresponse=treply-tarrive。最后,可以根据下式计算出算力节点ci对于应用程序sk在当前调度周期内的平均请求响应时间
接着,通过算力节点ci所管理的应用程序集合对应的活跃应用程序数量可以根据下式计算得到算力节点ci的当前平均响应时间/>
需要说明的是,负载均衡器可以统计每一个算力节点的当前平均响应时间,得到算力请求响应时间向量
根据一些实施例,历史调度数据包括历史平均响应时间和历史负载权值/>
在一些实施例中,若当前调度周期为第一个调度周期,则历史平均响应时间和历史负载权值/>均为零。若当前调度周期不为第一个调度周期,则历史平均响应时间/>为上一个调度周期中的当前平均响应时间,历史负载权值/>为上一个调度周期中的目标负载权值。
以一个场景举例,在一个只有服务器A和服务器B构成的服务器集群中,伴随着服务器A对应的算力节点ServerA和服务器B对应的ServerB的正常运行,服务器A可以控制ServerA中的响应时间计算模块周期性地统计并计算得到ServerA对每一个请求消息的响应时间,并分别统计一个调度周期内ServerA所管理的应用程序集合{P1,P2,P3,P4,P5}中每一个应用程序各自的请求总数;之后,服务器A可以控制ServerA中的响应时间计算模块得到ServerA所管理的应用程序集合中每一个应用程序在一个调度周期内的平均请求响应时间,并由此得到其在一个调度周期内针对于所受到的所有请求消息的当前平均响应时间。
同时,服务器B可以控制ServerB中的响应时间计算模块周期性地统计并计算得到ServerB对每一个请求消息的响应时间,并分别统计一个调度周期内ServerB所管理的应用程序集合{P6,P7,P8}中每一个应用程序各自的请求消息总数;之后,服务器B可以控制ServerB中的响应时间计算模块得到ServerB所管理的应用程序集合中每一个应用程序在一个调度周期内的平均请求响应时间,并由此得到其在一个调度周期内针对于所受到的所有请求消息的当前平均响应时间。
在一些实施例中,通过测试工具,可以模拟向应用程序发送请求消息(Packet_in)。例如,在第一个调度周期T1内,可以在应用程序P1,P2,P3,P4,P5上分别在ServerA中以每秒2000个Packet_in请求数据包,同时,可以在应用程序P6,P7,P8上分别在ServerB中以每秒2000个Packet_in请求数据包。此时,服务器A和服务器B都分别和计算其所管理的应用程序集合中每个应用程序的请求消息总数以及每个请求消息的到达时间戳tarrive,并控制响应时间计算模块记录下其给予每一条Packer_in发送回复消息的回复时间戳treply。从而,服务器A可以得到ServerA针对每一条请求消息的响应时间以及ServerA对应的当前平均响应时间,服务器B可以得到ServerB针对每一条请求消息的响应时间以及ServerB对应的当前平均响应时间。
S202,根据当前平均响应时间、历史平均响应时间以及历史负载权值,确定目标算力节点对应的目标负载权值;
根据一些实施例,具体可以通过下式确定目标算力节点对应的目标负载权值
其中,若当前调度周期为第一个调度周期T1,则
易于理解的是,该目标负载权值实际上是一个指数加权移动平均值,调度周期越往前的历史平均响应时间对当前平均响应时间的影响越小。
以一个场景举例,通过周期性的不断统计和计算,服务器A可以得到ServerA在第二个调度周期T2、第三个调度周期T3、第四个调度周期T4等调度周期的调度数据,以便于不断迭代更新ServerA对应的负载权值。服务器B可以得到ServerB在第二个调度周期T2、第三个调度周期T3、第四个调度周期T4等调度周期的调度数据,以便于不断迭代更新ServerB对应的负载权值。
S203,若目标负载权值低于负载权值阈值,则确定目标负载权值满足信息统计条件;若目标负载权值满足信息统计条件,则控制目标算力节点获取算力节点集合中除目标算力节点之外的算力节点的负载权值,得到负载权值集合;
根据一些实施例,负载权值阈值并不特指某一固定阈值。该负载权值阈值例如可以为零。
以一个场景举例,在第三个调度周期T3内,用测试工具给予应用程序P5每秒5000个请求数据包,其他应用程序的请求速率不变。此时,服务器A可以控制ServerA中的负载及响应权值计算模块计算得到ServerA的负载权值为-0.119194,服务器B可以控制ServerB中的负载及响应权值计算模块计算得到ServerB的负载权值为0.90991。由于ServerA的负载权值小于零,因此,服务器A可以控制ServerA收集ServerB的负载权值。
S204,确定目标负载权值与负载权值集合中任一负载权值之间的权值差异,若权值差异高于权值差异阈值,则确定权值差异满足节点过载条件;
根据一些实施例,权值差异阈值σ并不特指某一固定差异阈值。该权值差异阈值σ可以根据实际应用场景进行调整。例如,该权值差异阈值可以为0.9。
例如,服务器A可以确定ServerA和ServerB之间的权值差异为1.02910。此时,由于1.02910小于0.9,因此,服务器A可以判定ServerA过载并需要启动ServerA中的负载均衡模块。
S205,若权值差异满足节点过载条件,则获取权值差异集合和权值乘积集合;
根据一些实施例,权值差异集合包括算力节点集合中任两个算力节点之间的负载权值差异。
在一些实施例中,算力节点集合中第i个算力节点ci和第j个算力节点cj之间的负载权值差异可以根据下式确定:
其中,i和j均为正整数,且j≠i。
需要说明的是,由算力节点集合中任两个算力节点之间的负载权值差异构成的权值差异集合例如可以为N维的权值差异矩阵DN*N,N为大于1的正整数,具体公式如下所示:
例如,当服务器集群中仅包含服务器A和服务器B时,服务器A可以将权值差异矩阵DN*N简化为单个数据1.02910。
根据一些实施例,权值乘积集合包括算力节点集合中任两个算力节点之间的负载权值乘积。
在一些实施例中,算力节点集合中第i个算力节点ci和第j个算力节点cj之间的负载权值乘积为
S206,根据权值差异集合和权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合;
根据一些实施例,根据权值差异集合和权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合时,若任两个算力节点之间的负载权值差异满足节点过载条件,且任两个算力节点之间的负载权值乘积小于零,则确定任两个算力节点中负载权值小于零的算力节点为负数权值算力节点,确定任两个算力节点中负载权值大于零的算力节点为正数权值算力节点,得到负数权值算力节点集合和正数权值算力节点集合;将负数权值算力节点集合中的至少一个负数权值算力节点按照负载权值由小到大的顺序进行排序,得到负权值节点有序集合;将正数权值算力节点集合中的至少一个正数权值算力节点按照负载权值由大到大的顺序进行排序,得到正权值算力节点有序集合。因此,可以提高负权值节点有序集合和正权值算力节点有序集合生成的准确性。
具体而言,就是找出权值差异矩阵DN*N中所有满足且同时满足的算力节点配对,并将该算力节点配对中的负数权值算力节点加入负数权值算力节点集合中并按照负载权值从小到大进行排序,得到负权值节点有序集合/>同时,将该算力节点配对中的正数权值算力节点加入正数权值算力节点集合中并按照负载权值从大到小进行排序,得到正权值节点有序集合/>
其中,或/>为算力节点ci的节点名称或节点标识。
以一个场景举例,当服务器A判定ServerA过载并需要启动ServerA中的负载均衡模块时,服务器A可以将ServerA加入负权值节点有序集合中,将ServerB加入正权值节点有序集合/>中。
S207,确定目标算力节点在负权值节点有序集合中的位置,并确定正权值算力节点有序集合中位置对应的目标迁移算力节点,得到目标算力节点对应的迁移决策;
根据一些实施例,迁移决策指示将目标应用程序在目标算力节点上的连接指向调整至目标迁移算力节点;
例如,若目标算力节点在负权值节点有序集合中的排序位置为n,即目标算力节点为负载权值第n小的算力节点,则可以确定目标迁移算力节点为正权值节点有序集合/>中的第n个算力节点。
需要说明的是,当负权值节点有序集合中仅包括一个算力节点ServerA,正权值节点有序集合/>中仅包括一个算力节点ServerB时,ServerA和ServerB的位置均为1。此时,服务器A可以确定ServerA对应的迁移决策为将目标应用程序在ServerA上的连接指向调整至ServerB。
S208,根据业务链接数和平均请求响应时间,确定任一应用程序的负载值,得到目标算力节点对应的负载值集合;
根据一些实施例,在当前调度周期内,可以根据下式确定算力节点ci所管理的第k个应用程序sk的负载值
需要说明的是,服务器可以计算得到每一个算力节点所管理的应用程序的负载值,得到负载矩阵
同时,服务器还可以计算得到任一算力节点的负载总值,得到算力负载向量其中,/>为算力节点ci的负载总值,可以根据下式确定:
S209,确定负载值集合中的最大负载值,并确定最大负载值对应的应用程序为目标应用程序;
例如,服务器A可以确定最大负载值对应的应用程序P5为目标应用程序。
S210,根据迁移决策对目标应用程序在目标算力节点上的连接指向进行调整;
根据一些实施例,可以根据迁移决策将目标应用程序在目标算力节点上的连接指向调整至目标迁移算力节点。具体而言,将目标应用程序上的所有负载从目标算力节点迁移至正权值节点有序集合中的目标迁移算力节点上。
例如,服务器A可以将应用程序P5上的所有负载从Server A迁移到Server B上。
S211,对目标负载权值进行初始化处理,并清空负权值节点有序集合和正权值算力节点有序集合。
根据一些实施例,连接指向调整后,对于发生迁移的算力节点,需要通过新调度周期的负载权值来进行初始化操作。
例如,服务器A在第三个调度周期发生了迁移,则下一个调度周期将作为服务器A的第一个调度周期,服务器A仅根据这个调度周期中Server A对应的当前平均响应时间确定Server A对应的负载权值即可。同时,服务器A还需要清空存储在Server A中的负权值节点有序集合和正权值算力节点有序集合/>
综上,本公开实施例提供的方法,在当前调度周期内,首先,通过获取历史调度数据以及目标算力节点对应的当前平均响应时间;根据当前平均响应时间、历史平均响应时间以及历史负载权值,确定目标算力节点对应的目标负载权值;因此,通过为算力节点引入一个负载权值,并通过算力节点的历史平均响应时间以及历史负载权值对其不断进行更新,以对负载权值进行精细变动,可以更加准确的描述算力节点对于消息请求的响应速度,也可以更好地比对不同算力节点之间的权值差异;同时,通过充分考虑算力节点对业务请求消息的平均响应时间这一因素,可以清晰有效的反映出算力节点响应速度的变化情况、自身负荷的变动情况和算力节点之间的相对负载情况,并为服务器应用程序和算力节点负载值的计算带来了便利,减少了中央处理器利用率、内存利用率和网络带宽等的复杂变动数值的统计。
接着,若目标负载权值低于负载权值阈值,则确定目标负载权值满足信息统计条件;若目标负载权值满足信息统计条件,则控制目标算力节点获取算力节点集合中除目标算力节点之外的算力节点的负载权值,得到负载权值集合;因此,通过根据目标算力节点对应的目标负载权值来判断负载情况,当检测判断出目标负载权值小于满足信息统计条件时,才进行对其他算力节点的负载权值的统计和处理,相对于现有负载均衡算法而言,可以无需周期性的统计所有算力节点的负载情况,减少了算力节点之间的频繁的通信开销。
其次,通过确定目标负载权值与负载权值集合中任一负载权值之间的权值差异,若权值差异高于权值差异阈值,则确定权值差异满足节点过载条件;若权值差异满足节点过载条件,则获取权值差异集合和权值乘积集合;根据权值差异集合和权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合;确定目标算力节点在负权值节点有序集合中的位置,并确定正权值算力节点有序集合中位置对应的目标迁移算力节点,得到目标算力节点对应的迁移决策;因此,通过根据目标算力节点自身的目标负载权值进行判定负载情况,进而收集其他算力节点的负载信息并进行迁移决策的制定,可以通过判断算力节点的最短响应时间来决定负载均衡方案,相对于现有负载均衡算法而言,可以有效的提高算力节点对业务请求的响应速度,提高业务处理效率,可以有效解决现有负载均衡算法无法找到业务处理效率最高的算力节点的问题。
接着,通过根据业务链接数和平均请求响应时间,确定任一应用程序的负载值,得到目标算力节点对应的负载值集合;确定负载值集合中的最大负载值,并确定最大负载值对应的应用程序为目标应用程序;根据迁移决策对目标应用程序在目标算力节点上的连接指向进行调整;因此,可以将过载的算力节点的负载迁移到空闲负载的算力节点上,从而实现算力节点之间的负载均衡。
最后,通过对目标负载权值进行初始化处理,并清空负权值节点有序集合和正权值算力节点有序集合;因此,可以提高算力调度方法使用时的便利性。
以一个场景举例,图3示出本公开实施例提供的一种算力调度方法的流程示意图。该方法由负载均衡器执行。
具体的,该算力调度方法包括:
1.输入本周期(调度周期)各算力节点的各应用程序的业务链接数
2.1.输入本周期各算力节点的各应用程序的各业务请求(请求事件)的响应时间tresponse
2.2.计算本周期各算力节点的各应用程序的业务请求响应时间(平均请求响应时间)和各算力节点的业务请求响应时间(当前平均响应时间)/>
3.计算本周期各算力节点的各应用程序的负载值和各算力节点的负载值/>
4.确定各算力节点的负载权值;其中,如果存在新的算力节点ci或算力节点ci中存在新的应用程序sk,则该算力节点的负载权值进行初始化处理;反之,则更新算力节点的负载权值
5.计算各算力节点的负载差异矩阵(权值差异矩阵)DN*N
6.生成负权值算力节点有序集合和正权值算力节点集合/>
7.根据负权值算力节点有序集合和正权值算力节点集合/>以及负载值/>调整应用程序在算力节点上的连接指向;之后进入新调度周期并循环步骤1至7。
综上,本公开实施例提供的方法,可以从多个算力节点中选择一个对业务请求处理时间最短的算力节点来处理新的业务请求,即将业务请求发送到由结合了最快响应时间和最少活动连接的公式选择的服务器,从而可以弥补其他负载均衡算法的性能瓶颈和集群整体稳定性等问题。同时,通过业务请求在算力节点之间进行迁移的方式,可以将过载的算力节点的负载迁移到空闲负载的算力节点上,从而实现算力节点之间的负载均衡。另外,通过考虑平均响应时间以及服务器最近的性能历史记录,当算力节点具有非常不同的平均响应时间时,本公开实施例提供的方法特别适用,例如,如果在不同的数据中心拥有用于灾难恢复的服务器,本公开实施例提供的方法往往会向本地服务器发送更多请求,因为它们的响应速度更快;另一个用例是云环境,随着应用迁移上云成为发展趋势,云内的服务器性能通常非常不可预测,因此能够找到响应速度最快的服务器来响应客户端的业务请求。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
请参见图4,其示出了本公开一个示例性实施例提供的一种算力调度装置的结构示意图。该算力调度装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该算力调度装置400包括权值确定单元401、信息统计单元402和决策确定单元403,其中:
权值确定单元401,用于在当前调度周期内,确定目标算力节点对应的目标负载权值,其中,目标算力节点为算力节点集合中任一算力节点,目标负载权值由历史调度数据和目标算力节点对应的当前平均响应时间确定;
信息统计单元402,用于若目标负载权值满足信息统计条件,则控制目标算力节点获取算力节点集合中除目标算力节点之外的算力节点的负载权值,得到负载权值集合;
决策确定单元403,用于确定目标负载权值与负载权值集合中任一负载权值之间的权值差异,若权值差异满足节点过载条件,则确定目标算力节点对应的迁移决策,并根据迁移决策对目标应用程序在目标算力节点上的连接指向进行调整,其中,目标应用程序为目标算力节点对应的应用程序集合中满足迁移要求的应用程序。
根据一些实施例,权值确定单元401用于确定目标算力节点对应的目标负载权值时,具体用于:
获取历史调度数据以及目标算力节点对应的当前平均响应时间,其中,历史调度数据包括历史平均响应时间和历史负载权值;
根据当前平均响应时间、历史平均响应时间以及历史负载权值,确定目标算力节点对应的目标负载权值。
根据一些实施例,权值确定单元401用于获取目标算力节点对应的当前平均响应时间时,具体用于:
获取目标算力节点对应的业务链接集合,其中,业务链接集合包括目标算力节点对应的应用程序集合中任一应用程序的业务链接数;
根据业务链接集合确定目标算力节点对应的平均请求响应时间集合,其中,平均请求响应时间集合包括目标算力节点对应的应用程序集合中任一应用程序的平均请求响应时间;
确定应用程序集合对应的活跃应用程序数量,并根据平均请求响应时间集合和活跃应用程序数量确定目标算力节点对应的当前平均响应时间。
根据一些实施例,权值确定单元401用于根据业务链接集合确定目标算力节点对应的平均请求响应时间集合时,具体用于:
获取任一应用程序对应的请求事件集合中任一请求事件的响应时间,得到响应时间集合;
根据响应时间集合和业务链接数,确定任一应用程序的平均请求响应时间,得到目标算力节点对应的平均请求响应时间集合。
根据一些实施例,权值确定单元401用于获取任一应用程序对应的请求事件集合中任一请求事件的响应时间时,具体用于:
获取任一应用程序对应的请求事件集合中任一请求事件的到达时间戳和回复时间戳;
根据到达时间戳和回复时间戳,确定任一请求事件的响应时间。
根据一些实施例,决策确定单元403用于在根据迁移决策对目标应用程序在目标算力节点上的连接指向进行调整之前,还用于:
根据业务链接数和平均请求响应时间,确定任一应用程序的负载值,得到目标算力节点对应的负载值集合;
确定负载值集合中的最大负载值,并确定最大负载值对应的应用程序为目标应用程序。
根据一些实施例,决策确定单元403用于确定目标算力节点对应的迁移决策时,具体用于:
获取权值差异集合和权值乘积集合,其中,权值差异集合包括算力节点集合中任两个算力节点之间的负载权值差异,权值乘积集合包括算力节点集合中任两个算力节点之间的负载权值乘积;
根据权值差异集合和权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合;
确定目标算力节点在负权值节点有序集合中的位置,并确定正权值算力节点有序集合中位置对应的目标迁移算力节点,得到目标算力节点对应的迁移决策,其中,迁移决策指示将目标应用程序在目标算力节点上的连接指向调整至目标迁移算力节点。
根据一些实施例,决策确定单元403用于根据权值差异集合和权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合时,具体用于:
若任两个算力节点之间的负载权值差异满足节点过载条件,且任两个算力节点之间的负载权值乘积小于零,则确定任两个算力节点中负载权值小于零的算力节点为负数权值算力节点,确定任两个算力节点中负载权值大于零的算力节点为正数权值算力节点,得到负数权值算力节点集合和正数权值算力节点集合;
将负数权值算力节点集合中的至少一个负数权值算力节点按照负载权值由小到大的顺序进行排序,得到负权值节点有序集合;
将正数权值算力节点集合中的至少一个正数权值算力节点按照负载权值由大到大的顺序进行排序,得到正权值算力节点有序集合。
根据一些实施例,算力调度装置400还包括信息初始单元404,用于在根据迁移决策对目标应用程序在目标算力节点上的连接指向进行调整之后,具体用于:
对目标负载权值进行初始化处理,并清空负权值节点有序集合和正权值算力节点有序集合。
根据一些实施例,算力调度装置400还包括条件判定单元405,用于在若目标负载权值满足信息统计条件,则控制目标算力节点获取算力节点集合中除目标算力节点之外的算力节点的负载权值,得到负载权值集合之前,具体用于:
若目标负载权值低于负载权值阈值,则确定目标负载权值满足信息统计条件。
根据一些实施例,算力调度装置400还包括条件判定单元405,用于在若权值差异满足节点过载条件,则确定目标算力节点对应的迁移决策之前,具体用于:
若权值差异高于权值差异阈值,则确定权值差异满足节点过载条件。
需要说明的是:如图4所示,该算力调度装置400中一定包括的模块用实线框示意,如权值确定单元401、信息统计单元402和决策确定单元403;该算力调度装置400中可以包括也可以不包括的模块用虚线框示意,如信息初始单元404和条件判定单元405。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上,本公开实施例提供的装置,通过根据目标算力节点对应的目标负载权值来判断负载情况,当检测判断出目标负载权值小于满足信息统计条件时,才进行对其他算力节点的负载权值的统计和处理,相对于现有负载均衡算法而言,可以无需周期性的统计所有算力节点的负载情况,减少了算力节点之间的频繁的通信开销。同时,通过根据目标算力节点自身的目标负载权值进行判定负载情况,进而收集其他算力节点的负载信息并进行迁移决策的制定,因此,可以通过判断算力节点的最短响应时间来决定负载均衡方案,相对于现有负载均衡算法而言,可以有效的提高算力节点对业务请求的响应速度,提高业务处理效率,可以有效解决现有负载均衡算法无法找到业务处理效率最高的算力节点的问题。其次,通过充分考虑算力节点对业务请求消息的平均响应时间这一因素,可以清晰有效的反映出算力节点响应速度的变化情况、自身负荷的变动情况和算力节点之间的相对负载情况,并为服务器应用程序和算力节点负载值的计算带来了便利,减少了中央处理器利用率、内存利用率和网络带宽等的复杂变动数值的统计。最后,通过为算力节点引入一个负载权值,并通过算力节点的历史调度数据对其不断进行更新,以对负载权值进行精细变动,可以更加准确的描述算力节点对于消息请求的响应速度,也可以更好地比对不同算力节点之间的权值差异。
根据本公开的实施例,本公开还提供了一种服务器、一种可读存储介质和一种计算机程序产品。
图5示出本申请实施例公开的一种服务器500的结构示意图,该服务器500可实现前述根据本申请实施例的控制任务对象的方法。
如图5所示,该服务器500包括处理器501和存储器502,其中,服务器500还可以包括总线503,处理器501和存储器502可以通过总线503相互连接,总线503可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。存储器502用于存储包含指令的一个或多个程序;处理器501用于扫描存储在存储器502中的指令511执行上述基于微前端的应用开发方法的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (14)

1.一种算力调度方法,其特征在于,包括:
在当前调度周期内,确定目标算力节点对应的目标负载权值,其中,所述目标算力节点为算力节点集合中任一算力节点,所述目标负载权值由历史调度数据和目标算力节点对应的当前平均响应时间确定;
若所述目标负载权值满足信息统计条件,则控制所述目标算力节点获取所述算力节点集合中除所述目标算力节点之外的算力节点的负载权值,得到负载权值集合;
确定所述目标负载权值与所述负载权值集合中任一负载权值之间的权值差异,若所述权值差异满足节点过载条件,则确定所述目标算力节点对应的迁移决策,并根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整,其中,所述目标应用程序为所述目标算力节点对应的应用程序集合中满足迁移要求的应用程序。
2.根据权利要求1所述的方法,其特征在于,所述确定目标算力节点对应的目标负载权值,包括:
获取历史调度数据以及目标算力节点对应的当前平均响应时间,其中,所述历史调度数据包括历史平均响应时间和历史负载权值;
根据所述当前平均响应时间、所述历史平均响应时间以及所述历史负载权值,确定目标算力节点对应的目标负载权值。
3.根据权利要求2所述的方法,其特征在于,所述获取目标算力节点对应的当前平均响应时间,包括:
获取目标算力节点对应的业务链接集合,其中,所述业务链接集合包括所述目标算力节点对应的应用程序集合中任一应用程序的业务链接数;
根据所述业务链接集合确定所述目标算力节点对应的平均请求响应时间集合,其中,所述平均请求响应时间集合包括所述目标算力节点对应的应用程序集合中任一应用程序的平均请求响应时间;
确定所述应用程序集合对应的活跃应用程序数量,并根据所述平均请求响应时间集合和所述活跃应用程序数量确定所述目标算力节点对应的当前平均响应时间。
4.根据权利要求3所述的方法,其特征在于,所述根据所述业务链接集合确定所述目标算力节点对应的平均请求响应时间集合,包括:
获取任一应用程序对应的请求事件集合中任一请求事件的响应时间,得到响应时间集合;
根据所述响应时间集合和所述业务链接数,确定所述任一应用程序的平均请求响应时间,得到所述目标算力节点对应的平均请求响应时间集合。
5.根据权利要求4所述的方法,其特征在于,所述获取任一应用程序对应的请求事件集合中任一请求事件的响应时间,包括:
获取任一应用程序对应的请求事件集合中任一请求事件的到达时间戳和回复时间戳;
根据所述到达时间戳和所述回复时间戳,确定所述任一请求事件的响应时间。
6.根据权利要求3所述的方法,其特征在于,在所述根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整之前,还包括:
根据所述业务链接数和所述平均请求响应时间,确定所述任一应用程序的负载值,得到所述目标算力节点对应的负载值集合;
确定所述负载值集合中的最大负载值,并确定所述最大负载值对应的应用程序为目标应用程序。
7.根据权利要求1所述的方法,其特征在于,所述确定所述目标算力节点对应的迁移决策,包括:
获取权值差异集合和权值乘积集合,其中,所述权值差异集合包括所述算力节点集合中任两个算力节点之间的负载权值差异,所述权值乘积集合包括所述算力节点集合中任两个算力节点之间的负载权值乘积;
根据所述权值差异集合和所述权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合;
确定所述目标算力节点在所述负权值节点有序集合中的位置,并确定所述正权值算力节点有序集合中所述位置对应的目标迁移算力节点,得到所述目标算力节点对应的迁移决策,其中,所述迁移决策指示将目标应用程序在所述目标算力节点上的连接指向调整至所述目标迁移算力节点。
8.根据权利要求7所述的方法,其特征在于,所述根据所述权值差异集合和所述权值乘积集合确定负权值节点有序集合和正权值算力节点有序集合,包括:
若所述任两个算力节点之间的负载权值差异满足所述节点过载条件,且所述任两个算力节点之间的负载权值乘积小于零,则确定所述任两个算力节点中负载权值小于零的算力节点为负数权值算力节点,确定所述任两个算力节点中负载权值大于零的算力节点为正数权值算力节点,得到负数权值算力节点集合和正数权值算力节点集合;
将所述负数权值算力节点集合中的至少一个负数权值算力节点按照负载权值由小到大的顺序进行排序,得到负权值节点有序集合;
将所述正数权值算力节点集合中的至少一个正数权值算力节点按照负载权值由大到大的顺序进行排序,得到正权值算力节点有序集合。
9.根据权利要求7所述的方法,其特征在于,在所述根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整之后,还包括:
对所述目标负载权值进行初始化处理,并清空所述负权值节点有序集合和所述正权值算力节点有序集合。
10.根据权利要求1所述的方法,其特征在于,在所述若所述目标负载权值满足信息统计条件,则控制所述目标算力节点获取所述算力节点集合中除所述目标算力节点之外的算力节点的负载权值,得到负载权值集合之前,还包括:
若所述目标负载权值低于负载权值阈值,则确定所述目标负载权值满足信息统计条件。
11.根据权利要求1所述的方法,其特征在于,在所述若所述权值差异满足节点过载条件,则确定所述目标算力节点对应的迁移决策之前,还包括:
若所述权值差异高于权值差异阈值,则确定所述权值差异满足节点过载条件。
12.一种算力调度装置,其特征在于,包括:
权值确定单元,用于确定目标算力节点对应的目标负载权值,其中,所述目标算力节点为算力节点集合中任一算力节点,所述目标负载权值由历史调度数据和目标算力节点对应的当前平均响应时间确定;
信息统计单元,用于若所述目标负载权值满足信息统计条件,则控制所述目标算力节点获取所述算力节点集合中除所述目标算力节点之外的算力节点的负载权值,得到负载权值集合;
决策确定单元,用于确定所述目标负载权值与所述负载权值集合中任一负载权值之间的权值差异,若所述权值差异满足节点过载条件,则确定所述目标算力节点对应的迁移决策,并根据所述迁移决策对目标应用程序在所述目标算力节点上的连接指向进行调整,其中,所述目标应用程序为所述目标算力节点对应的应用程序集合中满足迁移要求的应用程序。
13.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至11中任一项所述的算力调度方法。
14.一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如权利要求1至11中任一项所述的算力调度方法。
CN202310861136.0A 2023-07-13 2023-07-13 算力调度方法及装置、服务器和存储介质 Pending CN116909735A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310861136.0A CN116909735A (zh) 2023-07-13 2023-07-13 算力调度方法及装置、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310861136.0A CN116909735A (zh) 2023-07-13 2023-07-13 算力调度方法及装置、服务器和存储介质

Publications (1)

Publication Number Publication Date
CN116909735A true CN116909735A (zh) 2023-10-20

Family

ID=88352463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310861136.0A Pending CN116909735A (zh) 2023-07-13 2023-07-13 算力调度方法及装置、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN116909735A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155791A (zh) * 2023-10-31 2023-12-01 浪潮电子信息产业股份有限公司 基于集群拓扑结构的模型部署方法、系统、设备及介质
CN117434990A (zh) * 2023-12-20 2024-01-23 成都易联易通科技有限责任公司 粮仓的环境控制方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155791A (zh) * 2023-10-31 2023-12-01 浪潮电子信息产业股份有限公司 基于集群拓扑结构的模型部署方法、系统、设备及介质
CN117155791B (zh) * 2023-10-31 2024-02-13 浪潮电子信息产业股份有限公司 基于集群拓扑结构的模型部署方法、系统、设备及介质
CN117434990A (zh) * 2023-12-20 2024-01-23 成都易联易通科技有限责任公司 粮仓的环境控制方法和系统
CN117434990B (zh) * 2023-12-20 2024-03-19 成都易联易通科技有限责任公司 粮仓的环境控制方法和系统

Similar Documents

Publication Publication Date Title
CN116909735A (zh) 算力调度方法及装置、服务器和存储介质
Das et al. Transparent and flexible network management for big data processing in the cloud
US20190319881A1 (en) Traffic management based on past traffic arrival patterns
US8250198B2 (en) Capacity planning for data center services
Balasangameshwara et al. Performance-driven load balancing with a primary-backup approach for computational grids with low communication cost and replication cost
US20130268678A1 (en) Method and Apparatus for Facilitating Fulfillment of Requests on a Communication Network
US7184945B1 (en) Service distribution device
CN109218355A (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US20140143300A1 (en) Method and Apparatus for Controlling Utilization in a Horizontally Scaled Software Application
JP2004199678A (ja) タスク・スケジューリングの方法、システム、およびプログラム製品
KR20170029263A (ko) 부하 분산 장치 및 방법
CN109831524A (zh) 一种负载均衡处理方法及装置
Kim et al. An energy-aware service function chaining and reconfiguration algorithm in NFV
Abreu et al. A rank scheduling mechanism for fog environments
Begam et al. Load balancing in DCN servers through SDN machine learning algorithm
Kapgate Efficient service broker algorithm for data center selection in cloud computing
JP4265377B2 (ja) 負荷分散方法及び装置とシステム並びにプログラム
CN107645520A (zh) 一种负载均衡方法、装置以及系统
Fröhlich et al. Smart SDN management of fog services
CN110233866A (zh) 一种负载均衡方法及负载均衡器
US20170220383A1 (en) Workload control in a workload scheduling system
Singh et al. WSQ: web server queueing algorithm for dynamic load balancing
Mostafa Cooperative fog communications using a multi-level load balancing
US9178826B2 (en) Method and apparatus for scheduling communication traffic in ATCA-based equipment
Yi et al. A multi-criteria decision approach for minimizing the influence of VNF migration

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