CN117194034A - 基于深度强化学习的大规模容器集群自治系统及方法 - Google Patents
基于深度强化学习的大规模容器集群自治系统及方法 Download PDFInfo
- Publication number
- CN117194034A CN117194034A CN202311215604.3A CN202311215604A CN117194034A CN 117194034 A CN117194034 A CN 117194034A CN 202311215604 A CN202311215604 A CN 202311215604A CN 117194034 A CN117194034 A CN 117194034A
- Authority
- CN
- China
- Prior art keywords
- container
- node
- resource allocation
- resource
- service
- 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 38
- 230000002787 reinforcement Effects 0.000 title claims abstract description 37
- 238000013468 resource allocation Methods 0.000 claims abstract description 102
- 238000004364 calculation method Methods 0.000 claims abstract description 43
- 238000011156 evaluation Methods 0.000 claims description 36
- 230000009471 action Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 9
- 230000007704 transition Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000013441 quality evaluation Methods 0.000 abstract description 5
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 239000003795 chemical substances by application Substances 0.000 description 55
- 230000008569 process Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于深度强化学习的大规模容器集群自治系统及方法,该系统包括数据采集代理模块、资源分配计算模块、硬件映射器、API服务器和调度器,其中,数据采集代理模块用于采集CPU利用率、缓存空间等指标数据;API服务器将容器信息发送到调度器;调度器根据容器信息、节点资源信息与服务质量将容器部署到合适的节点;资源分配计算模块用于计算资源分配方案,并提供容器所在节点的服务质量评价结果,之后根据新的服务质量更新深度强化学习网络的网络参数;硬件映射器根据资源分配方案修改容器的硬件配置信息。本发明具有不基于先验信息即可部署、从调度层级保障容器集群的高服务质量的优点,有利于提高集群的资源利用率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于深度强化学习的大规模容器集群自治系统及方法。
背景技术
随着云计算技术的不断发展,容器集群作为一种新型的云计算架构方式,逐渐成为了云计算领域的热门话题。容器集群是一种将多个容器组合在一起,形成的一个高可用、高可扩展的集群系统,以提供更加稳定、高效的服务。容器集群的发展可以追溯到2000年左右,当时的Linux操作系统已经开始支持容器技术,但是由于当时的硬件条件和网络环境限制,容器集群并没有得到广泛的应用。随着云计算技术的不断发展,特别是Docker容器技术的出现,容器集群逐渐成为了云计算领域的热门话题。目前,容器集群已经成为了云计算领域的主流技术之一,得到了广泛的应用。然而,容器集群在应用过程中也存在一些问题,其中最主要的问题是资源利用率不高,不能提供有效的服务质量保障。容器集群中的容器数量很多,但是容器之间的资源利用率并不高,很多容器的资源利用率只有10%左右,这导致了容器集群的资源浪费。如果简单地限制容器的硬件资源,则面临着关键容器服务质量无法得到保障的问题。为了解决上述存在的问题,如公开号为CN113849294A的专利开了一种Kubernetes pod扩缩容的系统及方法,通过获取自定义资源文件,生成自动弹性伸缩对象,并定期查询节点中pod的实时进程指标,判断是否对pod进行扩缩容;但是该系统的资源扩缩容方案通过简单的指标对比进行判断,不能够精确地将容器的资源使用量限制到最优;同时,没有从调度层面对服务质量优化进行感知与优化,缺少整体性。又如公开号为CN116069512A的专利同样使用了强化学习,该专利公开了一种基于强化学习的Serverless高效资源分配方法及系统,其中的是通过对尾延迟、决策频率以及资源效率关系的观察,在最小化无服务器系统的资源配置消耗的同时,保障设置的性能延迟目标;但是该方法使用尾延迟作为优化目标,在复杂通用的容器业务集群环境中,业务的复杂性决定了尾延迟难以测量,且不同业务的口径也不一致,导致这一在业务相似度较高的Serverless环境中适用的方法难以迁移到通用容器集群环境中。
容器集群是一种用于管理和部署容器的系统。容器是一种轻量级的虚拟化技术,可以将应用程序和其依赖项打包成一个可移植的容器,从而实现快速部署和扩展。容器集群是由多个容器组成的集合,可以通过容器编排工具来管理和部署。容器集群通常由多个节点组成,每个节点都可以运行多个容器。容器集群可以自动化地管理和调度容器,以实现更好的性能和资源利用率。容器集群还可以提供高可用性和容错性,以确保应用程序的稳定性和可靠性。深度强化学习是一种结合深度学习和强化学习的人工智能技术,它可以用于解决复杂的决策问题,如游戏、机器人控制、自动驾驶等。深度强化学习的核心思想是通过不断试错和学习,找到最优的行动策略,以最大化累积奖励。深度强化学习通常包括环境、状态、行动、奖励和策略等组件,训练过程包括采样、训练策略网络、计算累积奖励和更新价值网络等步骤。深度强化学习是一种非常先进的人工智能技术,可以为各种领域的决策问题提供有效的解决方案。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于深度强化学习的大规模容器集群自治系统及方法。本发明利用深度强化学习网络实现容器资源分配的自适应,能够有效提高容器集群资源利用率和服务质量。
本发明的目的是通过以下技术方案来实现的:本发明实施例第一方面提供了一种基于深度强化学习的大规模容器集群自治系统,包括:
数据采集代理模块,用于从容器集群中采集CPU利用率、缓存空间、内存空间与带宽、每指令平均周期数这些系统指标数据;维护并更新每个容器服务的系统指标;接收资源分配计算模块发送的资源查询请求,并将对应的查询结果返回给资源分配计算模块;其中,资源查询请求包括对应容器服务的系统标识符,资源查询请求返回体中包含所查询容器服务对应的系统指标;
资源分配计算模块,用于向数据采集代理模块发送资源查询请求,以查询系统指标数据,并对接收到的系统指标数据进行分析和处理,以获取容器集群节点的运行规律和性能特征;使用价值网络对容器所在节点的服务质量进行评价,以获取评价结果;根据性能特征和评价结果制定对应的资源分配方案,并将各容器服务的资源分配方案发送给硬件映射器;
硬件映射器,用于从资源分配计算模块接收各容器服务的资源分配方案,并将资源分配方案映射到硬件节点上;
API服务器,用于提供API接口,API接口用于管理和监控容器集群节点的状态和性能;其中,API接口包括多种类型,包括查询节点状态的API接口、查询应用程序性能指标的API接口以及修改资源分配方案的API接口;和
调度器,用于从API服务器获取待调度应用程序信息,从数据采集代理模块获取容器集群集群节点资源信息,从资源分配计算模块获取容器所在节点服务质量的评价结果,根据节点资源信息与评价结果将应用程序调度到最优容器节点上。
进一步地,所述对接收到的系统指标数据进行分析和处理,以获取容器集群节点的运行规律和性能特征,具体包括:使用强化学习方法进行建模以获取资源配置方案与应用的性能受影响情况的对应关系,并制定资源分配方案;其中强化学习方法的建模包括定义状态空间、动作空间、奖励函数和状态转移。
进一步地,所述服务质量包括每指令平均周期数的超阈值次数与资源的使用量;
所述价值网络包括输入层、共享隐藏层、智能体特定隐藏层和输出层,其中,所述输入层接受智能体的状态观察数据,该状态观察数据包括系统指标数据;将一个或多个共享隐藏层添加到价值网络中,共享隐藏层用于处理当前节点收集的智能体的状态观察数据;在共享隐藏层之后,为每个智能体添加一个或多个智能体特定隐藏层,智能体特定隐藏层用于处理智能体的信息,以根据自身状态观察数据作出资源配置决策;输出层为每个智能体生成当前节点资源配置的打分,以表示当前容器服务的服务质量,作为评价结果。
进一步地,所述根据节点资源信息与评价结果将应用程序调度到最优容器节点上,具体包括:调度器根据所有候选节点与当前容器的资源匹配程度进行打分,以获取匹配度得分;从资源分配计算模块获取容器所在节点服务质量的评价结果,根据该评价结果对容器节点服务质量进行打分,以获取服务质量得分;将每个容器节点的匹配度得分和服务质量得分进行加权求和,以获取每个容器节点的综合得分,选取综合得分中最大值对应的容器节点作为最优的容器节点。
本发明实施例第二方面提供了一种基于上述的基于深度强化学习的大规模容器集群自治系统的自治方法,包括以下步骤:
(1)API服务器接收用户新增容器服务的请求;调度器从API服务器获取待调度应用程序信息,从数据采集代理模块获取容器集群集群节点资源信息,从资源分配计算模块获取容器所在节点服务质量的评价结果;根据节点资源信息与容器节点服务质量的评价结果,将应用程序调度到最优容器节点上;
(2)数据采集代理模块采集容器部署节点的系统指标数据;资源分配计算模块向数据采集代理模块发送容器系统指标的资源查询请求;数据采集代理模块将对应的查询结果返回给资源分配计算模块;资源分配计算模块计算资源分配方案,并提供容器所在节点的服务质量的评价结果,并向硬件映射器发送各容器服务的资源分配方案;
(3)硬件映射器将资源分配计算模块得出的资源分配方案映射到硬件节点上,数据采集代理模块与资源分配计算模块再次计算容器所在节点服务质量,将两次服务质量的比较值作为奖励函数,更新深度强化学习网络的网络参数。
本发明的有益效果是,本发明使用强化学习在不影响容器服务的前提下,提供最优的容器资源配置,有效提高了集群的资源利用率;本发明不需要依赖尾延迟测量等对业务入侵较深的组件;本发明不需要依赖容器的过往历史数据;本发明从调度层级进行资源优化,相比于仅限节点容器扩缩容的方案,能够提供更加广阔的调节空间,进一步提高资源利用率。
附图说明
图1为本发明的集群自治系统架构示意图;
图2为深度强化学习网络示意图;
图3为调度器节点优选流程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
参见图1,本发明的基于深度强化学习的大规模容器集群自治系统包括数据采集代理模块、资源分配计算模块、硬件映射器、API服务器和调度器。
本实施例中,数据采集代理模块用于从容器集群中采集CPU利用率、缓存空间、内存空间与带宽、每指令平均周期数(cycle per instruction,CPI)等系统指标数据;维护并更新每个容器服务的系统指标;接收资源分配计算模块发送的资源查询请求,并将对应的查询结果返回给资源分配计算模块;其中,资源查询请求包括对应容器服务的系统标识符,资源查询请求返回体中包含所查询容器服务对应的系统指标。
进一步地,系统标识符包括容器服务的域名名称、Pod对应的节点、部署的应用等信息。
应当理解的是,容器服务指的是基于容器编排系统(如Kubernetes)的API组件,如Deployment、Statefulset等部署的应用,这些应用通过网络、存储的共享方式包装为一个整体,即Kubernetes中的Pod概念。底层使用若干个容器处理任务,这里的容器包括Docker以及其他实现了CRI(Container Runtime Interface,容器运行时接口)的容器技术、并使用Kubernetes的Service机制统一对外提供服务。通常还会使用网关与服务发现,将容器服务的Service以域名的形式对外提供。例如,在某大型互联网公司的容器服务实践中,会将域名称为Appkey,即对应于应用(Application,APP)的系统标识符。
进一步地,从容器集群中采集CPU利用率、缓存空间、内存空间与带宽、CPI等系统指标数据所使用的原理与pmu_exporter类似,可以直接读取计算机主板上的硬件计数寄存器,即可查询到所需要的系统指标如CPU、内存、CPI等重要数据。使用Prometheus时序数据库存储每一个系统指标的时序数据,即可完成对维每个容器服务的系统指标的维护以及更新。在读取到硬件计数器数据后,将其格式化为Prometheus时序数据库可以理解的格式,例如Exposition格式。通过这种方式自定义Prometheus时序数据库的exporter,公开一个HTTP端点,以便Prometheus时序数据库可以从中获取系统指标数据确保端点返回正确格式的系统指标数据,并遵循Prometheus时序数据库的要求,部署自定义exporter到目标环境,并确保Prometheus时序数据库可以访问它。资源查询请求通过请求Prometheus时序数据库提供的HTTP API接口,允许通过HTTP请求来查询系统指标数据。
本实施例中,资源分配计算模块用于向数据采集代理模块发送资源查询请求,以查询CPU利用率、缓存、内存空间与带宽等系统指标数据,并对接收到的系统指标数据进行分析和处理,以获取容器集群节点的运行规律和性能特征;使用价值网络对容器所在节点的服务质量进行评价,以获取评价结果;根据性能特征和评价结果制定对应的资源分配方案,并将各容器服务的资源分配方案发送给硬件映射器。
进一步地,容器集群节点的运行规律和性能特征具体包括:在容器服务的运行过程中,不同的资源分配方案会对应用的性能产生不同的影响。例如,在线的WEB应用对网络IO、缓存、内存带宽的请求量比较大,当向其分配的缓存较少时,其服务质量会受到严重影响,从而带来CPI的波动。对应用长期的CPI进行建模,将CPI按照平均值加上3倍的标准差计算阈值,如果超过这一阈值,则可以认为容器服务已经受到影响。
进一步地,对接收到的系统指标数据进行分析和处理,以获取容器集群节点的运行规律和性能特征,具体包括:使用强化学习方法进行建模以获取资源配置方案与应用的性能受影响情况的对应关系,并制定资源分配方案。其中,强化学习方法的建模包括定义状态空间(State Space)、动作空间(Action Space)、奖励函数(Reward Function)和状态转移(State Transition)。
具体地,状态空间表示问题的各个方面,对于容器服务优化,可以考虑以下状态因素:CPU资源的使用情况、内存带宽的使用情况、缓存的使用量等。动作空间定义了代理可以采取的不同动作,为了实现资源分配,动作可以是分配给容器的CPU和内存资源的百分比;例如,增加或减少CPU资源分配、内存带宽资源分配、缓存资源分配等,将每个动作映射到具体的资源分配百分比。奖励函数用于评估代理所采取的动作,并根据动作的效果提供奖励或惩罚;如容器服务的时延优化,奖励函数定义为CPI超过阈值次数的负值与资源节省的数量,如此,代理将受到鼓励,通过选择动作来减少CPI超过阈值的次数,并最大可能减少系统资源的使用量;这一奖励函数也可以认为是容器服务的服务质量。状态转移规定了在代理采取动作后,系统的状态如何更新,状态的更新通常受到动作的影响;例如,如果代理减少了内存带宽资源分配,那么CPI超过阈值的次数可能会上升,则状态转移方程为新的资源分配率=旧的利用率+CPI超阈值次数对应的内存带宽资源增加量。
进一步地,制定资源分配方案,并提供容器所在节点的服务质量评价结果,基于深度强化学习网络实现。选用多智能体连续动作空间优化的分支决斗Q网络(Branch Duel QNetwork,BDQ)模型,将每一个容器服务视为一个智能体,将多智能体系统中的每个智能体视为一个独立的Q学习代理,每个代理都有自身的状态空间和动作空间。该BDQ模型用于容器资源分配的优势在于它可以根据容器的需求和节点的资源情况,选择最优的资源分配方案,从而提高系统的资源利用率,保障服务质量。如图2所示,将每个容器视为一个智能体,从数据采集代理获取它们的状态,使用价值网络获取智能体的价值,并将所有智能体价值的加权总和作为节点服务质量的评估。同时,每个智能体可以通过共享模型参数来获得其他智能体的状态价值信息。具体来说,将对应容器的系统指标如CPU利用率,计算机硬件计数器等作为状态空间,系统资源配置作为动作空间,从数据采集代理模块获取当前容器集群中每个容器应用的CPU利用率、缓存空间、内存空间与带宽、CPI等指标数据。在训练过程中,每个代理都会根据自己的经验和其他代理的经验来更新自己的Q值函数,并选择最优的系统资源配置。每个智能体在训练过程中可以将自己的经验数据上传到共享模型中,随后每个智能体使用他们的策略网络来学习共享模型,得到智能体对应容器的动作空间价值。在考虑随机扰动的前提下,使用动作空间价值较高的资源分配方案。硬件映射器会将这一方案通过容器更新机制设置为实际容器的配额。在下一次循环中,可以获得容器的状态价值优化值,这一优化值可以用来更新价值网络与策略网络的网络参数。
进一步地,使用价值网络基于上述系统指标数据对容器所在节点的服务质量进行评价,以获取对容器应用的评价结果。服务质量包括CPI的超阈值次数与资源的使用量。价值网络结构包含了输入层、共享隐藏层、智能体特定隐藏层、输出层。在输入层,对于每个智能体,输入层应接受表示状态的观察数据,这包括CPU利用率、内存带宽、缓存状态等系统指标数据,以及其他信息,如智能体自身的标识符以用于区分不同智能体。将一个或多个共享隐藏层添加到价值网络中,这些共享隐藏层可以处理从当前节点所有智能体收集的状态观察数据,这有助于智能体学习如何协同合作以优化节点整体性能。在共享隐藏层之后,为每个智能体添加一个或多个智能体特定隐藏层,这些智能体特定隐藏层可以用于处理智能体特定的信息,以便它们可以根据自身状态和行为做出资源配置决策。输出层为每个智能体生成当前节点资源配置的打分,用来表示当前容器服务的服务质量,作为对容器应用的评价结果。价值网络参数更新的目标是最小化Q值的均方误差(Mean Squared Error,MSE),以逼近实际的累积奖励。Q值即CPI的超阈值次数与资源的使用量。使用经验回放缓冲区来存储代理与环境交互的经验数据。从缓冲区中随机采样一批经验数据。计算目标Q值,通常使用一个目标网络(Target Network)来计算。目标网络的参数是冻结的,以提高稳定性。目标Q值是根据下一个状态来计算的。计算损失,即当前Q值估计与目标Q值之间的均方误差。损失函数通常为(目标Q值-当前Q值)^2。使用损失函数的梯度来更新价值网络的参数。使用随机梯度下降(Stochastic Gradient Descent,SGD)来执行参数更新。
进一步地,使用策略网络计算对应的资源分配方案,策略网络结构与价值网络类似,但是最终的输出层同时使用隐藏层与价值网络的结果作为输入,为每个智能体生成一个动作,表示资源分配策略,如CPU和内存资源的分配百分比。每个智能体的输出层应与其可能的动作空间相匹配。策略网络用于学习对应的资源分配方案,参数更新的目标是最大化期望累积奖励。使用确定性策略梯度来更新策略网络的参数。它使用一个评估器网络(Critic Network)来估计状态-动作对的价值,用于计算策略梯度。从经验回放缓冲区中随机采样一批经验数据,包括状态、动作、奖励、下一个状态等信息。计算策略梯度,即目标值与当前策略值之间的梯度。目标值通常是累积奖励。使用策略梯度来更新策略网络的参数。采用梯度上升方法,沿着策略梯度的方向更新参数,以使期望累积奖励最大化。得到累计奖励最大化的资源分配方案。
综上所述,资源分配计算模块从数据采集代理模块获取当前容器集群中每个容器应用的CPU利用率、缓存空间、内存空间与带宽、CPI等系统指标数据,使用价值网络基于以上系统指标数据获取容器应用的服务质量评分,作为评价结果,使用策略网络计算相应的资源分配方案,通过硬件映射器修改容器应用的资源配置,将修改后改进的服务质量的评价结果作为深度强化学习网络的奖励函数,用于更新深度强化学习网络的网络参数。
本实施例中,硬件映射器用于从资源分配计算模块接收各容器服务的资源分配方案,并将资源分配方案映射到实际的硬件节点上。
本实施例中,API服务器用于提供API接口,以便用户可以通过API接口管理和监控容器集群节点的状态和性能;其中,API接口包括多种类型,如查询节点状态的API接口、查询应用程序性能指标的API接口以及修改资源分配方案的API接口等多种类型的API接口。
本实施例中,调度器用于从API服务器获取待调度应用程序信息;从数据采集代理模块获取容器集群节点资源信息;从资源分配计算模块获取价值网络对容器所在节点服务质量的评价结果;根据节点资源信息与评价结果将应用程序调度到最优容器节点上。
进一步地,根据节点资源信息与评价结果将应用程序调度到最优容器节点上,具体包括:调度器根据所有候选节点与当前容器的资源匹配程度进行打分,以获取匹配度得分;从资源分配计算模块获取容器所在节点服务质量的评价结果,根据该评价结果对容器节点服务质量进行打分,以获取服务质量得分;将每个容器节点的匹配度得分和服务质量得分进行加权求和,以获取每个容器节点的综合得分,选取综合得分中最大值对应的容器节点作为最优的容器节点。
具体地,调度器在传统的基于资源感知的调度策略上,新增了对节点服务质量的感知,从容器集群维度对资源利用率与服务质量进行了优化。如图3所示,在接收到容器调度请求后,调度器会首先根据所有候选节点与当前容器的资源匹配程度进行打分。可以选取不同的匹配度计算方法,比如最小请求算法,即节点的剩余资源量与节点的资源请求越接近,得分越高。随后根据节点服务质量进行打分,这一得分直接来源于节点上价值网络的打分,保证了容器在部署至节点时并不会对其他容器服务造成干扰。最终将每个节点的两次得分进行加权求和,选取其中得分较高的容器节点作为最优的容器节点。
值得一提的是,本发明还提供了一种基于上述基于深度强化学习的大规模容器集群自治系统的自治方法。
参见图1,本发明实施例所述的自治方法具体包括以下步骤:
(1)API服务器接收用户新增容器服务的请求;调度器从API服务器获取待调度应用程序信息,从数据采集代理模块获取容器集群集群节点资源信息,从资源分配计算模块获取容器所在节点服务质量的评价结果;根据节点资源信息与容器节点服务质量的评价结果,将应用程序调度到最优容器节点上。
(2)数据采集代理模块采集容器部署节点的CPU利用率、缓存空间、内存空间与带宽、CPI等系统指标数据;资源分配计算模块向数据采集代理模块发送容器系统指标的资源查询请求;数据采集代理模块将对应的查询结果返回给资源分配计算模块;资源分配计算模块计算资源分配方案,并提供容器所在节点的服务质量的评价结果,并向硬件映射器发送各容器服务的资源分配方案。
(3)硬件映射器将资源分配计算模块得出的资源分配方案映射到实际的硬件节点上,数据采集代理模块与资源分配计算模块再次计算容器所在节点服务质量,将两次服务质量的比较值作为奖励函数,更新深度强化学习网络的网络参数。
具体地,该自治方法包括:①用户向API服务器发起容器部署请求;②调度器从API服务器获取待调度应用程序信息;③调度器从数据采集代理模块获取候选节点的系统资源信息;④调度器从资源分配计算模块获取候选节点的服务质量评价结果;⑤调度器根据节点资源信息与节点服务质量评价结果,将应用程序调度到最优的节点上;⑥数据采集代理模块采集容器部署节点的CPU利用率、缓存空间、内存空间与带宽、CPI等指标数据;⑦资源分配计算模块向数据采集代理模块发送容器系统指标的查询请求,数据采集代理模块将查询结果返回资源分配计算模块;⑧资源分配计算模块计算资源分配方案,并提供容器所在节点的服务质量评价结果;⑨资源分配计算模块向硬件映射器发送各容器服务的资源分配方案。
上述中的最优容器节点选择机制接收到容器部署请求后,已经获取了所有候选节点的资源信息与服务质量保障信息,为了选取最优节点,需要对所有节点进行打分。除了对资源需求匹配度较高的节点打高分以外,还对整体服务质量较高的节点打高分。最后通过比较两者的加权分数确定最后的最优容器节点。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种基于深度强化学习的大规模容器集群自治系统,其特征在于,包括:
数据采集代理模块,用于从容器集群中采集CPU利用率、缓存空间、内存空间与带宽、每指令平均周期数这些系统指标数据;维护并更新每个容器服务的系统指标;接收资源分配计算模块发送的资源查询请求,并将对应的查询结果返回给资源分配计算模块;其中,资源查询请求包括对应容器服务的系统标识符,资源查询请求返回体中包含所查询容器服务对应的系统指标;
资源分配计算模块,用于向数据采集代理模块发送资源查询请求,以查询系统指标数据,并对接收到的系统指标数据进行分析和处理,以获取容器集群节点的运行规律和性能特征;使用价值网络对容器所在节点的服务质量进行评价,以获取评价结果;根据性能特征和评价结果制定对应的资源分配方案,并将各容器服务的资源分配方案发送给硬件映射器;
硬件映射器,用于从资源分配计算模块接收各容器服务的资源分配方案,并将资源分配方案映射到硬件节点上;
API服务器,用于提供API接口,API接口用于管理和监控容器集群节点的状态和性能;其中,API接口包括多种类型,包括查询节点状态的API接口、查询应用程序性能指标的API接口以及修改资源分配方案的API接口;和
调度器,用于从API服务器获取待调度应用程序信息,从数据采集代理模块获取容器集群集群节点资源信息,从资源分配计算模块获取容器所在节点服务质量的评价结果,根据节点资源信息与评价结果将应用程序调度到最优容器节点上。
2.根据权利要求1所述的基于深度强化学习的大规模容器集群自治系统,其特征在于,所述对接收到的系统指标数据进行分析和处理,以获取容器集群节点的运行规律和性能特征,具体包括:使用强化学习方法进行建模以获取资源配置方案与应用的性能受影响情况的对应关系,并制定资源分配方案;其中强化学习方法的建模包括定义状态空间、动作空间、奖励函数和状态转移。
3.根据权利要求1所述的基于深度强化学习的大规模容器集群自治系统,其特征在于,所述服务质量包括每指令平均周期数的超阈值次数与资源的使用量;
所述价值网络包括输入层、共享隐藏层、智能体特定隐藏层和输出层,其中,所述输入层接受智能体的状态观察数据,该状态观察数据包括系统指标数据;将一个或多个共享隐藏层添加到价值网络中,共享隐藏层用于处理当前节点收集的智能体的状态观察数据;在共享隐藏层之后,为每个智能体添加一个或多个智能体特定隐藏层,智能体特定隐藏层用于处理智能体的信息,以根据自身状态观察数据作出资源配置决策;输出层为每个智能体生成当前节点资源配置的打分,以表示当前容器服务的服务质量,作为评价结果。
4.根据权利要求1所述的基于深度强化学习的大规模容器集群自治系统,其特征在于,所述根据节点资源信息与评价结果将应用程序调度到最优容器节点上,具体包括:调度器根据所有候选节点与当前容器的资源匹配程度进行打分,以获取匹配度得分;从资源分配计算模块获取容器所在节点服务质量的评价结果,根据该评价结果对容器节点服务质量进行打分,以获取服务质量得分;将每个容器节点的匹配度得分和服务质量得分进行加权求和,以获取每个容器节点的综合得分,选取综合得分中最大值对应的容器节点作为最优的容器节点。
5.一种基于权利要求1-4中任一项所述的基于深度强化学习的大规模容器集群自治系统的自治方法,其特征在于,包括以下步骤:
(1)API服务器接收用户新增容器服务的请求;调度器从API服务器获取待调度应用程序信息,从数据采集代理模块获取容器集群集群节点资源信息,从资源分配计算模块获取容器所在节点服务质量的评价结果;根据节点资源信息与容器节点服务质量的评价结果,将应用程序调度到最优容器节点上;
(2)数据采集代理模块采集容器部署节点的系统指标数据;资源分配计算模块向数据采集代理模块发送容器系统指标的资源查询请求;数据采集代理模块将对应的查询结果返回给资源分配计算模块;资源分配计算模块计算资源分配方案,并提供容器所在节点的服务质量的评价结果,并向硬件映射器发送各容器服务的资源分配方案;
(3)硬件映射器将资源分配计算模块得出的资源分配方案映射到硬件节点上,数据采集代理模块与资源分配计算模块再次计算容器所在节点服务质量,将两次服务质量的比较值作为奖励函数,更新深度强化学习网络的网络参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311215604.3A CN117194034A (zh) | 2023-09-20 | 2023-09-20 | 基于深度强化学习的大规模容器集群自治系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311215604.3A CN117194034A (zh) | 2023-09-20 | 2023-09-20 | 基于深度强化学习的大规模容器集群自治系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117194034A true CN117194034A (zh) | 2023-12-08 |
Family
ID=88997711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311215604.3A Pending CN117194034A (zh) | 2023-09-20 | 2023-09-20 | 基于深度强化学习的大规模容器集群自治系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117194034A (zh) |
-
2023
- 2023-09-20 CN CN202311215604.3A patent/CN117194034A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yi et al. | Task optimization and scheduling of distributed cyber–physical system based on improved ant colony algorithm | |
CN115037749B (zh) | 一种大规模微服务智能多资源协同调度方法及系统 | |
CN109960573B (zh) | 一种基于智能感知的跨域计算任务调度方法及系统 | |
CN107404523A (zh) | 云平台自适应资源调度系统和方法 | |
CN109120715A (zh) | 一种云环境下动态负载均衡方法 | |
Duggan et al. | A multitime‐steps‐ahead prediction approach for scheduling live migration in cloud data centers | |
Xu et al. | Adaptive function launching acceleration in serverless computing platforms | |
CN110119399B (zh) | 基于机器学习的业务流程优化方法 | |
Banerjee et al. | Efficient resource utilization using multi-step-ahead workload prediction technique in cloud | |
Ismaeel et al. | Multivariate time series ELM for cloud data centre workload prediction | |
CN113641445B (zh) | 基于深度确定性策略的云资源自适应配置方法及系统 | |
Zhu et al. | A priority-aware scheduling framework for heterogeneous workloads in container-based cloud | |
Yang et al. | Design of kubernetes scheduling strategy based on LSTM and grey model | |
CN117349026A (zh) | 一种用于aigc模型训练的分布式算力调度系统 | |
CN111367632B (zh) | 一种基于周期特征的容器云调度方法 | |
CN110119268B (zh) | 基于人工智能的工作流优化方法 | |
CN117194034A (zh) | 基于深度强化学习的大规模容器集群自治系统及方法 | |
Sun et al. | Deep reinforcement-learning-guided backup for energy harvesting powered systems | |
Prado et al. | On providing quality of service in grid computing through multi-objective swarm-based knowledge acquisition in fuzzy schedulers | |
CN110135747B (zh) | 基于神经网络的流程定制方法 | |
Li et al. | Cloud Instance Resources Prediction Based on Hidden Markov Model | |
Naik et al. | A study on Optimal Resource Allocation Policy in Cloud Environment | |
Feng et al. | Heterogeneity-aware Proactive Elastic Resource Allocation for Serverless Applications | |
CN116820730B (zh) | 多引擎计算系统的任务调度方法、装置及存储介质 | |
CN114003121B (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 |