CN116541178B - 一种Docker云平台动态负载均衡方法及装置 - Google Patents
一种Docker云平台动态负载均衡方法及装置 Download PDFInfo
- Publication number
- CN116541178B CN116541178B CN202310821239.4A CN202310821239A CN116541178B CN 116541178 B CN116541178 B CN 116541178B CN 202310821239 A CN202310821239 A CN 202310821239A CN 116541178 B CN116541178 B CN 116541178B
- Authority
- CN
- China
- Prior art keywords
- load
- container
- nodes
- task
- preset
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims abstract description 46
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 23
- 238000005457 optimization Methods 0.000 claims description 14
- 230000009471 action Effects 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 4
- 230000008602 contraction Effects 0.000 description 3
- 230000010485 coping Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- G06F9/505—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 considering the load
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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
本发明提供一种Docker云平台动态负载均衡方法及装置,所述方法包括:获取多个节点和容器的负载数据;判断所述负载数据是否满足预设负载条件;若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减;根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略;根据所述负载均衡策略对容器资源进行调度。该方法及装置能够解决现有技术中实现负载均衡时考虑指标单一且多采用可扩展性差的启发式算法计算,导致难以应对真实网络环境的问题。
Description
技术领域
本发明涉及计算机云计算技术领域,尤其涉及一种Docker云平台动态负载均衡方法及装置。
背景技术
随着大数据、人工智能等技术的迅猛发展和广泛应用,作为底层支撑的云计算平台的核心—虚拟化技术,其地位更是不言而喻。Docker容器技术与传统的基于操作***的虚拟化技术相比,具有自身轻量灵活、资源利用率高、启动速度快、易于迁移等优势,已成为云计算领域的核心代表技术。目前越来越多的企业将Docker集群作为主要的任务执行环境,通常会在Docker集群中的各个节点上部署很多不同的应用容器来执行不同的任务,导致Docker云平台极易出现负载不均衡。
Docker云平台负载不均衡的出现不仅导致***的可用性、资源利用率以及稳定性大幅度降低,也造成了能源和空间的浪费。现有的负载均衡方法多采用启发式算法,该算法求解速度较快,但易陷入局部最优解,并且所建立的模型只针对特定问题,可扩展性有限,且随着网络状态的变化其参数也很可能需要进行重新调整并再次执行复杂计算,此外,现有的Docker云平台的负载均衡策略考虑单一,仅单独考虑了节点间的负载均衡或容器的弹性伸缩,没有很好的将二者有机的结合起来,也忽略了对用户QoS(Quality of Service,服务质量)的考量,这些问题使得实现负载均衡时考虑指标单一且多采用可扩展性差的启发式算法计算,导致难以应对真实网络环境。
发明内容
本发明所要解决的技术问题是针对现有技术的上述不足,提供一种Docker云平台动态负载均衡方法及装置,以至少解决现有技术中实现负载均衡时考虑指标单一且多采用可扩展性差的启发式算法计算,导致难以应对真实网络环境的问题。
第一方面,本发明提供一种Docker云平台动态负载均衡方法,包括:
获取多个节点和容器的负载数据;
针对每个所述容器的负载数据:
根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件;
若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件;
当所有所述容器的负载数据满足所述预设负载条件时,根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;
若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略,所述负载决策模型为基于异步优势动作评价A3C算法网络构建的模型,所述负载决策模型的优化目标由用户服务质量QoS的任务平均指令响应时间比和所述节点间的负载不均衡程度共同决定;
根据所述负载均衡策略对容器资源进行调度。
进一步地,所述根据所述负载数据,判断所述负载数据是否满足预设负载条件,具体包括:
若所述负载数据大于预设的过载阈值或小于预设的欠载阈值,则判断所述负载数据不满足所述预设负载条件;
若所述负载数据不大于预设的过载阈值且不小于预设的欠载阈值,则判断所述负载数据满足所述预设负载条件。
进一步地,若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,具体包括:
如果所述负载数据大于预设的过载阈值,则对所述容器进行扩展;
如果所述负载数据小于预设的欠载阈值,则对所述容器进行缩减。
进一步地,所述根据所有所述节点的负载数据,得到节点间的负载不均衡程度,具体包括:
针对T个时刻中每个时刻的所有节点,分别执行以下步骤:
获取所述所有节点的中央处理器CPU平均利用率;
根据所述CPU平均利用率,计算所述所有节点的CPU利用率标准差;
计算T个时刻的所述所有节点的CPU利用率标准差的平均值,并将所述所有节点的CPU利用率标准差的平均值作为所述各节点间的负载不均衡程度。
进一步地,所述所有节点的CPU平均利用率的计算公式为:
其中,为t时刻所有节点的CPU平均利用率,M为容器的数量,N为节点的数量,T为时刻的数量,/>为容器m在t时刻的CPU利用率,/>为t时刻容器m与节点n的位置关系;
所述所有节点的CPU利用率标准差的计算公式为:
其中,为t时刻所有节点的CPU利用率标准差;
所述T个时刻的所述所有节点的CPU利用率标准差的平均值的计算公式为:
其中,为T个时刻的所有节点的CPU利用率标准差的平均值。
进一步地,所述将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略之前,所述方法还包括:
针对所有容器内的每个任务,分别执行以下步骤:
获取所述任务传输到对应容器的传输时间;
根据所述传输时间,计算所述任务到达所述对应容器后的等待时间;
获取所述任务在所述对应容器的执行时间;
根据所述每个任务的传输时间、等待时间和执行时间,计算所述所有容器内的所有任务的平均指令响应时间比。
进一步地,所述任务传输到对应容器的传输时间的计算公式为:
其中,为任务i到容器m的数据传输时间,/>为任务i的数据传输量,为到容器m的网络传输速度;
所述任务到达所述对应容器后的等待时间的计算公式为:
其中,为任务i到达容器m后的等待时间,k=1,…,C,C为容器m未执行完的任务数量,/>为任务k在容器m中的执行时间;
所述任务在所述对应容器的执行时间的计算公式为:
其中,为任务i在容器m中的执行时间,/>为任务i的指令长度,/>为容器m的CPU利用率,/>为容器m的指令执行速度;
所述所有容器内的所有任务的平均指令响应时间比的计算公式为:
其中,为M个容器内的总共I个任务的平均指令响应时间比,I为任务的数量,M为容器的数量。
进一步地,所述负载决策模型的优化目标的计算公式为:
其中,为任务平均指令响应时间比的权重,/>为CPU利用率标准差的平均值的权重。
第二方面,本发明提供一种Docker云平台动态负载均衡装置,包括:
获取模块,用于获取多个节点和容器的负载数据;
第一判断模块,与所述获取模块连接,用于根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件;
扩展缩减模块,与所述第一判断模块连接,用于若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件;
第二判断模块,与所述扩展缩减模块连接,用于当所有所述容器的负载数据满足所述预设负载条件时,根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;
输入模型模块,与所述第二判断模块连接,用于若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略;
调度模块,与所述输入模型模块连接,用于根据所述负载均衡策略对容器资源进行调度。
第三方面,本发明提供一种Docker云平台动态负载均衡装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述第一方面所述的Docker云平台动态负载均衡方法。
本发明提供的Docker云平台动态负载均衡方法及装置,首先获取多个节点和容器的负载数据;然后针对每个所述容器的负载数据:根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件;若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件;当所有所述容器的负载数据满足所述预设负载条件时,再根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略,所述负载决策模型为基于异步优势动作评价A3C算法网络构建的模型,所述负载决策模型的优化目标由用户服务质量QoS的任务平均指令响应时间比和所述节点间的负载不均衡程度共同决定;最后根据所述负载均衡策略对容器资源进行调度。本发明由于设置了三个阈值,并利用由节点间的负载不均衡程度以及用户QoS共同构成优化目标的深度强化学习算法进行合理资源调度,能够及时根据工作***负载的变化做出高效的资源调度,从而有效应对真实网络环境下的负载不均衡情况,解决了现有技术中实现负载均衡时考虑指标单一且多采用可扩展性差的启发式算法计算,导致难以应对真实网络环境的问题。
附图说明
图1为本发明实施例1的一种Docker云平台动态负载均衡方法的流程图;
图2为本发明实施例的动态负载均衡的架构的结构示意图;
图3为本发明实施例的Actor网络模型的结构示意图;
图4为本发明实施例的Critic网络模型的结构示意图;
图5为本发明实施例2的一种Docker云平台动态负载均衡装置的结构示意图;
图6为本发明实施例3的一种Docker云平台动态负载均衡装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面将结合附图对本发明实施方式作进一步地详细描述。
可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。
可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。
可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。
可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。
可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可按照不同于附图中所标注的顺序发生。
可以理解的是,本发明的流程图和框图中,示出了按照本发明各实施例的***、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的***实现,也可用硬件与计算机指令的组合来实现。
可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。
实施例1:
本实施例提供一种Docker云平台动态负载均衡方法,如图1所示,该方法包括:
步骤S101:获取多个节点和容器的负载数据。
需要说明的是,如图2所示,本实施例提供的一种Docker云平台动态负载均衡方法应用于本实施例提供的动态负载均衡的架构,整个结构由Docker集群与逻辑层两部分共同构成。
具体地,逻辑层是整个动态负载策略实现的核心部分,包括容器资源采集模块、容器数据存储模块、容器资源调度模块。容器资源采集模块主要负责统计和传输物理主机和Docker容器各种资源的使用情况(也即多个节点和容器的负载数据),其中包括CPU(Central Processing Unit,中央处理器)、内存、网络、IO(Input/Output,输入/输出)等。容器数据存储模块负责将获取到的数据存放到数据库中,并将数据整理为指定格式发送至容器资源调度模块。容器资源调度模块则是整个逻辑层的核心,主要负责容器的伸缩以及节点间负载均衡的实现。
需要说明的是,针对目前常用的启发式算法即随着网络状态的变化其参数需要进行重新调整并再次执行复杂计算,且存在易陷入局部最优解的缺点,容器资源调度模块集成深度强化学习算法,并可以直接获得容器资源调度的最佳策略,而无需再次进行复杂计算,最终实现对容器资源的优化分配。
具体地,通过容器资源采集模块获取主机以及多个节点和容器的负载数据,其中,主机的负载数据主要是用于判断是否可以创建容器。
步骤S102:针对每个所述容器的负载数据:
根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件。
具体地,若所述负载数据大于预设的过载阈值或小于预设的欠载阈值,则判断所述负载数据不满足所述预设负载条件,若所述负载数据不大于预设的过载阈值且不小于预设的欠载阈值,则判断所述负载数据满足所述预设负载条件。
步骤S103:若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件。
具体地,如果所述负载数据大于预设的过载阈值,则对所述容器进行扩展,如果所述负载数据小于预设的欠载阈值,则对所述容器进行缩减。
步骤S104:当所有所述容器的负载数据满足所述预设负载条件时,根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值。
具体地,当所有的容器负载数据均不大于预设的过载阈值且不小于预设的欠载阈值时,根据所有节点的负载数据,计算得到Docker容器集群的负载不均衡程度(也即节点间的负载不均衡程度),再判断Docker容器集群的负载不均衡程度是否超过预设的负载均衡阈值。
在一种可选的实施例中,所述根据所有所述节点的负载数据,得到节点间的负载不均衡程度,具体包括:
针对T个时刻中每个时刻的所有节点,分别执行以下步骤:
获取所述所有节点的中央处理器CPU平均利用率;
根据所述CPU平均利用率,计算所述所有节点的CPU利用率标准差;
计算T个时刻的所述所有节点的CPU利用率标准差的平均值,并将所述所有节点的CPU利用率标准差的平均值作为所述各节点间的负载不均衡程度。
具体地,所述所有节点的CPU平均利用率的计算公式为:
其中,为t时刻所有节点的CPU平均利用率,M为容器的数量,N为节点的数量,T为时刻的数量,/>为容器m在t时刻的CPU利用率,/>为t时刻容器m与节点n的位置关系,当容器m位于节点n时其值为1,反之为0;
所述所有节点的CPU利用率标准差的计算公式为:
其中,为t时刻所有节点的CPU利用率标准差;
所述T个时刻的所述所有节点的CPU利用率标准差的平均值的计算公式为:
其中,为T个时刻的所有节点的CPU利用率标准差的平均值。
步骤S105:若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略,所述负载决策模型为基于异步优势动作评价A3C算法网络构建的模型,所述负载决策模型的优化目标由用户服务质量QoS的任务平均指令响应时间比和所述节点间的负载不均衡程度共同决定。
具体地,如果Docker容器集群的负载不均衡程度超过预设的负载均衡阈值,则将多个节点和容器的负载数据对应的网络状态输入已训练好的负载决策模型,由负载决策模型输出负载均衡的最佳策略(也即负载均衡策略)。
需要说明的是,A3C(Asynchronous Advantage Actor-Critic,异步优势动作评价)算法主要负责学习出具有负载聚能决策知识的决策模型(也即上述负载决策模型)。该模型综合考虑了节点间的负载不均衡程度和用户QoS,已知容器个数为M,节点个数为N,负载决策模型的状态空间(也即上述的网络状态)可以为一个M×N的二维矩阵A表示,当容器m位于节点n时,则Amn=1,否则Amn=0,负载决策模型的动作空间(也即上述的负载均衡的最佳策略)代表将容器分配到虚拟机上,则动作actionmn代表容器m迁移至节点n:
负载决策模型的奖励函数的取值与容器集群状态有关,当执行某动作后,当前容器集群状态变好,则给予正向奖励,否则就给予负向奖励:
其中,为奖励函数,/>和/>为不同的奖励值,且/>>/>>0,为容器迁移后的网络状态。
具体地,A3C算法实际是将Actor-Critic放在多个线程中进行同步训练,其中,Actor网络模型设计如图3所示,该Actor网络模型具体包括:依次连接的输入层、第一卷积层(Conv,Convolutional Layer)、第二卷积层、Flatten(压平)层、全连接层(FC,FullyConnected Layer),Actor网络模型的输入是状态空间的二维矩阵,输出是当前状态下动作空间中每个动作对应的概率。Critic网络模型设计如图4所示,该Critic网络模型具体包括:依次连接的输入层、第一卷积层、第二卷积层、Flatten层、全连接层,在Critic网络模型中,输入仍是二维矩阵,而输出的是对执行指定动作的价值评估,因此Critic网络结构与Actor网络结构大致相同,不同的是它输出仅有一个神经元。
在一种可选的实施例中,所述将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略之前,所述方法还包括:
针对所有容器内的每个任务,分别执行以下步骤:
获取所述任务传输到对应容器的传输时间;
根据所述传输时间,计算所述任务到达所述对应容器后的等待时间;
获取所述任务在所述对应容器的执行时间;
根据所述每个任务的传输时间、等待时间和执行时间,计算所述所有容器内的所有任务的平均指令响应时间比。
具体地,所述任务传输到对应容器的传输时间的计算公式为:
其中,为任务i到容器m的数据传输时间,/>为任务i的数据传输量,为到容器m的网络传输速度;
所述任务到达所述对应容器后的等待时间的计算公式为:
其中,为任务i到达容器m后的等待时间,k=1,…,C,C为容器m未执行完的任务数量,/>为任务k在容器m中的执行时间;
所述任务在所述对应容器的执行时间的计算公式为:
其中,为任务i在容器m中的执行时间,/>为任务i的指令长度,/>为容器m的CPU利用率,/>为容器m的指令执行速度;
所述所有容器内的所有任务的平均指令响应时间比的计算公式为:
其中,为M个容器内的总共I个任务的平均指令响应时间比,I为任务的数量,M为容器的数量。
在一种可选的实施例中,所述负载决策模型的优化目标的计算公式为:
其中,为任务平均指令响应时间比的权重,/>为CPU利用率标准差的平均值的权重。
步骤S106:根据所述负载均衡策略对容器资源进行调度。
具体地,根据负载均衡策略,选择待调度的容器和目标节点,将待调度的容器迁移调度至目标节点。
本发明实施例提供的Docker云平台动态负载均衡方法,首先获取多个节点和容器的负载数据;然后针对每个所述容器的负载数据:根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件;若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件;当所有所述容器的负载数据满足所述预设负载条件时,再根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略,所述负载决策模型为基于异步优势动作评价A3C算法网络构建的模型,所述负载决策模型的优化目标由用户服务质量QoS的任务平均指令响应时间比和所述节点间的负载不均衡程度共同决定;最后根据所述负载均衡策略对容器资源进行调度。本发明由于设置了三个阈值,并利用由节点间的负载不均衡程度以及用户QoS共同构成优化目标的深度强化学习算法进行合理资源调度,能够及时根据工作***负载的变化做出高效的资源调度,从而有效应对真实网络环境下的负载不均衡情况,解决了现有技术中实现负载均衡时考虑指标单一且多采用可扩展性差的启发式算法计算,导致难以应对真实网络环境的问题。
实施例2:
如图5所示,本实施例提供一种Docker云平台动态负载均衡装置,用于执行上述的Docker云平台动态负载均衡方法,包括:
获取模块11,用于获取多个节点和容器的负载数据;
第一判断模块12,与所述获取模块11连接,用于根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件;
扩展缩减模块13,与所述第一判断模块12连接,用于若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件;
第二判断模块14,与所述扩展缩减模块13连接,用于当所有所述容器的负载数据满足所述预设负载条件时,根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;
输入模型模块15,与所述第二判断模块14连接,用于若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略;
调度模块16,与所述输入模型模块15连接,用于根据所述负载均衡策略对容器资源进行调度。
进一步地,所述第一判断模块12具体包括:
第一判断单元,用于若所述负载数据大于预设的过载阈值或小于预设的欠载阈值,则判断所述负载数据不满足所述预设负载条件;
第二判断单元,用于若所述负载数据不大于预设的过载阈值且不小于预设的欠载阈值,则判断所述负载数据满足所述预设负载条件。
进一步地,所述扩展缩减模块13具体包括:
扩展单元,用于如果所述负载数据大于预设的过载阈值,则对所述容器进行扩展;
缩减单元,用于如果所述负载数据小于预设的欠载阈值,则对所述容器进行缩减。
进一步地,所述第二判断模块14具体包括:
获取单元,用于获取所述所有节点的中央处理器CPU平均利用率;
第一计算单元,用于根据所述CPU平均利用率,计算所述所有节点的CPU利用率标准差;
第二计算单元,用于计算T个时刻的所述所有节点的CPU利用率标准差的平均值,并将所述所有节点的CPU利用率标准差的平均值作为所述各节点间的负载不均衡程度。
进一步地,所述所有节点的CPU平均利用率的计算公式为:
其中,为t时刻所有节点的CPU平均利用率,M为容器的数量,N为节点的数量,T为时刻的数量,/>为容器m在t时刻的CPU利用率,/>为t时刻容器m与节点n的位置关系;
所述所有节点的CPU利用率标准差的计算公式为:
其中,为t时刻所有节点的CPU利用率标准差;
所述T个时刻的所述所有节点的CPU利用率标准差的平均值的计算公式为:
其中,为T个时刻的所有节点的CPU利用率标准差的平均值。
进一步地,所述装置还包括:
传输时间获取模块,与所述输入模型模块15连接,用于获取所述任务传输到对应容器的传输时间;
等待时间计算模块,与所述传输时间获取模块连接,用于根据所述传输时间,计算所述任务到达所述对应容器后的等待时间;
执行时间获取模块,与所述等待时间计算模块连接,用于获取所述任务在所述对应容器的执行时间;
第三计算单元,与所述执行时间获取模块连接,用于根据所述传输时间、所述等待时间和所述执行时间,计算所述所有容器内的所有任务的平均指令响应时间比。
进一步地,所述任务传输到对应容器的传输时间的计算公式为:
其中,为任务i到容器m的数据传输时间,/>为任务i的数据传输量,为到容器m的网络传输速度;
所述任务到达所述对应容器后的等待时间的计算公式为:
其中,为任务i到达容器m后的等待时间,k=1,…,C,C为容器m未执行完的任务数量,/>为任务k在容器m中的执行时间;
所述任务在所述对应容器的执行时间的计算公式为:
其中,为任务i在容器m中的执行时间,/>为任务i的指令长度,/>为容器m的CPU利用率,/>为容器m的指令执行速度;
所述所有容器内的所有任务的平均指令响应时间比的计算公式为:
其中,为M个容器内的总共I个任务的平均指令响应时间比,I为任务的数量,M为容器的数量。
进一步地,所述负载决策模型的优化目标的计算公式为:
其中,为任务平均指令响应时间比的权重,/>为CPU利用率标准差的平均值的权重。
实施例3:
参考图6,本实施例提供一种Docker云平台动态负载均衡装置,包括存储器21和处理器22,存储器21中存储有计算机程序,处理器22被设置为运行所述计算机程序以执行实施例1中的Docker云平台动态负载均衡方法。
其中,存储器21与处理器22连接,存储器21可采用闪存或只读存储器或其他存储器,处理器22可采用中央处理器或单片机。
实施例2至实施例3提供的Docker云平台动态负载均衡方法及装置,首先获取多个节点和容器的负载数据;然后针对每个所述容器的负载数据:根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件;若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件;当所有所述容器的负载数据满足所述预设负载条件时,再根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略,所述负载决策模型为基于异步优势动作评价A3C算法网络构建的模型,所述负载决策模型的优化目标由用户服务质量QoS的任务平均指令响应时间比和所述节点间的负载不均衡程度共同决定;最后根据所述负载均衡策略对容器资源进行调度。本发明由于设置了三个阈值,并利用由节点间的负载不均衡程度以及用户QoS共同构成优化目标的深度强化学习算法进行合理资源调度,能够及时根据工作***负载的变化做出高效的资源调度,从而有效应对真实网络环境下的负载不均衡情况,解决了现有技术中实现负载均衡时考虑指标单一且多采用可扩展性差的启发式算法计算,导致难以应对真实网络环境的问题。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (9)
1.一种Docker云平台动态负载均衡方法,其特征在于,所述方法包括:
获取多个节点和容器的负载数据;
针对每个所述容器的负载数据:
根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件;
若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件;
当所有所述容器的负载数据满足所述预设负载条件时,根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;
若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略,所述负载决策模型为基于异步优势动作评价A3C算法网络构建的模型,所述负载决策模型的优化目标由用户服务质量QoS的任务平均指令响应时间比和所述节点间的负载不均衡程度共同决定;
根据所述负载均衡策略对容器资源进行调度;
所述负载决策模型的优化目标的计算公式为:
,
其中,为任务平均指令响应时间比的权重,/>为CPU利用率标准差的平均值的权重,为任务i的指令长度,/>为任务i的数据传输量,/>为到容器m的网络传输速度,k=1,…,C,C为容器m未执行完的任务数量,/>为任务k在容器m中的执行时间,为容器m的CPU利用率,/>为容器m的指令执行速度,/>为容器m在t时刻的CPU利用率,/>为t时刻容器m与节点n的位置关系,/>为t时刻所有节点的CPU平均利用率,I为任务的数量,M为容器的数量,N为节点的数量,T为时刻的数量。
2.根据权利要求1所述的方法,其特征在于,所述根据所述负载数据,判断所述负载数据是否满足预设负载条件,具体包括:
若所述负载数据大于预设的过载阈值或小于预设的欠载阈值,则判断所述负载数据不满足所述预设负载条件;
若所述负载数据不大于预设的过载阈值且不小于预设的欠载阈值,则判断所述负载数据满足所述预设负载条件。
3.根据权利要求2所述的方法,其特征在于,若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,具体包括:
如果所述负载数据大于预设的过载阈值,则对所述容器进行扩展;
如果所述负载数据小于预设的欠载阈值,则对所述容器进行缩减。
4.根据权利要求1所述的方法,其特征在于,所述根据所有所述节点的负载数据,得到节点间的负载不均衡程度,具体包括:
针对T个时刻中每个时刻的所有节点,分别执行以下步骤:
获取所述所有节点的中央处理器CPU平均利用率;
根据所述CPU平均利用率,计算所述所有节点的CPU利用率标准差;
计算T个时刻的所述所有节点的CPU利用率标准差的平均值,并将所述所有节点的CPU利用率标准差的平均值作为所述各节点间的负载不均衡程度。
5.根据权利要求4所述的方法,其特征在于,所述所有节点的CPU平均利用率的计算公式为:
,
其中,为t时刻所有节点的CPU平均利用率,M为容器的数量,N为节点的数量,T为时刻的数量,/>为容器m在t时刻的CPU利用率,/>为t时刻容器m与节点n的位置关系;
所述所有节点的CPU利用率标准差的计算公式为:
,
其中,为t时刻所有节点的CPU利用率标准差;
所述T个时刻的所述所有节点的CPU利用率标准差的平均值的计算公式为:
,
其中,为T个时刻的所有节点的CPU利用率标准差的平均值。
6.根据权利要求1所述的方法,其特征在于,所述将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略之前,所述方法还包括:
针对所有容器内的每个任务,分别执行以下步骤:
获取所述任务传输到对应容器的传输时间;
根据所述传输时间,计算所述任务到达所述对应容器后的等待时间;
获取所述任务在所述对应容器的执行时间;
根据所述每个任务的传输时间、等待时间和执行时间,计算所述所有容器内的所有任务的平均指令响应时间比。
7.根据权利要求1所述的方法,其特征在于,所述任务传输到对应容器的传输时间的计算公式为:
,
其中,为任务i到容器m的数据传输时间,/>为任务i的数据传输量,/>为到容器m的网络传输速度;
所述任务到达所述对应容器后的等待时间的计算公式为:
,
其中,为任务i到达容器m后的等待时间,k=1,…,C,C为容器m未执行完的任务数量,/>为任务k在容器m中的执行时间;
所述任务在所述对应容器的执行时间的计算公式为:
,
其中,为任务i在容器m中的执行时间,/>为任务i的指令长度,/>为容器m的CPU利用率,/>为容器m的指令执行速度;
所述所有容器内的所有任务的平均指令响应时间比的计算公式为:
,
其中,为M个容器内的总共I个任务的平均指令响应时间比,I为任务的数量,M为容器的数量。
8.一种Docker云平台动态负载均衡装置,其特征在于,包括:
获取模块,用于获取多个节点和容器的负载数据;
第一判断模块,与所述获取模块连接,用于根据所述容器的负载数据,判断所述负载数据是否满足预设负载条件;
扩展缩减模块,与所述第一判断模块连接,用于若所述负载数据不满足预设负载条件,则对容器进行扩展或缩减,以满足所述预设负载条件;
第二判断模块,与所述扩展缩减模块连接,用于当所有所述容器的负载数据满足所述预设负载条件时,根据所有所述节点的负载数据,得到节点间的负载不均衡程度,并判断所述节点间的负载不均衡程度是否超过预设的负载均衡阈值;
输入模型模块,与所述第二判断模块连接,用于若所述节点间的负载不均衡程度超过所述预设的负载均衡阈值,则将所述多个节点和容器的负载数据输入负载决策模型,得到负载均衡策略;
调度模块,与所述输入模型模块连接,用于根据所述负载均衡策略对容器资源进行调度;
所述负载决策模型的优化目标的计算公式为:
,
其中,为任务平均指令响应时间比的权重,/>为CPU利用率标准差的平均值的权重,为任务i的指令长度,/>为任务i的数据传输量,/>为到容器m的网络传输速度,k=1,…,C,C为容器m未执行完的任务数量,/>为任务k在容器m中的执行时间,为容器m的CPU利用率,/>为容器m的指令执行速度,/>为容器m在t时刻的CPU利用率,/>为t时刻容器m与节点n的位置关系,/>为t时刻所有节点的CPU平均利用率,I为任务的数量,M为容器的数量,N为节点的数量,T为时刻的数量。
9.一种Docker云平台动态负载均衡装置,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现如权利要求1-7中任一项所述的Docker云平台动态负载均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310821239.4A CN116541178B (zh) | 2023-07-06 | 2023-07-06 | 一种Docker云平台动态负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310821239.4A CN116541178B (zh) | 2023-07-06 | 2023-07-06 | 一种Docker云平台动态负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116541178A CN116541178A (zh) | 2023-08-04 |
CN116541178B true CN116541178B (zh) | 2023-10-20 |
Family
ID=87449216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310821239.4A Active CN116541178B (zh) | 2023-07-06 | 2023-07-06 | 一种Docker云平台动态负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541178B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857577A (zh) * | 2012-09-24 | 2013-01-02 | 北京联创信安科技有限公司 | 一种集群存储自动负载均衡的***及方法 |
CN104202388A (zh) * | 2014-08-27 | 2014-12-10 | 福建富士通信息软件有限公司 | 一种基于云平台的自动负载均衡*** |
CN106998303A (zh) * | 2017-03-24 | 2017-08-01 | 中国联合网络通信集团有限公司 | 路由节点的负载均衡方法和负载均衡*** |
CN114816723A (zh) * | 2021-01-29 | 2022-07-29 | 中移(苏州)软件技术有限公司 | 一种负载均衡***、方法及计算机可读存储介质 |
CN115987995A (zh) * | 2022-08-31 | 2023-04-18 | 兴业银行股份有限公司 | 提高kubernetes的节点资源利用率平衡负载的方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10432709B2 (en) * | 2016-03-28 | 2019-10-01 | Industrial Technology Research Institute | Load balancing method, load balancing system, load balancing device and topology reduction method |
-
2023
- 2023-07-06 CN CN202310821239.4A patent/CN116541178B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857577A (zh) * | 2012-09-24 | 2013-01-02 | 北京联创信安科技有限公司 | 一种集群存储自动负载均衡的***及方法 |
CN104202388A (zh) * | 2014-08-27 | 2014-12-10 | 福建富士通信息软件有限公司 | 一种基于云平台的自动负载均衡*** |
CN106998303A (zh) * | 2017-03-24 | 2017-08-01 | 中国联合网络通信集团有限公司 | 路由节点的负载均衡方法和负载均衡*** |
CN114816723A (zh) * | 2021-01-29 | 2022-07-29 | 中移(苏州)软件技术有限公司 | 一种负载均衡***、方法及计算机可读存储介质 |
CN115987995A (zh) * | 2022-08-31 | 2023-04-18 | 兴业银行股份有限公司 | 提高kubernetes的节点资源利用率平衡负载的方法及*** |
Non-Patent Citations (1)
Title |
---|
基于云计算的弹性负载均衡服务研究;梅荣;;中国公共安全(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116541178A (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Han et al. | Tailored learning-based scheduling for kubernetes-oriented edge-cloud system | |
CN110413389B (zh) | 一种资源不均衡Spark环境下的任务调度优化方法 | |
WO2018076791A1 (zh) | 一种资源负载均衡控制方法及集群调度器 | |
CN103631657B (zh) | 一种基于MapReduce的任务调度方法 | |
CN111274036B (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
CN109818786B (zh) | 一种云数据中心应用可感知的分布式多资源组合路径最优选取方法 | |
CN104636204B (zh) | 一种任务调度方法与装置 | |
CN106528270A (zh) | 一种基于OpenStack云平台的虚拟机自动迁移方法及*** | |
CN103699433B (zh) | 一种于Hadoop平台中动态调整任务数目的方法及*** | |
CN113806018A (zh) | 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法 | |
CN111381928B (zh) | 一种虚拟机迁移方法、云计算管理平台和存储介质 | |
CN106201701A (zh) | 一种带任务重复的工作流调度算法 | |
Li et al. | An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters | |
Mousavi Khaneghah et al. | A mathematical multi-dimensional mechanism to improve process migration efficiency in peer-to-peer computing environments | |
WO2020134133A1 (zh) | 一种资源配置方法、变电站及计算机可读存储介质 | |
CN114780244A (zh) | 容器云资源弹性分配方法、装置、计算机设备及介质 | |
CN113553138A (zh) | 一种云资源调度的方法及装置 | |
CN113902116A (zh) | 一种面向深度学习模型推理批处理优化方法与*** | |
CN113791913B (zh) | 一种类脑计算机操作***的任务迁移方法 | |
CN107070965B (zh) | 一种虚拟化容器资源下的多工作流资源供给方法 | |
CN117349026B (zh) | 一种用于aigc模型训练的分布式算力调度*** | |
Xu et al. | A meta reinforcement learning-based virtual machine placement algorithm in mobile edge computing | |
CN116541178B (zh) | 一种Docker云平台动态负载均衡方法及装置 | |
CN112130927B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |