CN112416578B - 一种基于深度强化学习的容器云集群资源利用优化方法 - Google Patents
一种基于深度强化学习的容器云集群资源利用优化方法 Download PDFInfo
- Publication number
- CN112416578B CN112416578B CN202011225270.4A CN202011225270A CN112416578B CN 112416578 B CN112416578 B CN 112416578B CN 202011225270 A CN202011225270 A CN 202011225270A CN 112416578 B CN112416578 B CN 112416578B
- Authority
- CN
- China
- Prior art keywords
- node
- network model
- load
- action
- depth
- 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
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/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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种基于深度强化学习的容器云集群资源利用优化方法,包括:对原始负载数据进行预处理并组装为输入状态s;构建深度Q网络模型,将输入状态s输入深度Q网络模型中,深度Q网络模型以一定概率随机选取动作a,或选取使深度Q网络模型最优的动作a,执行一次超卖比预测;通过奖励函数对所选取的动作a进行评估,得到奖励r并进入下一状态s′;将输入状态s、动作a、奖励r、下一状态s′组成四元组并作为训练样本放入缓存中;当达到预设的训练间隔时,从缓存中采样e个训练样本并输入深度Q网络模型中进行训练,更新深度Q网络模型的参数;当深度Q网络模型经过E轮训练后,将完成参数更新的深度Q网络模型应用于确定超卖策略。
Description
技术领域
本发明涉及云计算资源管理技术领域,更具体地,涉及一种基于深度强化学习的容器云集群资源利用优化方法。
背景技术
Docker是一个开源的应用容器引擎,随着docker容器技术在应用开发、测试和发布的广泛应用,Google于2015年首次提出kubernetes(K8s),一种基于docker容器技术的分布式架构方案。K8s提供了完备的集群管理能力,例如多层次的安全防护与准入控制、透明的服务注册和服务发现机制以及多粒度的资源管理能力。另外,k8s同时提供了内置的负载均衡器和可拓展的资源自动调度能力,其调度能力由内置的调度器提供,并且需要经过以下步骤:(1)节点预选:排除完全不满足条件的节点,例如内存大小、端口等条件不满足;(2)节点优先级排序:根据优先级选出最佳节点;(3)绑定:将Pod绑定到上一步筛选出的最优节点上。其中,(1)的其中一个筛选条件就是节点的剩余资源,当节点剩余资源量小于Pod的资源申请量时,节点会被k8s的调度器直接排除在外,也就是说此时该节点无法继续调度Pod。
从这里可以看出,k8s使用的调度方式为静态调度,即k8s根据的是容器请求的资源进行装箱调度,而不是根据节点的真实负载。然而,这种静态调度方式的优点是足够简单有效,但是存在容易导致集群的资源利用率偏低的问题,而这也是一个业界普遍存在的问题。
发明内容
本发明为克服上述现有技术所述的集群的资源利用率偏低的缺陷,提供一种基于深度强化学习的容器云集群资源利用优化方法。
为解决上述技术问题,本发明的技术方案如下:
一种基于深度强化学习的容器云集群资源利用优化方法,包括以下步骤:
S1:对原始负载数据进行预处理,将完成预处理的原始负载数据组装为输入状态s;
S2:构建用于确定超卖策略的深度Q网络模型,将输入状态s输入深度Q网络模型中,深度Q网络模型以一定概率随机选取动作a,或选取使深度Q网络模型最优的动作a,执行一次超卖比预测;
S3:通过奖励函数对所选取的动作a进行评估,得到奖励r并进入下一状态s′;
S4:将输入状态s、动作a、奖励r、下一状态s′组成四元组并作为训练样本放入缓存中;
S5:当达到预设的训练间隔时,从缓存中采样e个训练样本并输入深度Q网络模型中进行训练,更新深度Q网络模型的参数;其中e为正整数;
S6:当深度Q网络模型经过E轮训练后,将完成参数更新的深度Q网络模型应用于确定超卖策略。
优选地,S1步骤中,对原始负载数据进行预处理包括分箱处理操作;其具体步骤如下:
假设负载更新周期为T,在第k个时间周期中,节点n的第k周期内的原始负载数据为且原始负载数据/>的维度与更新周期T中采样点的个数相同;设置分箱个数为B,对应的边界值bi的取值范围为{bi|0≤i≤B,i∈N};假设有个M集群,第m个集群的节点数量为Nm;
则对原始负载数据进行分箱处理操作的表达公式如下:
其中,Cm,n表示集群m中第n个节点的实际资源容量;I函数为指示函数;表示节点负载,当负载数据/>的数值落入到第i个分箱区间时,节点负载/>的数值相应加1。
优选地,输入状态s中包括节点信息Cn、节点容器信息节点历史负载/>其中,节点信息Cn中包括第n个节点所在集群ID、所在城市ID、实际资源容量、当前超卖比;节点容器信息/>表示第k个负载更新周期中,最近7天第n个节点上在线业务Pod数量、离线业务Pod数量、Pod的资源申请总量;节点历史负载/>表示分箱处理后的节点最近7天的历史负载。
优选地,S2步骤中,将输入状态s输入所述深度Q网络模型后,所述深度Q网络模型根据输入状态s计算每个动作a对应的Q值,并根据动作a对应的Q值判断当前动作a是否使所述深度Q网络模型最优;Q值的计算公式如下:
Q(s,a,θ)=r′current+γr′future
其中,Q值表示在状态s和执行动作a的情况下,深度Q网络模型可获得的即时奖励r′current和未来奖励的预测值r′future;γ表示即时奖励和未来奖励的折扣因子;θ为深度Q网络模型的参数。
优选地,S3步骤中,通过奖励函数对所选取的动作a进行评估,其中奖励r的计算公式如下:
其中,wo和wu分别表示超量损失和缺量损失的权衡因子,且wo+wu=1;ok表示超量损失,即当节点的负载高于Ltarget时节点存在的高负载告警风险;其表达公式如下:
uk表示缺量损失,即当节点的负载低于Ltarget时节点存在的资源浪费;其表达公式如下:
式中,Ltarget为预设的节点的目标负载水平;ho和hu分别表示超量损失和缺量损失的半衰期;表示超卖后节点负载的估计。
优选地,所述超卖后节点负载的估计值的计算过程中,对于可压缩资源,采用集群m的平均资源利用率/>估计超卖后节点的负载状态;其计算公式如下:
对于不可压缩资源,当节点无法提供给进程需要的内存大小时,该进程会直接被操作系统终止,需要采用集群m的最大使用率估计超卖后节点的负载状态。
优选地,深度Q网络模型包括目标Q网络和在线Q网络,其参数分别表示为θ和θ′;
所述S2步骤中,采用在线Q网络选取动作a;
所述S5步骤中,当达到预设的训练间隔时,从所述缓存中采样e个训练样本并输入所述在线Q网络中进行训练并更新其参数θ′;
所述S6步骤中,当所述在线Q网络经过E轮训练后,将完成参数更新的参数θ′用于更新目标Q网络的参数θ,并将所述目标Q网络应用于确定超卖策略。
优选地,S5步骤中,所述深度Q网络模型中进行训练的过程中采用梯度下降算法对(y-Q(s,a,θ′))2中的参数θ′进行更新;其中,y的表达公式如下:
y=r+γmaxa′Q(s′,a′,θ)
式中,y表示当前目标Q值,a′表示下一状态s'下执行的动作。
优选地,所述容器云集群资源利用优化方法还包括以下步骤:
S7:将完成参数更新的深度Q网络模型部署在集群外作为超卖策略接口提供服务,并在集群中部署事件拦截模块;所述事件拦截模块采用k8s提供的准入控制器对Pod创建、删除事件以及节点心跳事件进行拦截。
优选地,所述事件拦截模块所执行的步骤包括:
1)k8s服务器通过心跳事件希望将节点的真实资源状态存储到数据库中;
2)拦截节点心跳事件,将该节点的真实资源状态替换为超卖计算结果;
3)拦截集群中Pod的创建和删除事件,对应节点标记为“脏节点”;
4)将所述“脏节点”加入节点池;
5)独立线程监控本地缓存中的节点状态;
6)当节点上没有发生Pod创建、删除事件时,将该节点标记为“旧节点”并将所述“旧节点”加入节点池;
7)节点池中的节点并发调用超卖策略接口;
8)对发生高负载告警的节点调用超卖值策略接口。
与现有技术相比,本发明技术方案的有益效果是:本发明采用深度Q网络模型作为超卖策略模型,用于对确定超卖策略;对输入深度Q网络模型的数据进行预处理,减少原始负载数据的存储所需空间并且降低后续强化学习模型的输入维度;结合奖励函数对深度Q网络模型输出的动作进行评估,并以降低超卖带来的负载过高风险以及降低资源浪费为目标对深度Q网络模型进行训练,有效提高集群的资源利用率。
附图说明
图1为本发明的基于深度强化学习的容器云集群资源利用优化方法的流程图。
图2为本发明的事件拦截模块的设计流程图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
本实施例提出一种基于深度强化学习的容器云集群资源利用优化方法,如图1所示,为本实施例的基于深度强化学习的容器云集群资源利用优化方法的流程图。
本实施例提出的基于深度强化学习的容器云集群资源利用优化方法中,其具体包括以下步骤:
S1:对原始负载数据进行预处理,将完成预处理的原始负载数据组装为输入状态s。
本实施例中,根据负载更新周期对原始负载数据进行预处理包括分箱处理操作,能够减少原始负载数据的存储所需空间并且降低后续强化学习模型的输入维度。其具体步骤如下:
假设负载更新周期为T为一周,在第k个时间周期中,节点n的第k周期内的原始负载数据为且原始负载数据/>的维度与更新周期T中采样点的个数相同;设置分箱个数为B,对应的边界值bi的取值范围为{bi|0≤i≤B,i∈N};假设有个M集群,第m个集群的节点数量为Nm;
则对原始负载数据进行分箱处理操作的表达公式如下:
其中,Cm,n表示集群m中第n个节点的实际资源容量;I函数为指示函数;表示节点负载,当负载数据/>的数值落入到第i个分箱区间时,节点负载/>的数值相应加1。
本实施例中的输入状态s中包括节点信息Cn、节点容器信息节点历史负载其中,节点信息Cn中包括第n个节点所在集群ID、所在城市ID、实际资源容量、当前超卖比;节点容器信息/>表示第k个负载更新周期中,最近7天第n个节点上在线业务Pod数量、离线业务Pod数量、Pod的资源申请总量;节点历史负载/>表示分箱处理后的节点最近7天的历史负载。
S2:构建用于确定超卖策略的深度Q网络模型,将输入状态s输入所述深度Q网络模型中,所述深度Q网络模型以一定概率随机选取动作a,或选取使所述深度Q网络模型最优的动作a,执行一次超卖比预测。
本实施例中,采用Google DeepMind团队提出的深度Q网络模型,使用神经网络代替强化学习中的值函数。在强化学习模型中,本实施例中的深度Q网络模型作为智能体与环境进行交互,根据对环境的观测,智能体会采取相应的决策,并执行相应动作。其中,深度Q网络模型包括目标Q网络和在线Q网络,其参数分别表示为θ和θ′。
在本步骤中,将输入状态s输入在线Q网络中,在线Q网络以一定概率随机选取动作a,或选取使所述深度Q网络模型最优的动作a,执行一次超卖比预测。其中,每个动作a代表所有可能的超卖比,超卖比本身是一个连续值,为简化问题,本发明将其离散化为B维,B为分箱个数;此处在线Q网络所选取的动作a代表智能体预测出的超卖比。
此外,本实施例中,将输入状态s输入所述深度Q网络模型后,所述深度Q网络模型根据输入状态s计算每个动作a对应的Q值,并根据动作a对应的Q值判断当前动作a是否使所述深度Q网络模型最优;Q值的计算公式如下:
Q(s,a,θ)=r′current+γr′future
其中,Q值表示在状态s和执行动作a的情况下,深度Q网络模型可获得的即时奖励r′current和未来奖励的预测值r′future;γ表示即时奖励和未来奖励的折扣因子;θ为深度Q网络模型的参数。
S3:通过奖励函数对所选取的动作a进行评估,得到奖励r并进入下一状态s′。
当智能体选择一个动作a时,也就是执行一次超卖比预测时,需要对这次动作使用奖励函数进行评估,实现利用集群的相关统计特征估计超卖后节点的状态。本实施例通过采集每个集群的重要统计特征(画像),包括集群m的平均资源利用率资源使用率最大值/>资源使用率最小值/>等。
本步骤中,通过奖励函数对所选取的动作a进行评估,其中奖励r的计算公式如下:
其中,智能体当前的决策代价为超量损失和缺量损失的加权和,本实施例采用决策代价的倒数作为奖励函数;wo和wu分别表示超量损失和缺量损失的权衡因子,且wo+wu=1。对于不同类型的资源,上述两个权衡因子也不同,例如,相比较CPU和内存,内存资源的超量带来的风险更大,因此相应的超量损失权衡因子wo会设置得更大。
ok表示超量损失,即当节点的负载高于Ltarget时节点存在的高负载告警风险;其表达公式如下:
uk表示缺量损失,即当节点的负载低于Ltarget时节点存在的资源浪费;其表达公式如下:
式中,Ltarget为预设的节点的目标负载水平,该值根据实际经验设置,用于表示处于该水平线附近的节点资源利用率比较理想;ho和hu分别表示超量损失和缺量损失的半衰期;
表示超卖后节点负载的估计,其计算根据其资源类型采用不同的估计计算。对于可压缩资源,采用集群m的平均资源利用率/>估计超卖后节点的负载状态;对于不可压缩资源,当节点无法提供给进程需要的内存大小时,该进程会直接被操作系统终止,需要采用集群m的最大使用率/>估计超卖后节点的负载状态,用于指导智能体更加保守地采取行动。
以资源为CPU(可压缩资源)为例,超卖后节点负载的估计的计算公式如下:
S4:将输入状态s、动作a、奖励r、下一状态s′组成四元组(s,a,r,s′)并作为训练样本放入缓存中。
S5:当达到预设的训练间隔时,从所述缓存中采样e个训练样本并输入所述在线Q网络中进行训练,更新在线Q网络的参数θ′。
本步骤中,采用梯度下降算法对(y-Q(s,a,θ′))2中的参数θ′进行更新;其中,y的表达公式如下:
y=r+γmaxa′Q(s′,a′,θ)
式中,y表示当前目标Q值,a′表示下一状态s'下执行的动作。
S6:当在线Q网络经过E轮训练后,将其参数θ′赋值给目标Q网络的参数θ,并对目标Q网络进行更新,并将完成参数更新的目标Q网络应用于确定超卖策略。
进一步地,将完成参数更新的目标Q网络部署在集群外作为超卖策略接口提供服务,并在集群中部署事件拦截模块,用于提高对节点负载变化的处理能力。所述事件拦截模块采用k8s提供的准入控制器对Pod创建、删除事件以及节点心跳事件进行拦截。
如图2所示,为本实施例的事件拦截模块的流程示意图。
其中,事件拦截模块所执行的步骤包括:
1)k8s服务器通过心跳事件希望将节点的真实资源状态存储到数据库中;
2)拦截节点心跳事件,将该节点的真实资源状态替换为超卖计算结果;
3)拦截集群中Pod的创建和删除事件,对应节点标记为“脏节点”;
4)将所述“脏节点”加入节点池;
5)独立线程监控本地缓存中的节点状态;
6)当节点上没有发生Pod创建、删除事件时,将该节点标记为“旧节点”并将所述“旧节点”加入节点池;
7)节点池中的节点并发调用超卖策略接口;
8)对发生高负载告警的节点调用超卖值策略接口。
本实施例使用k8s作为容器云平台的管理方案,并针对k8s内置的静态调度机制导致的集群资源利用率的问题,同时为了尽可能减少对运行中的业务产生干扰的情况下,提高集群的资源利用率,提出了上述基于深度强化学习的容器云集群资源利用优化方法。
本实施例充分考虑到了不同业务对服务的可用性、质量等的要求,提出的基于修改k8s节点资源容量状态的超卖方案对处于任何阶段的容器都具有透明性,能在满足服务提供方对业务可用性要求的前提下对集群资源进行超卖。本实施例提出了用于确定超卖策略的深度强化学习模型、基于集群画像的奖励函数以及基于定时更新和事件驱动的事件拦截模块设计等技术方案,具体的,本实施例基于深度强化学习,以集群中节点的状态(节点信息、当前负载状态)作为网络输入,以降低超卖带来的负载过高风险以及降低资源浪费为目标,训练超卖策略模型(深度Q网络模型),从而实现有效提高集群的资源利用率。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于深度强化学习的容器云集群资源利用优化方法,其特征在于,包括以下步骤:
S1:对原始负载数据进行预处理,将完成预处理的原始负载数据组装为输入状态s;其中,对原始负载数据进行预处理包括分箱处理操作;设置分箱个数为B,对应的边界值bi的取值范围为{bi|0≤i≤B,i∈N};
S2:构建用于确定超卖策略的深度Q网络模型,将输入状态s输入所述深度Q网络模型中,所述深度Q网络模型以一定概率随机选取动作a,或选取使所述深度Q网络模型最优的动作a,执行一次超卖比预测;将输入状态s输入所述深度Q网络模型后,所述深度Q网络模型根据输入状态s计算每个动作a对应的Q值,并根据动作a对应的Q值判断当前动作a是否使所述深度Q网络模型最优;Q值的计算公式如下:
Q(s,a,θ)=r′current+γr′future
其中,Q值表示在状态s和执行动作a的情况下,深度Q网络模型可获得的即时奖励r′current和未来奖励的预测值r′future;γ表示即时奖励和未来奖励的折扣因子;θ为深度Q网络模型的参数;
S3:通过奖励函数对所选取的动作a进行评估,得到奖励r并进入下一状态s′;其中,通过奖励函数对所选取的动作a进行评估,其中奖励r的计算公式如下:
其中,wo和wu分别表示超量损失和缺量损失的权衡因子,且wo+wu=1;ok表示超量损失,即当节点的负载高于Ltarget时节点存在的高负载告警风险;其表达公式如下:
uk表示缺量损失,即当节点的负载低于Ltarget时节点存在的资源浪费;其表达公式如下:
式中,Ltarget为预设的节点的目标负载水平;ho和hu分别表示超量损失和缺量损失的半衰期;表示超卖后节点负载的估计;
S4:将输入状态s、动作a、奖励r、下一状态s′组成四元组并作为训练样本放入缓存中;
S5:当达到预设的训练间隔时,从所述缓存中采样e个训练样本并输入所述深度Q网络模型中进行训练,更新所述深度Q网络模型的参数;其中e为正整数;
S6:当所述深度Q网络模型经过E轮训练后,将完成参数更新的深度Q网络模型应用于确定超卖策略。
2.根据权利要求1所述的容器云集群资源利用优化方法,其特征在于,所述S1步骤中,对原始负载数据进行预处理包括分箱处理操作;其具体步骤如下:
假设负载更新周期为T,在第k个时间周期中,节点n的第k周期内的原始负载数据为且原始负载数据/>的维度与更新周期T中采样点的个数相同;设置分箱个数为B,对应的边界值bi的取值范围为{bi|0≤i≤B,i∈N};假设有个M集群,第m个集群的节点数量为Nm;
则对原始负载数据lk n进行分箱处理操作的表达公式如下:
其中,Cm,n表示集群m中第n个节点的实际资源容量;I函数为指示函数;表示节点负载,当负载数据/>的数值落入到第i个分箱区间时,节点负载/>的数值相应加1。
3.根据权利要求2所述的容器云集群资源利用优化方法,其特征在于,所述输入状态s中包括节点信息Cn、节点容器信息节点历史负载/>其中,节点信息Cn中包括第n个节点所在集群ID、所在城市ID、实际资源容量、当前超卖比;节点容器信息/>表示第k个负载更新周期中,最近7天第n个节点上在线业务Pod数量、离线业务Pod数量、Pod的资源申请总量;节点历史负载/>表示分箱处理后的节点最近7天的历史负载。
4.根据权利要求2所述的容器云集群资源利用优化方法,其特征在于,所述S2步骤中,将输入状态s输入所述深度Q网络模型后,所述深度Q网络模型根据输入状态s计算每个动作a对应的Q值,并根据动作a对应的Q值判断当前动作a是否使所述深度Q网络模型最优;Q值的计算公式如下:
Q(s,a,θ)=rc′urrent+γrf′uture
其中,Q值表示在状态s和执行动作a的情况下,深度Q网络模型可获得的即时奖励rc′urrent和未来奖励的预测值rf′uture;γ表示即时奖励和未来奖励的折扣因子;θ为深度Q网络模型的参数。
5.根据权利要求4所述的容器云集群资源利用优化方法,其特征在于,所述S3步骤中,通过奖励函数对所选取的动作a进行评估,其中奖励r的计算公式如下:
其中,wo和wu分别表示超量损失和缺量损失的权衡因子,且wo+wu=1;ok表示超量损失,即当节点的负载高于Ltarget时节点存在的高负载告警风险;其表达公式如下:
uk表示缺量损失,即当节点的负载低于Ltarget时节点存在的资源浪费;其表达公式如下:
式中,Ltarget为预设的节点的目标负载水平;ho和hu分别表示超量损失和缺量损失的半衰期;表示超卖后节点负载的估计。
6.根据权利要求5所述的容器云集群资源利用优化方法,其特征在于,所述超卖后节点负载的估计值的计算过程中,对于可压缩资源,采用集群m的平均资源利用率/>估计超卖后节点的负载状态;其计算公式如下:
对于不可压缩资源,当节点无法提供给进程需要的内存大小时,该进程会直接被操作系统终止,需要采用集群m的最大使用率估计超卖后节点的负载状态。
7.根据权利要求6所述的容器云集群资源利用优化方法,其特征在于,所述深度Q网络模型包括目标Q网络和在线Q网络,其参数分别表示为θ和θ′;
所述S2步骤中,采用在线Q网络选取动作a;
所述S5步骤中,当达到预设的训练间隔时,从所述缓存中采样e个训练样本并输入所述在线Q网络中进行训练并更新其参数θ′;
所述S6步骤中,当所述在线Q网络经过E轮训练后,将完成参数更新的参数θ′用于更新目标Q网络的参数θ,并将所述目标Q网络应用于确定超卖策略。
8.根据权利要求7所述的容器云集群资源利用优化方法,其特征在于,所述S5步骤中,所述深度Q网络模型中进行训练的过程中采用梯度下降算法对(y-Q(s,a,θ′))2中的参数θ′进行更新;其中,y的表达公式如下:
y=r+γmaxa′Q(s′,a′,θ)
式中,y表示当前目标Q值,a′表示下一状态s'下执行的动作。
9.根据权利要求1~8任一项所述的容器云集群资源利用优化方法,其特征在于,所述容器云集群资源利用优化方法还包括以下步骤:
S7:将完成参数更新的深度Q网络模型部署在集群外作为超卖策略接口提供服务,并在集群中部署事件拦截模块;所述事件拦截模块采用k8s提供的准入控制器对Pod创建、删除事件以及节点心跳事件进行拦截。
10.根据权利要求9所述的容器云集群资源利用优化方法,其特征在于,所述事件拦截模块所执行的步骤包括:
1)k8s服务器通过心跳事件希望将节点的真实资源状态存储到数据库中;
2)拦截节点心跳事件,将该节点的真实资源状态替换为超卖计算结果;
3)拦截集群中Pod的创建和删除事件,对应节点标记为“脏节点”;
4)将所述“脏节点”加入节点池;
5)独立线程监控本地缓存中的节点状态;
6)当节点上没有发生Pod创建、删除事件时,将该节点标记为“旧节点”并将所述“旧节点”加入节点池;
7)节点池中的节点并发调用超卖策略接口;
8)对发生高负载告警的节点调用超卖值策略接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011225270.4A CN112416578B (zh) | 2020-11-05 | 2020-11-05 | 一种基于深度强化学习的容器云集群资源利用优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011225270.4A CN112416578B (zh) | 2020-11-05 | 2020-11-05 | 一种基于深度强化学习的容器云集群资源利用优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416578A CN112416578A (zh) | 2021-02-26 |
CN112416578B true CN112416578B (zh) | 2023-08-15 |
Family
ID=74828183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011225270.4A Active CN112416578B (zh) | 2020-11-05 | 2020-11-05 | 一种基于深度强化学习的容器云集群资源利用优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416578B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485792B (zh) * | 2021-07-08 | 2023-05-26 | 厦门服云信息科技有限公司 | 一种kubernetes集群内Pod调度方法、终端设备及存储介质 |
CN114389990A (zh) * | 2022-01-07 | 2022-04-22 | 中国人民解放军国防科技大学 | 基于深度强化学习的最短路阻断方法和装置 |
CN115130929B (zh) * | 2022-08-29 | 2022-11-15 | 中国西安卫星测控中心 | 基于机器学习分类的资源池智能生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491790A (zh) * | 2018-11-02 | 2019-03-19 | 中山大学 | 基于容器的工业物联网边缘计算资源分配方法及系统 |
CN110427261A (zh) * | 2019-08-12 | 2019-11-08 | 电子科技大学 | 一种基于深度蒙特卡洛树搜索的边缘计算任务分配方法 |
CN110688202A (zh) * | 2019-10-09 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 服务进程调度方法、装置、设备及存储介质 |
WO2020206705A1 (zh) * | 2019-04-10 | 2020-10-15 | 山东科技大学 | 一种基于集群节点负载状态预测的作业调度方法 |
-
2020
- 2020-11-05 CN CN202011225270.4A patent/CN112416578B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491790A (zh) * | 2018-11-02 | 2019-03-19 | 中山大学 | 基于容器的工业物联网边缘计算资源分配方法及系统 |
WO2020206705A1 (zh) * | 2019-04-10 | 2020-10-15 | 山东科技大学 | 一种基于集群节点负载状态预测的作业调度方法 |
CN110427261A (zh) * | 2019-08-12 | 2019-11-08 | 电子科技大学 | 一种基于深度蒙特卡洛树搜索的边缘计算任务分配方法 |
CN110688202A (zh) * | 2019-10-09 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 服务进程调度方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
Mohamed Handaoui et al..ReLeaSER: A Reinforcement Learning Strategy for Optimizing Utilization Of Ephemeral Cloud Resources.《arXiv:2009.11208v3》.2020,第1-9页. * |
Also Published As
Publication number | Publication date |
---|---|
CN112416578A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416578B (zh) | 一种基于深度强化学习的容器云集群资源利用优化方法 | |
US8276143B2 (en) | Dynamic scheduling of application tasks in a distributed task based system | |
CN113806018B (zh) | 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法 | |
CN111274036B (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN106020941A (zh) | 选择资源分配策略和解决资源冲突 | |
US11757790B2 (en) | Method and server for adjusting allocation of computing resources to plurality of virtualized network functions (VNFs) | |
CN111966484A (zh) | 一种基于深度强化学习的集群资源管理和任务调度方法及系统 | |
CN112799817A (zh) | 一种微服务资源调度系统和方法 | |
CN111045820A (zh) | 一种基于时序预测的容器调度方法 | |
CN117349026B (zh) | 一种用于aigc模型训练的分布式算力调度系统 | |
CN113190342B (zh) | 用于云-边协同网络的多应用细粒度卸载的方法与系统架构 | |
Yang et al. | Design of kubernetes scheduling strategy based on LSTM and grey model | |
US20230254214A1 (en) | Control apparatus, virtual network assignment method and program | |
CN116185584A (zh) | 一种基于深度强化学习的多租户数据库资源规划与调度方法 | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN114466014B (zh) | 一种服务调度方法、装置、电子设备及存储介质 | |
CN110083434A (zh) | 云虚拟机批量整合的方法、装置和服务器 | |
US20220051135A1 (en) | Load balancing using data-efficient learning | |
Xiao et al. | Learning task allocation for multiple flows in multi-agent systems | |
Feng et al. | Tango: Harmonious Management and Scheduling for Mixed Services Co-located among Distributed Edge-Clouds | |
CN116541178B (zh) | 一种Docker云平台动态负载均衡方法及装置 | |
CN116389255A (zh) | 一种改进双深度q网络的服务功能链部署方法 | |
CN107729150A (zh) | 一种异构集群安监设备最小能耗节点的寻址方法 | |
CN117827461A (zh) | Dag作业调度方法及系统 | |
Qian et al. | A Reinforcement Learning-based Orchestrator for Edge Computing Resource Allocation in Mobile Augmented Reality Systems |
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 |