CN115086189A - 一种面向无服务器计算的服务资源弹性伸缩方法和系统 - Google Patents
一种面向无服务器计算的服务资源弹性伸缩方法和系统 Download PDFInfo
- Publication number
- CN115086189A CN115086189A CN202210554439.3A CN202210554439A CN115086189A CN 115086189 A CN115086189 A CN 115086189A CN 202210554439 A CN202210554439 A CN 202210554439A CN 115086189 A CN115086189 A CN 115086189A
- Authority
- CN
- China
- Prior art keywords
- service
- resource
- elastic
- elastic expansion
- analysis process
- 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
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000013468 resource allocation Methods 0.000 claims abstract description 15
- 238000012544 monitoring process Methods 0.000 claims abstract description 9
- 238000004458 analytical method Methods 0.000 claims description 72
- 230000006870 function Effects 0.000 claims description 66
- 230000008569 process Effects 0.000 claims description 66
- 230000004044 response Effects 0.000 claims description 20
- 230000006399 behavior Effects 0.000 claims description 18
- 230000000007 visual effect Effects 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 6
- 230000003044 adaptive effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012804 iterative process Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 230000006872 improvement Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000008602 contraction Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5051—Service on demand, e.g. definition and deployment of services in real time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5009—Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种面向无服务器计算的服务资源弹性伸缩方法和系统。该方法的步骤包括:配置无服务器计算服务的部署信息,完成服务部署;监测已部署的服务的运行状态;对服务发送负载请求,收集服务的资源使用指标数据,分析服务的资源偏好;根据服务性能表现评估服务状态;计算此次服务资源供给所产生的价值,并更新服务状态的价值表;进行多次服务资源调整后,计算服务弹性伸缩的关键参数;通过服务的资源配置和服务性能表现进一步计算出服务的弹性比等弹性伸缩指标;根据服务的弹性伸缩指标信息,生成无服务器计算服务的自适应弹性伸缩策略。本发明能够在保证应用服务的可用性的同时改善资源利用率,实现资源成本与服务性能的平衡。
Description
技术领域
本发明涉及一种面向无服务器计算的服务资源弹性伸缩方法和系统,属于云服务和计算技术领域。
背景技术
如今,无服务器计算(Serverless Computing)提供了具有动态扩展和细粒度资源计费的“函数即服务”,使云计算服务模型的格局发生重大变化。根据Gartner的报告,无服务器计算是云计算模型从基础架构即服务(IaaS)到平台即服务(PaaS)到函数即服务(FaaS)的演进,预计到2022年,这种趋势将成为一种规范。同时,在基于FaaS(Function asa Service)平台上构建的应用程序越来越多,FaaS是一种新型的无服务计算模型,它允许开发人员使用由供应商管理的任意事件驱动函数来编写应用程序,提供基于事件驱动架构的松耦合软件组件和服务,而无需配置或管理任何物理服务器。
使用无服务器计算产品时,开发人员只需将复杂的源代码业务逻辑封装到独立的微服务中,并定义用于执行这些函数的触发器(例如HTTP请求或一些平台绑定的系统事件),这些微服务仅通过特定的应用程序接口(API)相互通信。新范式可以降低构建分布式企业应用程序的运营成本。首先,平台提供商仅以比服务器等典型云服务更精细的粒度向开发人员收费。其次,开发人员只需要针对每个系统事件设计和实现一组细粒度的响应。因此,一旦一组预定义的事件发生,管理平台负责异步执行适当的响应。理想情况下,使用FaaS的应用程序开发人员可以从简单的部署,减少的操作工作量和按需付费的价格中受益。而从平台提供商的角度来看,提供商采用“高效”资源供给策略用尽可能少的资源将不同用户的无服务器计算应用程序部署到服务器中,从而提高资源效率降低成本。因此,寻找这种最佳的资源弹性策略面临着用户服务性能最大化和供应商资源成本最小化的权衡挑战,而无服务器计算的按需计费这一特性更进一步地复杂化了这一挑战。
无服务器计算服务通常应用于大数据处理、图像视频处理、自然语言处理、web应用等场景,这些场景的终端用户使用交互式Web或移动界面通过RESTful API访问这些服务。根据用户提供的输入,这些应用服务推断目标值并将计算结果返回给用户。例如,语音识别系统将口语转译为文本。这些计算服务通常采用容器化技术并封装了所有必需的依赖环境。此外,这些计算密集型应用的无状态性和负载突发的特性使它们非常适合无服务器计算范式。因此,这些服务非常适合使用函数即服务方法以事件驱动的方式进行托管,其中在某些触发器或事件(例如,传入请求)发生时执行这些函数,无服务器计算平台提供商为这些服务提供托管环境并确保满足SLO(Service Level Objectives)。然而,为这些服务做出有效的资源管理决策是一个挑战,因为工作负载会动态波动。因此,平台需要能够根据需求自动、即时地对资源进行弹性伸缩,以应对负载波动。在负载增大时,增加资源供给以保证服务性能。同样,当应用程序没有负载时,函数实例会缩放到零以保持最少的空闲资源。
在无服务器计算中,云服务提供商需要保证用户函数的可扩展性和弹性,这包括主动地进行资源弹性伸缩以应对访问负载和未来预期的负载,由于这些预测和资源弹性伸缩的决策需要在很少或根本没有应用程序相关先验知识的情况下做出,因此给云服务提供商带来巨大的挑战。服务资源的弹性伸缩对于节约资源成本、提升资源利用率至关重要,为了保障服务质量,传统的弹性伸缩模式是根据人为经验并参考服务资源的历史数据手动配置相关参数,运维人员通常倾向于配置较多的资源冗余从而保证服务性能。
尽管目前已有大量关于无服务器计算资源管理的文献,这些工作主要集中在研究如何对应用程序工作负载建模和预测,从而指导资源初始化分配并探索满足客户和云供应商期望的调度策略。然而在生产环境中,新上线的应用由于缺乏历史数据,难以对应用响应延迟和负载变化进行建模和预测。另有少数文献致力于研究针对具有负载波动性和延迟敏感特性应用的资源弹性伸缩,其目标是在实现高资源利用率的同时保障用户的服务质量要求(例如响应延迟)。通常,资源的弹性伸缩包括水平和垂直两个维度。在实现中,一些开源无服务器框架采用Kubernetes Horizontal Pod Autoscaler(HPA)根据CPU或内存利用率的阈值指导资源的弹性伸缩。大多数垂直弹性伸缩技术依赖于Linux容器,它可以利用cgroups技术实时调整容器资源。
在无服务器计算中,新部署的函数服务常常具有服务可用性约束,对服务响应延迟有严格要求,且普遍缺乏可靠的历史资源数据,需要更具针对性的服务弹性伸缩策略。如果不能及时通过服务资源的弹性伸缩调控应对负载所需的资源,将造成用户函数的不可用,高可用性对于无服务器计算系统非常重要,一个健壮的系统需要能够稳定持续地提供服务,尽可能地避免服务突发负载造成的服务响应延迟或失效。
综上所述,现有无服务器平台资源弹性伸缩主要存在以下问题:(1)目前开源的无服务器计算平台大多通过best-effort的机制以节省资源开销,从而加剧了应用服务性能的波动,无法保证延迟敏感型应用对响应延迟的实时性需求;(2)对于新部署的无服务器计算服务,平台普遍缺乏历史运行数据,因而难以对服务性能进行建模和预测;(3)在弹性伸缩策略方面,目前开源的无服务器计算平台通常采用单一的水平弹性伸缩策略进行资源调控,这些方法无法对服务资源进行细粒度调整,且易导致不必要的资源开销,因此具有灵活性差、资源效率低等局限性。
发明内容
针对以上所述的无服务器计算中服务实时性保障效果差、缺乏新部署服务的历史运行数据以及服务资源弹性伸缩效率低等问题,本发明提供了一种面向无服务器计算的服务资源弹性伸缩方法。本发明基于迭代分析的方法,在无需负载先验知识的条件下,自适应探索不同资源配置下的无服务器函数服务的性能表现和资源供给效率,从而分析不同无服务器应用的资源偏好和性能特征;简化函数服务部署与配置服务资源弹性伸缩策略的复杂度,并支持自定义的弹性伸缩策略,从而根据服务的资源和性能特征,通过充分细粒度对服务资源进行弹性伸缩,在保证应用服务的可用性的同时改善资源利用率,实现资源成本与服务性能的平衡。
本发明的技术方案为:
一种面向无服务器计算的服务资源弹性伸缩方法,其步骤包括:
配置无服务器计算服务的部署信息,完成服务部署;
对于已部署的无服务器计算服务,监测服务的运行状态;
对服务发送负载请求以发起服务分析过程,在服务分析的迭代过程中选择资源调整行为,并根据服务吞吐量数据及资源使用数据计算资源调整的奖励值,根据奖励值计算当前服务状态对应的价值,并判断服务分析过程是否结束,若未结束则发起新的迭代分析过程;
根据服务分析过程获得服务的弹性伸缩关键参数;
根据弹性伸缩关键参数计算服务的弹性伸缩指标;
根据弹性伸缩指标生成无服务器计算服务的自适应弹性伸缩策略。
进一步的,所述服务分析过程在迭代过程中根据epsilon-greedy策略选择资源调整行为,即以epsilon的概率选择执行一个随机的资源调整行为,对于剩下的1-epsilon的概率则根据过去的资源调整经验执行收益(即价值)最大的资源调整行为。
进一步的,所述根据奖励值计算当前服务状态对应的价值,是基于Q-学习算法计算当前服务状态对应的价值Q,奖励值reward和Q值的计算方式如下,其中奖励值是基于每单位资源供给下服务吞吐量的提升程度来计算的。
resource=∑price*allocation
其中,δ表示单位资源供给带来的服务吞吐量的提升程度,throughputi表示第i次迭代过程的最大服务吞吐量,throughput ref表示前期迭代过程中的最大服务吞吐量,resource ref表示throughput ref对应的资源配置成本,resourcei表示第i次迭代过程的资源配置成本,resource表示资源配置成本,price表示资源单价,allocation表示资源分配量,s表示状态,a表示资源调整行为,s′表示状态,a′表示状态s′对应的Q值最大的资源调整行为,β表示学习率,γ表示衰减率。
进一步的,所述弹性伸缩关键参数包括res、tp、tpm和resm。res表示单位资源供给效率最高时的服务资源配置方案,默认据此配置函数资源。tp表示表示当函数实例的资源配置为res时,该函数服务可实现的最大吞吐量。tpm表示当函数的资源配置不超过2倍res时,该函数服务可实现的最大吞吐量。resm表示当函数服务吞吐量为tpm时的资源配置方案。
进一步的,所述弹性伸缩指标为服务的弹性比,服务的弹性比的计算方式的计算方式如下,服务的弹性比用于准确描述服务通过弹性伸缩以提升服务吞吐量的能力,其中,tpm相对于tp的提升程度表示服务弹性比,N表示当前函数的服务实例数,Capacity表示服务可以响应的负载请求范围。
N*tp<Capacity<(1+α)*N*tp
进一步的,所述自适应弹性伸缩策略中待创建的新实例的数量n根据当前的负载请求量R和服务的弹性比α计算得出,如下所示,N表示当前函数已有的服务实例数。
一种面向无服务器计算的服务资源弹性伸缩系统,其包括可视化客户端、服务分析器、运行数据收集器、负载生成器、资源控制器;用户通过所述可视化客户端进行网页交互并部署服务;所述运行数据收集器负责定时收集服务的资源使用数据并提供给所述服务分析器;所述负载生成器负责对服务生成负载请求并返回响应结果;所述资源控制器负责执行资源调整行为;所述服务分析器根据所部署的无服务器计算服务开启服务分析过程,分析过程以迭代的方式进行,根据服务吞吐量数据及资源使用数据计算资源调整的奖励值,根据奖励值计算当前服务状态对应的价值,并判断服务分析过程是否结束,若未结束则发起新的迭代分析过程;所述服务分析器根据服务分析过程获得服务的弹性伸缩关键参数,根据弹性伸缩关键参数计算服务的弹性伸缩指标,根据弹性伸缩指标生成无服务器计算服务的自适应弹性伸缩策略。
本发明的原理:在无需负载先验知识的条件下,采用自适应探索的方法评估不同资源配置下的无函数服务的性能和资源供给效率,根据服务的资源配置和服务吞吐量表现,进一步配置函数服务的资源弹性伸缩策略,通过弹性伸缩更好地保障服务质量,从而达到资源成本与服务性能的平衡。
本发明与现有技术相比具有如下优点:
(1)相较于现有无服务器计算平台大多通过best-effort的机制以节省资源开销,无法保证强实时性应用对响应延迟的要求,本发明针对响应延迟敏感型无服务器计算服务进行资源弹性伸缩与性能优化。
(2)对于服务特征,相关研究通常采用应用程序工作负载建模的方法来预测不同无服务器应用程序的资源需求和负载到达模式,而对于新部署的无服务器计算服务,平台普遍缺乏历史运行数据而难以对服务性能进行建模和预测的。本发明针对此问题,提出了一种基于强化学习的自适应方法,在无需工作负载先验知识的前提下,迭代地探索不同负载并发级别下不同无服务器应用程序的吞吐量性能表现以及造成服务性能瓶颈的资源配置,进而分析不同无服务器服务的性能与资源特征,并据此指导无服务器计算服务的资源弹性伸缩策略。
(3)在弹性伸缩策略方面,本发明结合了水平与垂直弹性伸缩策略,通过水平弹性伸缩更好地保障服务质量,并根据服务的资源偏好利用垂直弹性伸缩对服务资源进行细粒度调整,从而在保证服务可用性的同时改善系统资源利用率,实现资源成本与服务性能的平衡。
附图说明
图1为本发明方法的技术解决方案示意图。
图2为本发明方法的工作流程图。
图3为服务资源与性能分析流程示意图。
具体实施方式
下面将结合本发明的附图,进一步说明本发明的技术方案,所描述的实施例是本发明一部分实施例,而不代表全部的实施例。对于本领域的技术人员来说,一些公知技术可能未进行详细阐述。
本发明的一种面向无服务器计算的服务资源弹性伸缩方法,主要包括以下步骤:
1)对于无服务器计算服务,根据函数服务管理系统的服务部署模版,配置服务部署信息,完成服务部署;
2)对于已部署的无服务器计算服务,监测服务的运行状态和服务资源使用情况;
3)初始化服务资源配置,利用负载生成器对服务发送负载请求,期间收集函数服务的资源使用指标数据,包括CPU使用、内存占用、网络传输和GPU资源使用等,用于进行服务分析,即分析服务的资源使用偏好;
4)负载请求结束后,统计服务的吞吐量及服务请求的响应延迟等指标数据,根据服务性能表现进行服务状态评估,计算此次服务资源配置的奖励值reward,完成一次迭代;
5)基于Q-学习算法,根据奖励值更新此次资源调整行为对应的价值Q(s,a),Q-学习算法是一个流行的强化学习算法,其通过迭代的方式完成训练,在每次迭代过程中,Q(s,a)值表示服务在状态s时采取资源调整行为a对应的预期收益,Q值越大,表示采取此资源调整行为更优;并根据此次迭代的服务状态和对应的服务资源配置更新服务状态的价值表;
6)判断服务分析过程是否结束。若未结束,则根据epsilon-greedy策略从资源配置调整集合A选择资源调整行为,对服务的资源配置进行调整,更新服务状态,并返回至步骤3)开始新的一次服务资源和性能分析迭代过程。其中epsilon-greedy策略是指以epsilon的概率选择执行一个随机的资源调整行为,对于剩下的1-epsilon的概率,则根据过去的资源调整经验执行收益(即价值Q)最大的资源调整行为;资源配置调整集合A是指所有的资源调整行为,包括增加资源供给、保持不变、减少资源供给。若已结束,则保存相关分析数据,包括res、tp、tpm和resm等弹性伸缩关键参数。
7)根据步骤6)中的弹性伸缩关键参数,通过服务的资源配置和服务吞吐量表现进一步计算出服务的弹性比等弹性伸缩指标。根据弹性比,可以判断函数服务的负载响应能力。
8)根据步骤7)中计算出的弹性伸缩指标,生成无服务器计算服务的自适应弹性伸缩策略。
其中,步骤1)所述服务部署模版包括无服务器计算函数的名称信息、标签信息、环境变量信息以及镜像信息等。
其中,步骤3)中,对于每一个无服务器计算服务,根据负载生成器生成负载请求,负载请求中的负载参数包括负载持续时长、负载并发数、负载请求量等;根据集群环境的资源配置信息生成资源配置信息集合U,其中第i次函数服务的初始化资源配置方案Mi为资源配置信息集合U的真子集,满足
本发明一个实施例提出一种面向无服务器计算的服务资源弹性伸缩方法,技术解决方案主要包括以下步骤:
第一步,基于无服务器函数管理模块完成服务部署,具体流程如下:
用户通过指定部署函数服务的镜像和配置等信息,生成相应的服务部署文件并在集群环境中完成部署。服务完成部署后,用户可通过管理查看函数服务的状态信息,进一步地,所述服务部署文件的格式为json,具体的标准如下所示:
所述服务部署文件用于提供无服务器计算函数的名称信息、标签信息、环境变量信息以及镜像信息等。具体描述文件的示例如下,字段后的尖括号内标识了<字段类型>,其中str为字符串类型,dict为字典类型,带*号表示为非空内容。
Docker image:*<str>
Function name:*<str>
Function process:<str>
Network:<str>
Environment Variables:<dict>
Secrets:<dict>
Labels:<dict>
Annotations:<dict>
其中,字段Docker image的内容为服务镜像的名称,用于指定当前服务对应的docker镜像,可通过版本号指定不同版本的镜像。字段Function name的内容为指定服务的名称。字段Function process为可选参数。字段Network可指定网络信息。字段EnvironmentVariables、Secrets、Labels和Annotations都是字典结构,分别用于指定服务的环境变量、密钥信息、标签信息和注解信息等。
第二步,基于服务分析进行服务资源弹性伸缩配置,具体实现于以下步骤:
(1)对于运行中的函数服务,监测并收集无服务器平台中各计算函数的资源使用基本信息,包含多个维度(CPU使用、内存占用、网络传输和网络请求吞吐量等)的资源指标统计。然后通过周期性地对数据进行轮询和聚合,并利用时序数据库将采集到的监控数据按照时间序列的方式存储在本地存储中。然后利用自定义的查询接口,对监测数据的查询和分析。示例如下:
http_requests_total{job="functionA"}[5m]。该示例选出了functionA函数服务在过去5分钟的度量指标为http_requests_total的采样值。通过在后面[]里的时长来指定时间窗口,具体可选参数包括s:seconds、m:minutes、h:hours、d:days。
(2)负载生成器通过生成负载请求以发起服务分析过程,通过配置负载相关参数发起负载,包括负载持续时长、负载并发数、负载请求量等信息,并对负载请求响应的吞吐量等关键数据进行统计。在每次服务分析的迭代过程中,根据epsilon-greedy策略选择资源调整行为,并根据服务吞吐量数据及资源使用数据计算资源调整奖励值reward,而后更新当前状态对应的Q(s,a)值,并判断服务分析过程是否结束,若未结束,则发起新的迭代分析过程。
(3)对服务资源和性能特征进行分析,计算服务的res、tp、tpm和resm等弹性伸缩关键参数,通过弹性伸缩关键参数即服务的资源配置和服务吞吐量表现进一步计算出服务的弹性比α。
(4)配置函数弹性伸缩策略,由于不同的函数服务的弹性伸缩策略不同,需提供配置方法用于指定函数名称、函数实例的伸缩周期等弹性伸缩配置,并根据相应的弹性伸缩配置创建或删除函数实例。进一步地,弹性伸缩配置的描述文件格式为YAML,具体的标准如下所示:
其中,字段apiVersion的内容为api的版本号,用于指定当前对应的API服务器的版本,用于兼容不同版本的API服务器。字段kind的内容为指定资源的类型,本系统采用自定义的资源类型。字段spec为字典结构,包括但不限于template、scaleTargetRef、config等子字段,其中scaleTargetRef-name和scaleTargetRef-kind字段用于唯一标识需要配置弹性伸缩的服务;config字段也是字典结构,用于配置弹性伸缩的相关属性,interval表示弹性伸缩的周期,单位为毫秒。
本发明一个实施例中,一种基于服务分析的无服务器计算资源弹性伸缩方法,如图1所示,其步骤如下:
步骤101:用户通过可视化客户端进行网页交互。用户通过在表单中配置无服务器函数服务的配置信息,包括无服务器计算函数的名称信息、标签信息、环境变量信息以及镜像信息等,完成服务部署信息的配置。
步骤102:用户通过可视化客户端一键部署服务,服务集群将用户配置信息转发相应的请求至函数编排组件,编排组件提供了函数服务的添加、删除和查询功能调用接口,最终完成函数服务的部署,并返回部署成功结果。
步骤103:服务分析器根据所部署的无服务器计算服务,开启服务分析过程,分析过程以迭代的方式进行,其中运行数据收集器通过Cadvisor(一种现有的容器监控工具)定时收集函数服务的CPU、内存、网络等资源的使用数据,负载生成器负责生成负载并返回响应时间及吞吐量等响应结果,资源控制器根据epsilon-greedy策略执行资源调整行为。根据服务吞吐量数据及资源使用数据,服务分析器计算此次迭代过程的奖励值reward,每次迭代过后,更新当前服务状态对应的Q(s,a)值,并判断服务分析过程是否结束,若未结束则发起新的迭代分析过程。其中判断服务分析过程是否结束的方法是:若连续若干次(例如5次)迭代中的奖励值均小于或等于1时,终止此次服务分析过程。
步骤104:根据服务分析过程中的分析结果,得出所部署的无服务器计算服务的资源和性能特征,包括服务的最大吞吐量信息和对应的资源配置等信息;
步骤105:根据所部署的无服务器计算服务的资源和性能特征,生成对应的服务资源弹性伸缩策略。弹性伸缩策略中待创建的新实例数量为n,利用相关配置模版用于指定函数名称、函数实例的伸缩周期等弹性伸缩配置信息,完成弹性伸缩的配置。
步骤106:通过配置对应的服务资源弹性伸缩文件并部署至集群环境中,资源控制器通过接收自定义弹性伸缩配置并作出响应,从而接收相应的弹性伸缩配置,同时执行接口调用过程,直接对无服务器函数的资源进行管理。
本发明一个实施例中,一种基于服务分析的服务资源弹性伸缩方法的工作流程如图2所示,具体实施步骤如下:
步骤201:用户访问可视化客户端的页面,客户端页面可管理函数服务;
步骤202:用户在表单中配置无服务器函数服务的配置信息,提交自定义函数服务,完成服务部署;
步骤203:根据部署的无服务器计算函数,服务分析器初始化服务分析过程,包括服务状态初始化、服务分析表初始化等,分析过程以迭代的方式进行;
步骤204:资源控制器根据epsilon-greedy策略给出的资源调整方案,完成服务的资源配置过程;
步骤205:负载生成器根据服务分析器中给出的相关负载参数,创建并运行工作负载,在负载运行过程中记录负载的吞吐量和响应延迟等关键数据;
步骤206:工作负载运行结束后,根据负载运行过程中的服务性能数据和服务资源使用数据,对服务性能进行评估,计算此次资源调整的奖励值reward,并相应地更新当前状态对应的Q(s,a)值;
步骤207:性能评估过程结束后,服务分析器将新的服务资源配置数据和服务性能数据更新至服务状态的价值表中;
步骤208:服务分析器根据分析结果,判断是否需结束分析过程,若未达到结束条件,则返回至步骤203中再次进行服务分析;
步骤209:服务分析结束后,保存分析结果,根据分析结果中的服务资源偏好和性能特征等服务特性,指导服务的资源配置方案;
步骤210:利用服务分析结果中的资源配置表现,配置可靠的服务资源弹性伸缩方案。弹性伸缩策略中待创建的新实例数量为n;
步骤211:用户可通过可视化客户端查看服务状态的变化。
本发明一个实施例中,一种基于服务分析的服务资源弹性伸缩方法的服务分析具体过程,如图3所示:
步骤301:在服务分析开始前,资源控制器初始化服务的资源配置,利用容器技术限制函数服务的CPU、内存、磁盘及网络等资源的使用;
步骤302:在根据epsilon-greedy策略完成服务资源初始化后,服务分析器开始服务分析过程,为了生成负载,负载生成器通过配置相关负载参数发起负载,参数包括负载持续时长、负载并发量、请求内容等信息;
步骤303:负载生成器根据相关负载参数,通过多线程并发技术发起负载请求,在请求过程中统计负载响应信息;
步骤304:负载请求执行结束后,负载生成器将负载请求的响应数据进行归类和展示,包括请求响应延迟分布的柱状图以及吞吐量的平均值和最大值等指标;
步骤305:为了分析无服务器函数服务的性能表现,服务分析器根据负载生成器的运行结果,获取服务吞吐量数据;
步骤306:为了分析无服务器函数服务的资源偏好,服务分析器利用运行数据收集器提供的自定义查询接口,获取服务的资源使用数据,根据服务的吞吐量数据和资源使用数据,服务分析器计算奖励值reward,用于评估服务性能的提升程度;
步骤307:运行数据收集器利用时序数据库将采集到的监控数据按照时间序列的方式存储在本地存储中,根据服务分析器的查询,返回相应的监测数据;
步骤308:服务分析器综合考量服务的资源使用和性能表现,并相应地更新当前状态对应的Q(s,a)值,进而判断服务分析过程是否结束,若未结束,则根据步骤301开始新一轮分析。
在弹性伸缩策略方面,本发明结合了水平与垂直弹性伸缩策略,其中水平弹性伸缩策略是指增加或减少服务实例的数量;垂直弹性伸缩策略是指调整分配给每个服务实例的资源。
本发明的另一实施例提供一种面向无服务器计算的服务资源弹性伸缩系统,其包括可视化客户端、服务分析器、运行数据收集器、负载生成器、资源控制器;用户通过所述可视化客户端进行网页交互并部署服务;所述运行数据收集器负责定时收集服务的资源使用数据并提供给所述服务分析器;所述负载生成器负责对服务生成负载请求并返回响应结果;所述资源控制器负责执行资源调整行为;所述服务分析器根据所部署的无服务器计算服务开启服务分析过程,分析过程以迭代的方式进行,根据服务吞吐量数据及资源使用数据计算资源调整的奖励值,根据奖励值计算当前服务状态对应的价值,并判断服务分析过程是否结束,若未结束则发起新的迭代分析过程;所述服务分析器根据服务分析过程获得服务的弹性伸缩关键参数,根据弹性伸缩关键参数计算服务的弹性伸缩指标,根据弹性伸缩指标生成无服务器计算服务的自适应弹性伸缩策略。
本发明的另一实施例提供一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
本发明的另一实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
以上对于本发明实施例的具体实施方法的描述只是举例说明,本发明的保护范围由所述权利要求书阐述。本领域的技术人员在理解了上述说明的基础之上,进行的任何形式的变化和改动均落入本发明的保护范围之内。
Claims (10)
1.一种面向无服务器计算的服务资源弹性伸缩方法,其特征在于,包括以下步骤:
配置无服务器计算服务的部署信息,完成服务部署;
对于已部署的无服务器计算服务,监测服务的运行状态;
对服务发送负载请求以发起服务分析过程,在服务分析的迭代过程中选择资源调整行为,并根据服务吞吐量数据及资源使用数据计算资源调整的奖励值,根据奖励值计算当前服务状态对应的价值,并判断服务分析过程是否结束,若未结束则发起新的迭代分析过程;
根据服务分析过程获得服务的弹性伸缩关键参数;
根据弹性伸缩关键参数计算服务的弹性伸缩指标;
根据弹性伸缩指标生成无服务器计算服务的自适应弹性伸缩策略。
2.根据权利要求1所述的方法,其特征在于,所述服务分析过程在迭代过程中根据epsilon-greedy策略选择资源调整行为,即以epsilon的概率选择执行一个随机的资源调整行为,对于剩下的1-epsilon的概率则根据过去的资源调整经验执行价值最大的资源调整行为。
3.根据权利要求1所述的方法,其特征在于,所述根据奖励值计算当前服务状态对应的价值,是基于Q-学习算法计算当前服务状态对应的价值Q,奖励值reward和Q值的计算方式如下:
resource=∑price*allocation
其中,δ表示单位资源供给带来的服务吞吐量的提升程度,throughputi表示第i次迭代过程的最大服务吞吐量,throughputref表示前期迭代过程中的最大服务吞吐量,resourceref表示throughputref对应的资源配置成本,resourcei表示第i次迭代过程的资源配置成本,resource表示资源配置成本,price表示资源单价,allocation表示资源分配量,s表示状态,a表示资源调整行为,s′表示状态,a′表示状态s′对应的Q值最大的资源调整行为,β表示学习率,γ表示衰减率。
4.根据权利要求1所述的方法,其特征在于,所述弹性伸缩关键参数包括res、tp、tpm和resm;res表示单位资源供给效率最高时的服务资源配置方案,默认据此配置函数资源;tp表示表示当函数实例的资源配置为res时,函数服务实现的最大吞吐量;tpm表示当函数的资源配置不超过2倍res时,函数服务可实现的最大吞吐量;resm表示当函数服务吞吐量为tpm时的资源配置方案。
6.根据权利要求5所述的方法,其特征在于,所述根据弹性伸缩指标生成无服务器计算服务的自适应弹性伸缩策略,其中自适应弹性伸缩策略中待创建的新实例的数量根据当前的负载请求量和服务的弹性比计算得出。
8.一种面向无服务器计算的服务资源弹性伸缩系统,其特征在于,包括可视化客户端、服务分析器、运行数据收集器、负载生成器、资源控制器;用户通过所述可视化客户端进行网页交互并部署服务;所述运行数据收集器负责定时收集服务的资源使用数据并提供给所述服务分析器;所述负载生成器负责对服务生成负载请求并返回响应结果;所述资源控制器负责执行资源调整行为;所述服务分析器根据所部署的无服务器计算服务开启服务分析过程,分析过程以迭代的方式进行,根据服务吞吐量数据及资源使用数据计算资源调整的奖励值,根据奖励值计算当前服务状态对应的价值,并判断服务分析过程是否结束,若未结束则发起新的迭代分析过程;所述服务分析器根据服务分析过程获得服务的弹性伸缩关键参数,根据弹性伸缩关键参数计算服务的弹性伸缩指标,根据弹性伸缩指标生成无服务器计算服务的自适应弹性伸缩策略。
9.一种电子装置,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一项所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210554439.3A CN115086189B (zh) | 2022-05-20 | 2022-05-20 | 一种面向无服务器计算的服务资源弹性伸缩方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210554439.3A CN115086189B (zh) | 2022-05-20 | 2022-05-20 | 一种面向无服务器计算的服务资源弹性伸缩方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086189A true CN115086189A (zh) | 2022-09-20 |
CN115086189B CN115086189B (zh) | 2023-11-07 |
Family
ID=83248963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210554439.3A Active CN115086189B (zh) | 2022-05-20 | 2022-05-20 | 一种面向无服务器计算的服务资源弹性伸缩方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086189B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610454A (zh) * | 2023-07-17 | 2023-08-18 | 中国海洋大学 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
CN116980421A (zh) * | 2023-09-25 | 2023-10-31 | 厦门她趣信息技术有限公司 | 一种蓝绿部署下切流cpu资源飙升处理方法和装置以及设备 |
CN117111904A (zh) * | 2023-04-26 | 2023-11-24 | 领悦数字信息技术有限公司 | 用于将Web应用自动转换成无服务器函数的方法和系统 |
WO2024114484A1 (zh) * | 2022-12-02 | 2024-06-06 | 中国科学院深圳先进技术研究院 | 一种服务器无感知计算自适应资源调度方法、系统及计算机设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190312800A1 (en) * | 2015-07-27 | 2019-10-10 | Datagrid Systems, Inc. | Method, apparatus and system for real-time optimization of computer-implemented application operations using machine learning techniques |
US20200241921A1 (en) * | 2019-01-28 | 2020-07-30 | EMC IP Holding Company LLC | Building neural networks for resource allocation for iterative workloads using reinforcement learning |
CN111507601A (zh) * | 2020-04-12 | 2020-08-07 | 北京工业大学 | 基于深度强化学习与区块链共识的资源优化分配决策方法 |
US20200389516A1 (en) * | 2019-06-04 | 2020-12-10 | Capital One Services, Llc | System and method for fast application auto-scaling |
CN112068934A (zh) * | 2020-09-08 | 2020-12-11 | 广州汇智通信技术有限公司 | 一种容器云服务实例收缩的控制系统和方法 |
US11018965B1 (en) * | 2020-01-24 | 2021-05-25 | Red Hat, Inc. | Serverless function scaling |
CN112955869A (zh) * | 2018-11-08 | 2021-06-11 | 英特尔公司 | 功能即服务(faas)系统增强 |
WO2021139174A1 (zh) * | 2020-01-12 | 2021-07-15 | 苏州浪潮智能科技有限公司 | 一种faas分布式计算方法和装置 |
CN113342515A (zh) * | 2021-05-11 | 2021-09-03 | 北京大学 | 一种无服务器计算资源选择方法、装置、设备及存储介质 |
CN113535409A (zh) * | 2021-08-10 | 2021-10-22 | 天津大学 | 一种面向能耗优化的无服务器计算资源分配系统 |
CN113902116A (zh) * | 2021-09-29 | 2022-01-07 | 中国科学院软件研究所 | 一种面向深度学习模型推理批处理优化方法与系统 |
-
2022
- 2022-05-20 CN CN202210554439.3A patent/CN115086189B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190312800A1 (en) * | 2015-07-27 | 2019-10-10 | Datagrid Systems, Inc. | Method, apparatus and system for real-time optimization of computer-implemented application operations using machine learning techniques |
CN112955869A (zh) * | 2018-11-08 | 2021-06-11 | 英特尔公司 | 功能即服务(faas)系统增强 |
US20200241921A1 (en) * | 2019-01-28 | 2020-07-30 | EMC IP Holding Company LLC | Building neural networks for resource allocation for iterative workloads using reinforcement learning |
US20200389516A1 (en) * | 2019-06-04 | 2020-12-10 | Capital One Services, Llc | System and method for fast application auto-scaling |
WO2021139174A1 (zh) * | 2020-01-12 | 2021-07-15 | 苏州浪潮智能科技有限公司 | 一种faas分布式计算方法和装置 |
US11018965B1 (en) * | 2020-01-24 | 2021-05-25 | Red Hat, Inc. | Serverless function scaling |
CN111507601A (zh) * | 2020-04-12 | 2020-08-07 | 北京工业大学 | 基于深度强化学习与区块链共识的资源优化分配决策方法 |
CN112068934A (zh) * | 2020-09-08 | 2020-12-11 | 广州汇智通信技术有限公司 | 一种容器云服务实例收缩的控制系统和方法 |
CN113342515A (zh) * | 2021-05-11 | 2021-09-03 | 北京大学 | 一种无服务器计算资源选择方法、装置、设备及存储介质 |
CN113535409A (zh) * | 2021-08-10 | 2021-10-22 | 天津大学 | 一种面向能耗优化的无服务器计算资源分配系统 |
CN113902116A (zh) * | 2021-09-29 | 2022-01-07 | 中国科学院软件研究所 | 一种面向深度学习模型推理批处理优化方法与系统 |
Non-Patent Citations (3)
Title |
---|
GAETANO SOMMA: "When Less is More:Core-Restricte Container Procisioning for Serverless Computing", 《IEEE INFOCOM 2020-IEEE CONFERENCE ON COMPUTER COMMUNICATIONS WORKSHOPS》 * |
LUCIA SCHULER: "AI-based Resource Allocation: Reinforcement Learning for Adaptive Auto-scaling in Serverless Environments", 《2021 IEEE/ACM 21ST INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND INTERNET COMPUTING (CCGRID)》, pages 804 - 811 * |
马泽华: "无服务器平台资源调度综述", 《计算机科学》, vol. 48, no. 4, pages 261 - 267 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024114484A1 (zh) * | 2022-12-02 | 2024-06-06 | 中国科学院深圳先进技术研究院 | 一种服务器无感知计算自适应资源调度方法、系统及计算机设备 |
CN117111904A (zh) * | 2023-04-26 | 2023-11-24 | 领悦数字信息技术有限公司 | 用于将Web应用自动转换成无服务器函数的方法和系统 |
CN117111904B (zh) * | 2023-04-26 | 2024-05-28 | 领悦数字信息技术有限公司 | 用于将Web应用自动转换成无服务器函数的方法和系统 |
CN116610454A (zh) * | 2023-07-17 | 2023-08-18 | 中国海洋大学 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
CN116610454B (zh) * | 2023-07-17 | 2023-10-17 | 中国海洋大学 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
CN116980421A (zh) * | 2023-09-25 | 2023-10-31 | 厦门她趣信息技术有限公司 | 一种蓝绿部署下切流cpu资源飙升处理方法和装置以及设备 |
CN116980421B (zh) * | 2023-09-25 | 2023-12-15 | 厦门她趣信息技术有限公司 | 一种蓝绿部署下切流cpu资源飙升处理方法和装置以及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115086189B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Distributed machine learning with a serverless architecture | |
Amiri et al. | Survey on prediction models of applications for resources provisioning in cloud | |
Bhattacharjee et al. | Barista: Efficient and scalable serverless serving system for deep learning prediction services | |
Garí et al. | Reinforcement learning-based application autoscaling in the cloud: A survey | |
CN110737529B (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
CN115086189B (zh) | 一种面向无服务器计算的服务资源弹性伸缩方法和系统 | |
CN110198244B (zh) | 面向异构云服务的资源配置方法和装置 | |
TWI620075B (zh) | 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法 | |
Ghobaei-Arani et al. | LP-WSC: a linear programming approach for web service composition in geographically distributed cloud environments | |
Yang et al. | Intelligent resource scheduling at scale: a machine learning perspective | |
Xu et al. | CoScal: Multifaceted scaling of microservices with reinforcement learning | |
CN113037877B (zh) | 云边端架构下时空数据及资源调度的优化方法 | |
Kirchoff et al. | A preliminary study of machine learning workload prediction techniques for cloud applications | |
CN117203612A (zh) | 计算设备应用更新的估计的智能生成和管理 | |
CN112559135B (zh) | 一种基于QoS的容器云资源的调度方法 | |
CN113822456A (zh) | 一种云雾混构环境下基于深度强化学习的服务组合优化部署方法 | |
Mostafavi et al. | A stochastic approximation approach for foresighted task scheduling in cloud computing | |
Yazdanov et al. | Lightweight automatic resource scaling for multi-tier web applications | |
CN114780233A (zh) | 基于微服务链路分析和强化学习的调度方法及装置 | |
Meyer et al. | ML-driven classification scheme for dynamic interference-aware resource scheduling in cloud infrastructures | |
Islam et al. | An empirical study into adaptive resource provisioning in the cloud | |
Yadav et al. | Maintaining container sustainability through machine learning | |
Ciavotta et al. | Architectural design of cloud applications: A performance-aware cost minimization approach | |
Leena Sri et al. | An empirical model of adaptive cloud resource provisioning with speculation | |
Kalai Arasan et al. | Energy‐efficient task scheduling and resource management in a cloud environment using optimized hybrid technology |
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 |