CN116069512A - 一种基于强化学习的Serverless高效资源分配方法及系统 - Google Patents
一种基于强化学习的Serverless高效资源分配方法及系统 Download PDFInfo
- Publication number
- CN116069512A CN116069512A CN202310286991.3A CN202310286991A CN116069512A CN 116069512 A CN116069512 A CN 116069512A CN 202310286991 A CN202310286991 A CN 202310286991A CN 116069512 A CN116069512 A CN 116069512A
- Authority
- CN
- China
- Prior art keywords
- module
- reinforcement learning
- request
- resource allocation
- decision
- 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.)
- Granted
Links
Images
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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提公开了一种基于强化学习的Serverless高效资源分配方法及系统,该方法是通过对尾延迟、决策频率以及资源效率关系的观察,在最小化无服务器系统的资源配置消耗的同时,保障设置的性能延迟目标。该方法充分利用高频率管理带来的资源高效管理优点,通过观察每个请求的状态,利用强化学习模型对处理请求的实例资源配置做出决策。针对函数工作流多阶段运行的特性并对决策模型的轻量化设计,使得高频率控制层隐藏了时间开销并降低了资源开销。本发明与最新的工作流任务调度系统作比较,提升了CPU利用率,并提供了99%的请求时延SLO(Service Level Objective,服务水平目标)保证,降低了端到端延迟方差。
Description
技术领域
本发明属于云计算技术领域,尤其涉及一种基于强化学习的Serverless高效资源分配方法及系统。
背景技术
无服务器计算的高扩展、易开发、细粒度以及低成本的特性使其成为当今微服务架构的主流方式,其被各大主流云提供商如亚马逊等所支持并迅速推广,其被广泛使用在Web应用、视频处理、机器学习推理等多种面向用户的应用场景。为了满足这些应用高扩展、高弹性的需求,这些复杂的应用服务被解构成一组无服务器函数,组成一个有向无环图。
在大部分情况下,这些面向用户的应用都有严苛的时间延迟需求。然而由于各种因素的影响,应用产生了较大的尾延迟,这使得这些应用的性能预测变得极其困难。当前的商业平台如亚马逊的无服务器平台Lambda,或开源平台如Open Whisk等,对应用的相应延迟不提供任何保证,而是依赖于开发人员决定函数的资源配置。因此在这些平台上,开发人员不得不选择较大资源配置(如内存、CPU等)来保障应用的SLO(Service LevelObjective,服务水平目标),造成了资源利用率低下的问题。
为了减少应用延迟的不确定性,平台需要有一个控制层进行管理。现有工作主要分成了定时或提前决定配置的主动类和阈值触发的被动类,这两类工作主流解决方式都依赖机器学习模型对资源配置。然而在现有工作的基础上,在进一步观察到1)被动类控制很难在资源效率和尾延迟之间进行权衡,高效的资源利用以高尾延迟为代价,反之亦然;2)主动类控制依赖机器学习模型的精准度,当预测误差较低时主动类资源效率将高于被动类;3)高频率的控制可以有效提高无服务器系统的资源效率;4)资源和时间开销会随着控制频率增加而增加,这可能会抵消高频率带来的好处。并且这些现象在函数工作流任务中变得更加明显与严峻。
此外发现,函数工作流组成的有向无环图DAG(Directed Acyclic Graph)图本身是马尔可夫过程。不同函数阶段在状态转移的每一步中,函数可以选择几种配置中的一个,并且转移概率取决于所选择的配置。与传统的监督学习或非监督学习不同,这个过程不存在所谓的对错,也无需对非最优解的精确地纠正。这是一种强调如何基于环境而行动,以取得最大化的预期利益的强化学习过程,其关注点在于寻找探索和利用的平衡,强调学习中的“探索-利用”的交换,这与探求Serverless资源高效分配技术的目标是一致的。
发明内容
针对现有技术的不足,本发明提供一种基于强化学习的Serverless高效资源分配方法及系统,该方法利用强化学习对每个请求进行针对性的资源配置决策调控,在有效提高资源利用率的同时保障99%的请求时间延迟目标。同时本发明利用流水线决策和容器管理机制,有效避免资源和时间开销对系统的影响。
本发明是通过以下技术方案来实现的:
一种基于强化学习的Serverless高效资源分配方法,该方法包括以下步骤:
(1)构建强化学习决策器:所述强化学习决策器是利用强化学习模型预测的,所述强化学习模型包含状态模块、策略模块、动作模块和奖励模块;
(2)决策流水线化:利用步骤(1)构建得到的强化学习决策器将流水线决策每个阶段函数的资源配置,并在每个决策过程中,强化学习决策器都会采用距离目标时间的剩余作为输入,并导出下一个函数的资源配置,使用当前执行函数的所记录的最大执行时间进行预估;
(3)容器管理:当步骤(2)强化学习决策出非一致的函数资源配置,则利用预热式的容器管理系统使函数执行实例在调度过程中转发到目标容器上执行;所述该预热式的容器管理系统包含负责未来请求到达率预测的预测模块、负责节点容器管理的代理模块和负责执行请求快速调度的转发模块;
(4)在每个请求到来时,利用步骤(2)的方法依次进行每个阶段的资源配置,在每次得到对应阶段资源配置后,利用步骤(3)中的转发模块调度请求到相应配置容器上执行计算。
进一步地,所述步骤(1)中状态模块主要由应用状态、请求状态、集群状态三种类型组成,状态模块利用图神经网络对应用DAG信息进行维度压缩;
所述应用状态用于描述工作流应用的情况,包括工作流有向无环图DAG的结构、每个函数的平均执行时间以及每个函数的平均资源利用率,即通过函数的离线分析获得的CPU、内存的平均资源利用率;
所述请求状态,用于描述访问负载的情况,包括每秒请求数QPS(Query PerSecond),即每秒请求数、到达目标时延SLO之前剩余时间以及工作流中尚未执行的函数数量,它们由请求监视器获取;
所述集群状态,用于描述物理资源的状况,包括可用的CPU、内存,它们由群集监视器获取。
进一步地,所述状态模块利用图神经网络对应用DAG信息进行维度压缩,具体为,使用GCN图卷积神经网络中的GraphSAGE方法,所述方法采用节点嵌入的方式,将节点图邻域的高维信息提取到密集向量嵌入中,快速生成全新图形嵌入的归纳能力,对各种工作流应用程序的资源分配需求;在应用状态信息被刻画获得后,系统将从其DAG图的尾部节点开始传递其应用状态信息,通过递归的方式,将各节点的信息传递给父节点以及根节点。
具体地,所述步骤(1)中策略模块基于Actor-Critic算法以及优势函数对状态信息进行计算;所述Actor为策略网络,所述Actor选用全连接神经网络,对每个动作都输出一个值,并使用SoftMax函数将值转换成对应的概率,并按照概率选取动作,负责选择行动并与环境进行互动;Critic为评价网络,即利用优势函数作为评价网络Critic,其和分别指累积经验的轨迹和平均经验的模拟逼近,用于对Actor的行为进行评分,Actor再根据Critic的打分情况,对自身的参数进行调整;所述动作模块对每种函数资源实现了独自的策略网络,并由各网络决定对应资源配置量。
具体地,所述步骤(1)中奖励模块利用资源配置量以及请求端到端执行时间作为奖惩值训练决策模块的准确性,其构建如下所示的函数进行奖励,其表达式为:
其中R代表函数分配的资源数量, W代表实际的资源浪费数量;代表请求到达后经过的时间,代表应用设置的目标时延,n代表该函数剩余的子函数数量。
具体地,所述步骤(2)中流水线决策即为在第一阶段执行时,决策器同时决策第二阶段的资源配置;在执行二阶段时决策第三阶段的资源配置,以此类推。
进一步地,所述步骤(3)中预热式的容器管理系统具体为,所述预测模块通过读取历史QPS数据,利用指数加权平均模型进行预测,在得到未来最大到达率后,使用在训练阶段以QPS划分的动作概率表,并将最大到达率与动作概率一一相乘得到未来一段时间窗口的容器实例数;在得到不同资源配置数量的容器实例数后,预测模块将把资源配置分配给不同的集群机器上,并由代理模块进行接收对应信息,即接收指令,所述代理模块接收指令后,先判断集群容器总数量,数量不足时冷启动容器,并在容器空闲时利用Cgroup修改配置,并将最终配置的实例的IP和端口发送给转发模块;所述转发模块维护多个不同资源配置容器IP的队列,当强化学习决策器决定执行的函数和对应配置后,转发模块通过队列出列得到一个可以执行的空闲容器IP,并将调度信息转发并调度该实例,在容器执行完毕后,将相关信息重新入列,以此复用容器节省冷启动的开销。
具体地,所述步骤(3)中预热式容器管理系统工作过程,即利用强化学习动作概率表以及预测的负载量,进行容器的配置。
具体地,所述步骤(4)中系统负责管理每次请求完整流程,包括决策、调度以及下一阶段函数的触发操作。
一种基于强化学习的Serverless高效资源分配系统,该系统包括以下模块:
网关模块:所述网关模块为在原先的系统网关中添加了一组接口,用于将请求转发到转发模块,并且系统网关利用Prometheus持续监控请求到达速率,并定期将统计数据发送给请求量预测模块以供决策;
控制器模块:所述控制器模块为主要模块,其包括流水线预测、强化学习决策器、转发模块和请求量预测模块,所述流水线预测利用编程语言中的信号量和协程以工作流方式管理应用程序的执行;所述强化学习决策器会将训练好的模型集成在本系统中,并同时通过容器监控程序观察应用程序、请求和集群状态,将状态传递给强化学习决策器;所述转发模块在内存中维护一个哈希队列,哈希队列存储有不同配置对应的IP信息,用于快速查找并发送请求;所述请求量预测模块利用网关传递的历史数据,定期的决策下一阶段的容器数量;
代理模块:所述代理模块是在容器管理平台的守护进程集上实现的此模块,该模块通过在集群中公开超文本传输协议服务端口,在接收到调用后执行资源调整操作,状态的资源使用操作系统的控制群组方法进行调整,其与通过修改容器管理平台的部署模块相关配置相比,控制群组方法不需要重启容器;所述状态的资源为处理器配额、内存;
模拟器模块:所述模拟器模块一个无服务器模拟器,用于培训强化学习策略网络,它是通过一个连续时间和离散事件驱动的引擎,模拟工作流请求的完整过程,并维护一个逻辑时钟以加快训练过程,在模型中分别使用32个神经元和16个神经元构成网络结构,并利用机器学习平台实现。
本发明的有益效果如下:
为了提升无服务器中资源利用效率的问题,现有的工作提出了被动式和主动式的动态调整策略。然而被动式的方法仅会在违规问题出现时才做出反应,并且决策选择在权衡为尾延迟和资源浪费时极其困难,主动预测式的动态决策依赖机器学习模型预测的精度,面对变化较大的场景很难有所成效。为了弥补以上两种方法的不足之处,本发明提出一种基于强化学习的请求级粒度函数工作流资源管理系统,针对每个的请求都进行资源配置决策,从而降低突发情况和粗粒度管理带来资源利用率低效问题。
相比于现有的工作,本发明提出了请求级粒度管理的资源配置策略,并设计了一种强化学习算法,针对每个请求到达的不同状态,决策无服务器函数工作流每一步的资源配置。同时,为了避免决策带来过高的时间开销问题,本发明提出了一种流水线式的预测方法,将预测过程与函数执行的过程并行执行,将线性增加的预测时间开销减少为单次决策时间开销。为了解决非一致资源配置导致冷启动的问题,本发明提出一种预热式容器管理方案,利用决策器的动作概率表提前预备好需要的容器实例。
相比于现有的技术,本发明具有显著的效果。本发明与现有最新的无服务器资源管理系统相比,降低了30%的资源使用量,并提供了99%的请求时延SLO保证,降低了1.9倍的端到端延迟方差。
附图说明
图1为本发明的系统架构示意图;
图2为本发明方法流程图;
图3为本发明强化学习模型实现示意图;
图4为本发明的系统实现示意图;
图5为本发明的系统流程示意图。
具体实施方式
为使本发明所介绍的方法技术、达成目的和效果更易于理解明白,下面结合具体实施方式和附图进一步对本发明进行阐述。
本发明是利用机器学习技术,即强化学习,它使代理能够在交互式环境中通过反复试错的方式,利用自身动作和经验的反馈进行学习,目标是让代理学习一个可以获得最大奖励的策略。在无服务器资源分配中,代理指的是控制器,环境是无服务器集群。它的目的是根据当前应用程序、请求和集群状态,找到控制器用于确定下一个实例的资源配置的资源分配策略。为了实现强化学习在请求级粒度函数工作流场景中的应用,本发明的首先构建强化学习模型,所述强化学习模型包括状态、策略、动作和奖励四个模块。
一种基于强化学习的Serverless高效资源分配方法,该方法包括以下步骤:
(1)构建强化学习决策器:所述强化学习决策器是利用强化学习模型预测的,所述强化学习模型包含状态模块、策略模块、动作模块和奖励模块;
(2)决策流水线化:利用步骤(1)构建得到的强化学习决策器将流水线决策每个阶段函数的资源配置,并在每个决策过程中,强化学习决策器都会采用距离目标时间的剩余作为输入,并导出下一个函数的资源配置,使用当前执行函数的所记录的最大执行时间进行预估;
(3)容器管理:当步骤(2)强化学习决策出非一致的函数资源配置,则利用预热式的容器管理系统使函数执行实例在调度过程中转发到目标容器上执行;所述该预热式的容器管理系统包含负责未来请求到达率预测的预测模块、负责节点容器管理的代理模块和负责执行请求快速调度的转发模块;
(4)在每个请求到来时,利用步骤(2)的方法依次进行每个阶段的资源配置,在每次得到对应阶段资源配置后,利用步骤(3)中的转发模块可以快速地调度请求到相应配置容器上执行计算。
具体为:
1、构建强化学习模型
(1.1)状态模块
状态模块描述了环境和代理的具体情况。本发明使用三种类型的信息定义无服务器资源分配中的状态。第一类应用状态,用于描述工作流应用的情况,包括工作流有向无环图DAG的结构、每个函数的平均执行时间以及每个函数的平均资源利用率,即CPU、内存的平均资源利用率,通过函数的离线分析获得的;第二类请求状态,用于描述访问负载的情况,包括每秒请求数QPS(Query Per Second),即每秒请求数、到达目标时延SLO之前剩余时间以及工作流中尚未执行的函数数量,它们由请求监视器获取;第三类集群状态,用于描述物理资源的状况,包括可用的CPU、内存,它们由群集监视器获取。
当无服务器工作流的DAG结构可能会发生显著变化,导致状态空间的大小不同,因此如何使其与RL网络输入层的固定大小相协调是一个挑战。本发明使用GCN(GraphConvolutional Network)图卷积神经网络中的GraphSAGE(Graph SAmple and aggreGatE)方法,所述方法采用节点嵌入的方式,将节点图邻域的高维信息提取到密集向量嵌入中,快速生成全新图形嵌入的归纳能力,可对各种工作流应用程序的资源分配需求。
在应用状态信息被刻画获得后,系统将从其DAG图的尾部节点开始传递其应用状态信息,通过递归的方式,将各节点的信息传递给父节点以及根节点。在这个过程中,本发明通过非线性函数加强应用特征的表达效果。
(1.2)策略
利用Actor-Critic算法作为本发明的策略网络算法,所述Actor是策略网络,负责选择行动并与环境进行互动;Critic是评价网络,用于对Actor的行为进行评分,之后Actor再根据Critic的打分情况,对自身的参数进行一定范围的调整。
本发明选用全连接神经网络作为本发明的Actor,它将对每个动作都输出一个值,并使用SoftMax函数将值转换成对应的概率,并安装概率选取动作,为能有效避免取最高值造成局部最优困境。同时,本发明利用优势函数作为本发明的评价网络Critic,其和分别指累积经验的轨迹和平均经验的模拟逼近,与直接使用数值进行计算的方法相比,这种方法方差较小收敛较快。
(1.3)动作
为每种类型的资源训练了一个独立的决策网络,并由各网络决定对应资源配置量。在保障决策精度的同时,显著提高了训练速度。
(1.4)奖励
由于控制器会根据请求和每个函数调整资源分配,因此将单独的请求视为一次完整的培训阶段。本发明构建如下所示的函数进行奖励,其表达式为:
其中R代表函数分配的资源数量, W代表实际的资源浪费数量;代表请求到达后经过的时间,代表应用设置的目标时延,n代表该函数剩余的子函数数量。为了最大限度地减少资源的使用,本发明将按照使用的资源配置惩罚代理,对不同阶段的SLO违规行为进行了不同的处理,即早期的服务水平目标SLO违规行为比后期严重得多,因此出现超时的阶段将乘以子函数数量作为惩罚值。和是常数参数,用来控制两者之间的关系,应该设置比大,才能提升训练速度和效果。
2、流水线化模块
对于一个应用工作流而言,请求到达时,强化学习决策器将决策第一阶段函数的资源配置。在第一阶段执行时,决策器将同时决策第二阶段的资源配置。同样,在执行二阶段时决策第三阶段的资源配置,以此类推。对于非线性的DAG图结构,决策器将识别出每个函数的最后开始的父函数,并在此父函数执行时进行并行预测,流水线化决策将线性增加的时间开销缩减至单一推理的时间。
在每个决策过程中,强化学习决策器都会采用距离目标时间的剩余作为输入,并导出下一个函数的资源配置,但在并行决策时并没法知道下个阶段执行时所剩余的时间。对此,本发明使用当前执行函数的所记录的最大执行时间进行预估。
3、容器管理
主要分成负责未来请求到达率预测的预测模块,负责节点容器管理的代理模块,负责执行请求快速调度的转发器模块。
(3.1)预测模块
预测模块通过读取历史QPS数据,利用指数加权平均模型(EWMA)进行预测,同时所将得结果提升20%的偏移量。在得到未来最大到达率后,本发明使用在训练阶段以QPS划分的动作概率表,并将最大到达率与动作概率一一相乘得到未来一段时间窗口的容器实例数。同时本发明持续观察容器运行排队情况,当某配置容器的排队时间超过冷启动时间时,冷启动一个新的实例。
(3.2)代理模块
在得到不同资源配置数量的容器实例数后,预测模块将贪心地把资源配置分配给不同的集群机器上,并由代理模块进行接收对应信息。在接收到指令后,代理模块先判断集群容器总数量,数量不足时冷启动容器,并在容器空闲时利用Cgroup修改配置。并将最终配置的实例的IP和端口发送给转发模块。
(3.3)转发模块
转发模块维护多个不同资源配置容器IP的队列。当强化学习决策器决定执行的函数和对应配置后,转发模块通过队列出列得到一个可以执行的空闲容器IP,并将调度信息转发并调度该实例。在容器执行完毕后,将相关信息重新入列,以此复用容器节省冷启动的开销。
本发明的系统架构:图1显示了本发明的体系结构图,本发明的核心是资源效率和可预测的延迟都可以通过基于强化学习的请求粒度资源分配策略同时实现。它通过部署在物理服务器上的控制器协作来管理请求转发、扩展和资源分配。在本发明的控制器中,有两个核心组件:强化学习预测器决定每个实例的资源配置;流水线化隐藏每个决策过程产生的时间开销,避免了累积效应导致的SLO违规。由于无服务器计算在处理过程中通常采用“一个请求到一个状态映射”,每个请求的资源分配是通过在每个请求和每个函数中调用强化学习决策器来实现的。即使多个请求共享同一实例(即,为新请求重用现有实例),每个请求会重复调用决策器,以调整实例的资源分配。
本发明的方法流程具体的来说,当用户发出请求时,它首先到达网关, 网关接受请求,并将其发送到转发模块用于搜索可用实例。工作负载(即QPS)由预测模块持续监控,它使用指数加权移动平均(EWMA)算法来预测下一个时间间隔内的请求的数量。如果实例数量不足以在接下来的时间间隔内处理请求,控制器通过贪心法将实例划分到一个或多个服务器,通知其代理模块扩展更多实例并调整实例的资源配置。对于每个工作流应用程序的请求,控制器将资源分配决策和函数计算组织到流水线化模块中,根据其工作流结构,将当前监控到的状态信息发送给强化学习决策器,以此获取能满足SLO且资源浪费量最少的配置信息。被决策完毕的函数由转发模块负责查找符合条件的容器实例,并负责调度请求给对应的实例。在函数执行完毕后,控制器观察当前请求是否执行完毕,若剩余未执行请求,重复以上步骤,直到函数工作流最终函数执行完毕。
关于本发明的强化学习模型实现:图2展示了强化学习模型实现架构,在系统收集到Serverless集群环境下的请求、应用以及集群相应状态后,交付给GCN模型进行状态的压缩,使二维信息转变为一维信息的内容。在对状态数据进行处理后,将其交给策略网络进行计算,得到对应动作。动作被返回给Serverless函数集群中,并以该值作为请求阶段的资源配置来实现对请求的管控。以上便是一次完整的资源配置决策过程。
关于本发明的强化学习模型实现:图3展示了强化学习模型实现架构,系统对Serverless集群进行状态监控,在收集到集群环境下的请求、应用以及集群相应状态后,交付给图神经网络进行状态的压缩,图神经网络模型利用递归传递的方法,使应用流水线从二维信息转变为一维信息的内容。在对状态数据进行处理后,将其交给策略网络进行计算,得到对应动作。动作被返回给Serverless函数集群中,控制器以该值作为请求阶段的资源配置来实现对请求的管理。以上便是一次完整的资源配置决策过程。
本发明的系统实现:本发明在一个开源的无服务器平台OpenFaaS中实现,它是一个基于Go和Kubernetes的开源无服务器平台。如图4所示,本发明重用OpenFaaS提供的请求方法,主要修改与请求调度和资源分配相关的模块,包括OpenFaaS网关和OpenFaaS处理器。本发明还添加了两个新模块,以便于部署和快速强化学习训练:代理和模拟器。
所述网关模块:本发明在原先的OpenFaaS网关中添加了一组接口,用于将请求转发到转发模块。并且OpenFaaS网关利用监控程序(Prometheus)持续监控请求到达速率(querypersecond,QPS),并定期将统计数据发送给QPS预测模块以供决策。
关于控制器模块:包括流水线预测、强化学习决策器、转发模块和QPS预测模块,流水线预测利用Go语言中的信号量和Goroutine以工作流方式管理应用程序的执行。强化学习决策器是通过Tensorflow Go将训练好的模型集成在OpenFaaS之中。同时本发明通过Prometheus和Cadvisor两种容器监控程序观察应用程序、请求和集群状态,将状态传递给强化学习决策器,决策器利用图神经网络将数据进行转换和组合,并输入到对应的强化学习模型中进行决策。转发模块在内存中维护一个哈希队列,哈希队列存储有不同配置对应的IP信息,用于快速查找并发送请求。QPS预测模块利用OpenFaaS网关传递的历史数据,定期的决策下一阶段的容器数量。
所述代理模块:本发明在Kubernetes的守护进程集(DaemonSet)上实现了这个模块。它通过在集群中公开HTTP服务端口,在接收到调用后执行资源调整操作。状态的资源(例如CPU配额、内存等)使用Cgroup进行调整。与通过修改Kubernetes的部署模块(Deployment)相关配置相比,Cgroup不需要重启容器。
所述模拟器:本发明设计了一个无服务器模拟器,以更高效地培训强化学习策略网络。它通过一个连续时间和离散事件驱动的引擎,模拟工作流请求的完整过程,并维护一个逻辑时钟以加快训练过程。训练一个模型需要4个小时。本发明在模型中分别使用32个神经元和16个神经元构成网络结构,并利用tensorflow实现。在运行过程中,本发明用glorot方法初始化参数。
如图5所示,本发明还提供一种基于强化学习的Serverless高效资源分配系统,该系统包括以下模块:
网关模块:所述网关模块为在原先的系统网关中添加了一组接口,用于将请求转发到转发模块,并且系统网关利用一组方法持续监控请求到达速率,并定期将统计数据发送给请求量预测模块以供决策;
控制器模块:所述控制器模块为主要模块,其包括流水线预测、强化学习决策器、转发模块和请求量预测模块,所述流水线预测利用编程语言中的信号量和协程以工作流方式管理应用程序的执行;所述强化学习决策器会将训练好的模型集成在本系统中,并同时通过容器监控程序观察应用程序、请求和集群状态,将状态传递给强化学习决策器;所述转发模块在内存中维护一个哈希队列,哈希队列存储有不同配置对应的IP信息,用于快速查找并发送请求;所述请求预测模块利用网关传递的历史数据,定期的决策下一阶段的容器数量;
代理模块:所述代理模块是在容器管理平台的守护进程集上实现的此模块,该模块通过在集群中公开超文本传输协议服务端口,在接收到调用后执行资源调整操作,状态的资源使用操作系统的控制群组方法进行调整,其与通过修改容器管理平台的部署模块相关配置相比,控制群组方法不需要重启容器;所述状态的资源为处理器配额、内存。
模拟器模块:所述模拟器模块一个无服务器模拟器,用于培训强化学习策略网络,它是通过一个连续时间和离散事件驱动的引擎,模拟工作流请求的完整过程,并维护一个逻辑时钟以加快训练过程,在模型中分别使用32个神经元和16个神经元构成网络结构,并利用最常用的机器学习平台实现。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于强化学习的Serverless高效资源分配方法,其特征在于,该方法包括以下步骤:
(1)构建强化学习决策器:所述强化学习决策器是利用强化学习模型预测的,所述强化学习模型包含状态模块、策略模块、动作模块和奖励模块;
(2)决策流水线化:利用步骤(1)构建得到的强化学习决策器将流水线决策每个阶段函数的资源配置,并在每个决策过程中,强化学习决策器都会采用距离目标时间的剩余作为输入,并导出下一个函数的资源配置,使用当前执行函数的所记录的最大执行时间进行预估;
(3)容器管理:当步骤(2)强化学习决策出非一致的函数资源配置,则利用预热式的容器管理系统使函数执行实例在调度过程中转发到目标容器上执行;所述该预热式的容器管理系统包含负责未来请求到达率预测的预测模块、负责节点容器管理的代理模块和负责执行请求快速调度的转发模块;
(4)在每个请求到来时,利用步骤(2)的方法依次进行每个阶段的资源配置,在每次得到对应阶段资源配置后,利用步骤(3)中的转发模块调度请求到相应配置容器上执行计算。
2.根据权利要求1所述的一种基于强化学习的Serverless高效资源分配方法,其特征在于,所述步骤(1)中状态模块主要由应用状态、请求状态、集群状态三种类型组成,状态模块利用图神经网络对应用DAG信息进行维度压缩;
所述应用状态用于描述工作流应用的情况,包括工作流有向无环图DAG的结构、每个函数的平均执行时间以及每个函数的平均资源利用率,即通过函数的离线分析获得的CPU、内存的平均资源利用率;
所述请求状态,用于描述访问负载的情况,包括每秒请求数QPS(Query Per Second),即每秒请求数、到达目标时延SLO之前剩余时间以及工作流中尚未执行的函数数量,它们由请求监视器获取;
所述集群状态,用于描述物理资源的状况,包括可用的CPU、内存,它们由群集监视器获取。
3.根据权利要求2所述的一种基于强化学习的Serverless高效资源分配方法,其特征在于,所述状态模块利用图神经网络对应用DAG信息进行维度压缩,具体为,使用GCN图卷积神经网络中的GraphSAGE方法,所述方法采用节点嵌入的方式,将节点图邻域的高维信息提取到密集向量嵌入中,快速生成全新图形嵌入的归纳能力,对各种工作流应用程序的资源分配需求;在应用状态信息被刻画获得后,系统将从其DAG图的尾部节点开始传递其应用状态信息,通过递归的方式,将各节点的信息传递给父节点以及根节点。
4.根据权利要求1所述的一种基于强化学习的Serverless高效资源分配方法,其特征在于,所述步骤(1)中策略模块基于Actor-Critic算法以及优势函数对状态信息进行计算;所述Actor为策略网络,所述Actor选用全连接神经网络,对每个动作都输出一个值,并使用SoftMax函数将值转换成对应的概率,并按照概率选取动作,负责选择行动并与环境进行互动;Critic为评价网络,即利用优势函数作为评价网络Critic,其和分别指累积经验的轨迹和平均经验的模拟逼近,用于对Actor的行为进行评分,Actor再根据Critic的打分情况,对自身的参数进行调整;所述动作模块对每种函数资源实现了独自的策略网络,并由各网络决定对应资源配置量。
5.根据权利要求1所述的一种基于强化学习的Serverless高效资源分配方法,其特征在于,所述步骤(1)中奖励模块利用资源配置量以及请求端到端执行时间作为奖惩值训练决策模块的准确性,其构建如下所示的函数进行奖励,其表达式为:
;
其中R代表函数分配的资源数量, W代表实际的资源浪费数量;代表请求到达后经过的时间,代表应用设置的目标时延,n代表该函数剩余的子函数数量。
6.根据权利要求1所述的一种基于强化学习的Serverless高效资源分配方法,其特征在于,所述步骤(2)中流水线决策即为在第一阶段执行时,决策器同时决策第二阶段的资源配置;在执行二阶段时决策第三阶段的资源配置,以此类推。
7.根据权利要求1所述的一种基于强化学习的Serverless高效资源分配方法,其特征在于,所述步骤(3)中预热式的容器管理系统具体为,所述预测模块通过读取历史QPS数据,利用指数加权平均模型进行预测,得到未来最大到达率,使用在训练阶段以QPS划分的动作概率表,并将最大到达率与动作概率一一相乘得到未来一段时间窗口的容器实例数;在得到不同资源配置数量的容器实例数后,预测模块将把资源配置分配给不同的集群机器上,并由代理模块进行接收对应信息,即接收指令,所述代理模块接收指令后,先判断集群容器总数量,数量不足时冷启动容器,并在容器空闲时利用Cgroup修改配置,并将最终配置的实例的IP和端口发送给转发模块;所述转发模块维护多个不同资源配置容器IP的队列,当强化学习决策器决定执行的函数和对应配置后,转发模块通过队列出列得到一个可以执行的空闲容器IP,并将调度信息转发并调度该实例,在容器执行完毕后,将相关信息重新入列,以此复用容器节省冷启动的开销。
8.根据权利要求1所述的一种基于强化学习的Serverless高效资源分配方法,其特征在于,所述步骤(3)中预热式容器管理系统工作过程,即利用强化学习动作概率表以及预测的负载量,进行容器的配置。
9.根据权利要求1所述的一种基于强化学习的Serverless高效资源分配方法,其特征在于,所述步骤(4)中系统负责管理每次请求完整流程,包括决策、调度以及下一阶段函数的触发操作。
10.一种基于强化学习的Serverless高效资源分配系统,其特征在于,该系统包括以下模块:
网关模块:所述网关模块为在原先的系统网关中添加了一组接口,用于将请求转发到转发模块,并且系统网关利用Prometheus持续监控请求到达速率,并定期将统计数据发送给请求量预测模块以供决策;
控制器模块:所述控制器模块为主要模块,其包括流水线预测、强化学习决策器、转发模块和请求量预测模块,所述流水线预测利用编程语言中的信号量和协程以工作流方式管理应用程序的执行;所述强化学习决策器会将训练好的模型集成在本系统中,并同时通过容器监控程序观察应用程序、请求和集群状态,将状态传递给强化学习决策器;所述转发模块在内存中维护一个哈希队列,哈希队列存储有不同配置对应的IP信息,用于快速查找并发送请求;所述请求量预测模块利用网关传递的历史数据,定期的决策下一阶段的容器数量;
代理模块:所述代理模块是在容器管理平台的守护进程集上实现的此模块,该模块通过在集群中公开超文本传输协议服务端口,在接收到调用后执行资源调整操作,状态的资源使用操作系统的控制群组方法进行调整,其与通过修改容器管理平台的部署模块相关配置相比,控制群组方法不需要重启容器;所述状态的资源为处理器配额、内存;
模拟器模块:所述模拟器模块一个无服务器模拟器,用于培训强化学习策略网络,它是通过一个连续时间和离散事件驱动的引擎,模拟工作流请求的完整过程,并维护一个逻辑时钟以加快训练过程,在模型中分别使用32个神经元和16个神经元构成网络结构,并利用机器学习平台实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310286991.3A CN116069512B (zh) | 2023-03-23 | 2023-03-23 | 一种基于强化学习的Serverless高效资源分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310286991.3A CN116069512B (zh) | 2023-03-23 | 2023-03-23 | 一种基于强化学习的Serverless高效资源分配方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116069512A true CN116069512A (zh) | 2023-05-05 |
CN116069512B CN116069512B (zh) | 2023-08-04 |
Family
ID=86171712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310286991.3A Active CN116069512B (zh) | 2023-03-23 | 2023-03-23 | 一种基于强化学习的Serverless高效资源分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069512B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225728A (zh) * | 2023-05-09 | 2023-06-06 | 北京星辰天合科技股份有限公司 | 基于协程的任务执行方法、装置、存储介质及电子设备 |
CN116257363A (zh) * | 2023-05-12 | 2023-06-13 | 中国科学技术大学先进技术研究院 | 资源调度方法、装置、设备及存储介质 |
CN117093330A (zh) * | 2023-10-16 | 2023-11-21 | 南京奕起嗨信息科技有限公司 | 无服务器计算中的容器管理方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597048A (zh) * | 2020-05-15 | 2020-08-28 | 上海交通大学 | 基于服务质量的微服务调度方法、系统及电子设备 |
CN112598129A (zh) * | 2021-03-03 | 2021-04-02 | 之江实验室 | 基于ReRAM神经网络加速器的可调硬件感知的剪枝和映射框架 |
CN114237869A (zh) * | 2021-11-17 | 2022-03-25 | 中国人民解放军军事科学院国防科技创新研究院 | 基于强化学习的Ray双层调度方法、装置和电子设备 |
CN114490049A (zh) * | 2022-01-17 | 2022-05-13 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 在容器化边缘计算中自动分配资源的方法及系统 |
CN114691363A (zh) * | 2022-03-28 | 2022-07-01 | 福州大学 | 基于深度强化学习的云数据中心自适应高效资源分配方法 |
CN115686846A (zh) * | 2022-10-31 | 2023-02-03 | 重庆理工大学 | 边缘计算中融合图神经网络和强化学习的容器集群在线部署方法 |
US11574243B1 (en) * | 2019-06-25 | 2023-02-07 | Amazon Technologies, Inc. | Heterogeneous compute instance auto-scaling with reinforcement learning |
-
2023
- 2023-03-23 CN CN202310286991.3A patent/CN116069512B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11574243B1 (en) * | 2019-06-25 | 2023-02-07 | Amazon Technologies, Inc. | Heterogeneous compute instance auto-scaling with reinforcement learning |
CN111597048A (zh) * | 2020-05-15 | 2020-08-28 | 上海交通大学 | 基于服务质量的微服务调度方法、系统及电子设备 |
CN112598129A (zh) * | 2021-03-03 | 2021-04-02 | 之江实验室 | 基于ReRAM神经网络加速器的可调硬件感知的剪枝和映射框架 |
CN114237869A (zh) * | 2021-11-17 | 2022-03-25 | 中国人民解放军军事科学院国防科技创新研究院 | 基于强化学习的Ray双层调度方法、装置和电子设备 |
CN114490049A (zh) * | 2022-01-17 | 2022-05-13 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 在容器化边缘计算中自动分配资源的方法及系统 |
CN114691363A (zh) * | 2022-03-28 | 2022-07-01 | 福州大学 | 基于深度强化学习的云数据中心自适应高效资源分配方法 |
CN115686846A (zh) * | 2022-10-31 | 2023-02-03 | 重庆理工大学 | 边缘计算中融合图神经网络和强化学习的容器集群在线部署方法 |
Non-Patent Citations (3)
Title |
---|
NIMA MAHMOUDI: "Optimizing serverless computing: introducing an adaptive function placement algorithm", CASCON \'19: PROCEEDINGS OF THE 29TH ANNUAL INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND SOFTWARE ENGINEERING, pages 203 - 213 * |
张晓龙;: "数字经济环境下的私有云平台设计探讨", 智能物联技术, no. 02, pages 5 - 10 * |
曹万里: "基于强化学习的在线协任务调度与分配", 万方学位论文 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225728A (zh) * | 2023-05-09 | 2023-06-06 | 北京星辰天合科技股份有限公司 | 基于协程的任务执行方法、装置、存储介质及电子设备 |
CN116225728B (zh) * | 2023-05-09 | 2023-07-14 | 北京星辰天合科技股份有限公司 | 基于协程的任务执行方法、装置、存储介质及电子设备 |
CN116257363A (zh) * | 2023-05-12 | 2023-06-13 | 中国科学技术大学先进技术研究院 | 资源调度方法、装置、设备及存储介质 |
CN117093330A (zh) * | 2023-10-16 | 2023-11-21 | 南京奕起嗨信息科技有限公司 | 无服务器计算中的容器管理方法及装置 |
CN117093330B (zh) * | 2023-10-16 | 2023-12-22 | 南京奕起嗨信息科技有限公司 | 无服务器计算中的容器管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116069512B (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116069512B (zh) | 一种基于强化学习的Serverless高效资源分配方法及系统 | |
Bhattacharjee et al. | Barista: Efficient and scalable serverless serving system for deep learning prediction services | |
CN108958916B (zh) | 一种移动边缘环境下工作流卸载优化方法 | |
CN115037749B (zh) | 一种大规模微服务智能多资源协同调度方法及系统 | |
Liao et al. | Dependency-aware application assigning and scheduling in edge computing | |
CN115248728A (zh) | 面向智能计算的分布式训练任务调度方法、系统和装置 | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN113806018B (zh) | 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法 | |
CN113822456A (zh) | 一种云雾混构环境下基于深度强化学习的服务组合优化部署方法 | |
Mostafavi et al. | A stochastic approximation approach for foresighted task scheduling in cloud computing | |
Jain et al. | Qos-aware task offloading in fog environment using multi-agent deep reinforcement learning | |
Han et al. | EdgeTuner: Fast scheduling algorithm tuning for dynamic edge-cloud workloads and resources | |
CN115022332A (zh) | 一种边缘计算中基于深度强化学习的动态服务放置方法 | |
CN113946423A (zh) | 基于图注意力网络的多任务边缘计算调度优化方法 | |
Fu et al. | Distributed reinforcement learning-based memory allocation for edge-PLCs in industrial IoT | |
Tao et al. | DRL-Driven Digital Twin Function Virtualization for Adaptive Service Response in 6G Networks | |
CN117331693A (zh) | 基于dag的边缘云的任务卸载方法、装置及设备 | |
CN116009990B (zh) | 基于宽注意力机制的云边协同元强化学习计算卸载方法 | |
Bensalem et al. | Towards optimal serverless function scaling in edge computing network | |
CN113377503A (zh) | 一种协作式ai的任务调度方法、装置与系统 | |
CN116367190A (zh) | 一种面向6g移动网络的数字孪生功能虚拟化方法 | |
CN115756789A (zh) | 一种针对深度学习推理服务系统的gpu调度优化方法 | |
CN113747504A (zh) | 多接入边缘计算联合任务卸载和资源分配的方法及系统 | |
Gao et al. | Deep Reinforcement Learning and Markov Decision Problem for Task Offloading in Mobile Edge Computing | |
Kortas et al. | Performance impact of the MVMM algorithm for virtual machine migration in data centres |
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 |