CN115357342B - 冷启动资源处理方法及装置 - Google Patents

冷启动资源处理方法及装置 Download PDF

Info

Publication number
CN115357342B
CN115357342B CN202211011118.5A CN202211011118A CN115357342B CN 115357342 B CN115357342 B CN 115357342B CN 202211011118 A CN202211011118 A CN 202211011118A CN 115357342 B CN115357342 B CN 115357342B
Authority
CN
China
Prior art keywords
wasm
resource
resource pool
cold start
target
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
Application number
CN202211011118.5A
Other languages
English (en)
Other versions
CN115357342A (zh
Inventor
丁治强
彭璟文
杨华辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Volcano Engine Technology Co Ltd
Original Assignee
Beijing Volcano Engine Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Volcano Engine Technology Co Ltd filed Critical Beijing Volcano Engine Technology Co Ltd
Priority to CN202211011118.5A priority Critical patent/CN115357342B/zh
Publication of CN115357342A publication Critical patent/CN115357342A/zh
Application granted granted Critical
Publication of CN115357342B publication Critical patent/CN115357342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开涉及一种冷启动资源处理方法及装置,其中,该方法包括:获取资源池创建指令,资源池创建指令包括FaaS应用请求方指定的冷启动资源池的资源要求;响应资源池创建指令,从公共资源池包括的WASM运行时中选择符合资源要求的目标WASM运行时;再为选择的目标WASM运行时设置第一标签,以将目标WASM运行时与FaaS应用请求方绑定。其中,FaaS应用请求方对应的冷启动资源池中的目标WASM运行时下能够运行多个WASM虚拟机,资源粒度满足WASM函数的需求。解决了WASM函数的资源预留问题,进而能够实现减小WASM函数的冷启动时间。

Description

冷启动资源处理方法及装置
技术领域
本公开涉及云计算技术领域,尤其涉及一种冷启动资源处理方法及装置。
背景技术
WebAssembly(简称WASM)是一种新的字节码格式,能够为C、C++、Rust等高级语言提供一个高效的编译目标,且可以在安全的、可移植、轻量化、高效率的虚拟机中执行,在不同平台上能够以接近本地速度运行。函数即服务(Function-as-a-Service,FaaS)是一种云计算形式,FaaS函数为开发者节省了后端基础设施的大量麻烦,还简化了开发过程,使开发者只需关注业务本身的逻辑。其中,WASM运行时是FaaS运行时中极其轻量级的运行时,需要更少的资源以及更快的冷启动速度。
目前,常通过预留资源来提升冷启动速度,其中,目前的容器FaaS预留资源是以函数实例(pod)为最小资源粒度,无法适用于WASM函数,因此,如何实现WASM函数的资源预留,以提升冷启动速度是当前亟待解决的问题。
发明内容
为了解决上述技术问题,本公开提供了一种冷启动资源处理方法及装置。
第一方面,本公开提供了一种冷启动资源处理方法,包括:
获取资源池创建指令,其中,所述资源池创建指令包含FaaS应用请求方指定的冷启动资源池的资源要求;
响应所述资源池创建指令,从公共资源池包括的WASM运行时中选择符合所述资源要求的目标WASM运行时;所述目标WASM运行时中能够运行至少一个WASM虚拟机,所述WASM虚拟机用于所述FaaS应用请求方部署的WASM函数的冷启动;
为所述目标WASM运行时设置第一标签得到所述FaaS应用请求方对应的冷启动资源池;所述第一标签用于指示所述目标WASM运行时属于所述FaaS应用请求方对应的冷启动资源池,在对应的FaaS应用冷启动时被调用。
第二方面,本公开提供了一种冷启动资源处理装置,包括:
获取模块,用于获取资源池创建指令,其中,所述资源池创建指令包含FaaS应用请求方指定的冷启动资源池的资源要求;
资源处理模块,用于响应所述资源池创建指令,从公共资源池包括的WASM运行时中选择符合所述资源要求的目标WASM运行时;所述目标WASM运行时中能够运行至少一个WASM虚拟机,所述WASM虚拟机用于所述FaaS应用请求方部署的WASM函数的冷启动;
标签设置模块,用于为所述目标WASM运行时设置第一标签得到所述FaaS应用请求方对应的冷启动资源池;所述第一标签用于指示所述目标WASM运行时属于所述FaaS应用请求方对应的冷启动资源池,在对应的FaaS应用冷启动时被调用。
第三方面,本公开提供了一种电子设备,其特征在于,包括:存储器和处理器;所述存储器被配置为存储计算机程序指令;所述处理器被配置为执行所述计算机程序指令,使得所述电子设备实现如第一方面所述的冷启动资源处理方法。
第四方面,本公开提供一种可读存储介质,其特征在于,包括:计算机程序指令;电子设备的至少一个处理器执行所述计算机程序指令,使得所述电子设备实现如第一方面所述的冷启动资源处理方法。
第五方面,本公开提供一种计算机程序产品,其特征在于,电子设备的至少一个处理器执行所述计算机程序产品,使得所述电子设备实现如第一方面所述的冷启动资源处理方法。
本公开提供一种冷启动资源处理方法及装置,其中,该方法包括:获取资源池创建指令,资源池创建指令包括FaaS应用请求方指定的冷启动资源池的资源要求;响应资源池创建指令,从公共资源池包括的WASM运行时中选择符合资源要求的目标WASM运行时;再为选择的目标WASM运行时设置第一标签,以将目标WASM运行时与FaaS应用请求方绑定。其中,FaaS应用请求方对应的冷启动资源池中,目标WASM运行时下能够运行多个WASM虚拟机,资源粒度满足WASM函数的需求。解决了WASM函数的资源预留问题,进而能够实现减小WASM函数的冷启动时间。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一实施例提供的基于WASM函数的云服务系统的架构图;
图2为本公开一实施例提供的冷启动资源处理方法的整体框架图;
图3为本公开一实施例提供的冷启动资源处理方法的流程示意图;
图4为本公开一实施例提供的冷启动资源处理方法的流程示意图;
图5为本公开一实施例提供的冷启动资源处理方法的流程示意图;
图6为本公开一实施例提供的冷启动资源处理方法的流程示意图;
图7为本公开一实施例提供的冷启动资源处理方法的流程示意图;
图8为本公开一实施例提供的云服务系统的整体架构图;
图9为本公开一实施例提供的冷启动资源处理方法的流程示意图;
图10为本公开一实施例提供的冷启动资源处理方法的流程示意图;
图11为本公开一实施例提供的冷启动资源处理装置的结构示意图;
图12为本公开一实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
图1为本公开一实施例提供的基于WASM函数的云服务系统的架构示意图。请参阅图1所示,FaaS应用请求方在云服务系统中部署WASM函数(也可以理解为FaaS应用),向用户提供FaaS服务。用户可以通过网关接入云服务系统,通过网关能够将用户的函数请求调度至云服务系统的WASM运行时,进而被WASM运行时下的虚拟机执行。其中,WASM运行时是一种进程级别的虚拟机,WASM运行时中可以运行多个虚拟机,每个虚拟机可以运行一个WASM函数。其中,一个物理机中可以部署多个WASM运行时,多个WASM运行时之间是相互隔离的,彼此之间不会产生影响。其中,云服务系统可以为FaaS系统。
传统的冷启动资源预留是以pod为最小资源粒度的,然而,WASM函数需要在pod内部启动多个函数实例,最小资源粒度需求为WASM虚拟机,传统以pod为最小粒度的资源预留方式已无法适用于图1所示的云服务系统。
为了解决WASM函数的冷启动资源预留问题,减小WASM函数的冷启动时间,本公开提供一种适用于WASM函数的冷启动资源处理方法及装置。请参照图2所示,本公开提供的方法主要包括以下两个阶段:创建冷启动资源池和资源预留。其中,创建冷启动资源池是指基于FaaS应用请求方的需求在云服务系统中新建一个冷启动资源池,用于运行FaaS应用请求方部署在云服务系统中的WASM函数,加速WASM函数的冷启动。资源预留是指从创建好的冷启动资源池中为FaaS应用请求方部署在云服务系统中的各WASM函数分别分配冷启动资源作为预留资源。
此外,针对已创建好的冷启动资源池还可以根据FaaS应用请求方需求进行维护,例如,扩容、缩容、删除等等。执行资源预留之后,还可以根据FaaS应用请求方需求灵活调整冷启动资源池中的资源分配,以保证为各WASM函数分配的资源满足相应的资源预留要求;此外,还可以预加载WASM函数代码,实例化WASM函数,以进一步提升冷启动速度。
接下来,将通过几个具体实施例对本公开提供的冷启动资源处理方法进行详细介绍。下述实施例中,以冷启动资源处理装置执行本公开提供的方法为例进行介绍。其中,冷启动资源处理装置可以为云服务系统中具有执行的功能模块或者组件。
图3为本公开一实施例提供的冷启动资源处理方法的流程示意图。本实施例主要介绍如何创建冷启动资源池。请参阅图3所示,本实施例的方法包括:
S301、获取资源池创建指令,其中,资源池创建指令包含FaaS应用请求方指定的冷启动资源池的资源要求。
FaaS应用请求方可以向云服务系统输入对于冷启动资源池的资源要求,FaaS应用请求方输入的信息传输至冷启动资源处理装置,该装置基于此生成资源创建指令。其中,资源要求可以包括FaaS应用请求方指定的WASM运行时的数量、内存大小、处理器内核数量等等。
S302、响应资源池创建指令,从公共资源池包括的WASM运行时中选择符合资源要求的目标WASM运行时;目标WASM运行时中能够运行至少一个WASM虚拟机,WASM虚拟机用于FaaS应用请求方部署的WASM函数的冷启动。
公共资源池是云服务提供商在云服务系统中配置的用于满足FaaS应用请求方部署的函数的冷启动需求的冷启动资源池,其中,公共资源池可以包括多种不同类型的运行时,例如,WASM运行时、Golang运行时、Python运行时、Rust运行时、Java运行时等等,且各种运行时的数量、内存大小等可以灵活设置。
冷启动资源处理装置响应资源池创建指令,从公共资源池中选择符合FaaS应用请求方提出的资源要求的目标WASM运行时作为FaaS应用请求方对应的冷启动资源池。
一些实施例中,冷启动资源处理装置可以先从公共资源池中过滤已被使用的WASM运行时,预选一批符合资源要求的候选WASM运行时;若没有符合资源要求的候选WASM运行时,可以等待符合资源要求的WASM运行时的存量函数运行结束之后,继续执行预选操作。再从候选WASM运行时中采用随机的方式或者基于其他选择策略确定目标WASM运行时。
采用该方式,预选阶段确定的候选WASM运行时的数量可以多于FaaS应用请求方所需的数量,这可以满足下一级筛选策略以为FaaS应用请求方选择更加适合的WASM运行时。
例如,FaaS应用请求方A需要创建一个包含5个WASM运行时的冷启动资源池,每个WASM运行时下可以运行10个WASM虚拟机,且FaaS应用请求方A对于WASM运行时的要求为:内存大小为8G、处理器内核数量为4核;则首先从公共资源池中预先10个4核8G的WASM运行时,之后,再基于从10个预选的WASM运行时中确定5个作为目标WASM运行时。
另一些实施例中,冷启动资源处理装置也可以从公共资源池中选择符合资源要求的目标WASM运行时,即不设置下一级的筛选策略,该方式简单方便。
S303、为目标WASM运行时设置第一标签,得到FaaS应用请求方对应的冷启动资源池;第一标签用于指示目标WASM运行时属于FaaS应用请求方对应的冷启动资源池,在对应的FaaS应用冷启动时被调用。
第一标签(label)可以为FaaS应用请求方的标识,例如,FaaS应用请求方在云服务系统中的注册账号、云服务系统为FaaS应用请求方分配的其他ID标识等等,能够唯一标识FaaS应用请求方即可。
其中,冷启动资源处理装置在本地存储选择的各目标WASM运行时的信息以及相应的第一标签,此外,再向各目标WASM运行时发送消息,以发送第一标签,目标WASM运行时接收到包含第一标签的消息后在本地进行标记,在处理函数请求时,便可以基于第一标签准确调度冷启动资源。
通过本实施例的方法解决了WASM函数的资源预留问题,进而能够实现减小WASM函数的冷启动时间。
图4为本公开另一实施例提供的冷启动资源处理方法的流程示意图。本实施例主要介绍如何维护已创建好的冷启动资源池。其中,维护可以但不限于包括:扩容、缩容以及删除,相当于是对冷启动资源池的容量进行修改。请参阅图4所示,本实施例的方法在图3所示实施例的基础上,还包括:
S304、接收并响应资源池扩容指令,从公共资源池中选择当前工作负载为零且符合资源要求的WASM运行时添加至冷启动资源池,以扩大冷启动资源池的容量。
云服务系统中,公共资源池中各运行时可以定期通过心跳汇报资源信息给冷启动资源处理装置进行存储,可以存储至冷启动资源处理装置的内存中,以减少在进行冷启动资源池容量修改时所需数据读取以及写入内存的时间。其中,WASM运行时汇报的资源信息可以包括WASM运行时下正在执行函数请求的虚拟机的数量(即WASM运行时的工作负载)。
冷启动资源处理装置接收到资源池扩容指令后,可以从内存中查询公共资源池中各运行时的工作负载,筛选得到当前未运行任何WASM虚拟机,且符合用户的资源要求的WASM运行时,接着在本地为所选择的WASM运行时设置第一标签,且向选择的WASM运行时发送包含第一标签的消息,以使接收消息的WASM运行时在本地进行标记,从而扩大FaaS应用请求方对应的冷启动资源池的容量。
S305、接收并响应资源池缩容指令,则将冷启动资源池中当前工作负载为零的目标WASM运行时释放至公共资源池,以缩小冷启动资源池的容量。
冷启动资源处理装置接收到资源池缩容指令后,可以从内存中查询FaaS应用请求方对应的冷启动资源池中各目标WASM运行时的工作负载,筛选得到当前未运行任何WASM虚拟机,且符合用户的资源要求的目标WASM运行时作为释放对象,再冷启动资源处理装置本地删除所选择的目标WASM运行时的第一标签,且向所选择的目标WASM运行时发送删除第一标签的消息,以使接收到消息的目标WASM运行时删除相应的标签,从而缩小用户对应的冷启动资源池的容量。
S306、接收并响应资源池删除指令,释放冷启动资源池中的所有目标WASM运行时至公共资源池。
冷启动资源处理装置接收到资源池删除指令后,可以采用与缩容类似的方式,将FaaS应用请求方对应的冷启动资源池中的所有目标WASM运行时进行释放。需要说明的是,若接收到资源池删除指令时,一些目标WASM运行时中还存在正在执行函数请求的WASM虚拟机,则等待这些存量函数运行完之后再释放至公共资源池。
本实施例的方法,能够根据FaaS应用请求方需求灵活进行冷启动资源池容量调整,满足用户的函数请求。
图5为本公开一实施例提供的冷启动资源处理方法的流程示意图。本实施例的方法主要介绍如何实现冷启动资源池的资源预留。请参阅图5所示,本实施例的方法包括:
S501、获取资源预留指令,所述资源预留指令包括:所述冷启动资源池的资源分配策略。
资源分配策略用于指示如何为FaaS应用请求方部署在云服务系统中的各WAMS函数分配冷启动池中的冷启动资源。本公开提供的方法,可以采用两种资源预留模式,分别为:按照内存大小分配和按照比例分配。
1、按照内存大小分配
WASM函数使用内存规格来描述消耗的资源,通常所有函数的内存采用固定值描述,例如,固定值为128M,但是不同业务的函数资源的消耗是具备差异的,且随着运行时开始接入便开始计算用户成本,资源“一刀切”的方式会给使用云服务系统的用户带来额外的成本。
因此,本公开的方法能够实现让FaaS应用请求方依据业务的特点,选择不同的预留方案,一方面能够按需使用内存,满足不同业务的资源需求,减少OOM的问题,另一方面还能够降低使用成本。
示例性地,WASM函数可以分为16M、32M、64M、128M、256M多种规格。用户选择了每个WASM函数的内存规格之后,可以指定预留的冷启动资源的内存大小为WASM函数的内存规格的整数倍,且不能大于冷启动资源池的最大容量。其中,针对一个WASM函数来说为其预留的冷启动资源的内存大小为16的整数倍。
2、按照比例分配
按照比例预留资源,假设FaaS应用请求方在云服务系统中部署了n个WASM函数,n个WASM函数分别预留的冷启动资源的比例为x1、x2…xn,且满足x1+x2+…+xn<=1。
在一些实施例中,若FaaS应用请求方选择按照内存大小预留资源,则资源预留策略中包含FaaS应用请求方输入的各WASM函数所需的内存大小。
另一些实施例中,若FaaS应用请求方选择按照比例预留资源,则资源预留策略中包含FaaS应用请求方输入的各WASM函数所需的内存占整个冷启动资源池的内存的比例。
S502、响应资源预留指令,基于各目标WASM运行时的资源占用情况以及资源分配策略,为各WASM函数确定相匹配的目标WASM运行时。
可以通过下述步骤实现:
步骤a、基于第一标签确定FaaS应用请求方所对应的冷启动资源池中的WASM运行时。
步骤b、从步骤a中过滤出携带指定第二标签的WASM运行时。
步骤c、过滤掉并发数达到最大并发数的WASM运行时。其中,并发数是指WASM运行时下的WASM虚拟机的数量。
步骤d、从步骤c确定的多个WASM运行时中,依据随机调度策略、依据并发数以及内存大小、以及、依据资源预留指令中各WASM函数所需的冷启动资源的内存大小/比例,为各WASM函数选择出可以分配的目标WASM运行时,即选择出可以执行创建第二标签操作的WASM运行时。
S503、控制所述目标WASM运行时创建相应的WASM虚拟机,并为所述WASM虚拟机设置第二标签,第二标签用于指示创建的WASM虚拟机与相应WASM函数之间的绑定关系。
冷启动资源处理装置可以发送超文本传输协议(Hyper Text TransferProtocol,http)请求给能够进行资源预留的目标WASM运行时,目标WASM运行时响应http请求创建WASM虚拟机,并为创建的WASM虚拟机设置第二标签,以将创建的WASM虚拟机与WASM函数绑定。
通过本实施例的方法能够为FaaS应用请求方部署在云服务系统中的各WASM函数合理预留冷启动资源,节约资源调度时间,且合理的资源分配方式能够有效降低成本。
在图5所实施例基础上,随着业务需求的变化,为各WASM函数预留的冷启动资源可能需要进行调整,例如,在有新的WASM函数部署至云服务系统,或者,删除了一些现有的WASM函数等场景中,需要调整各WASM函数的冷启动资源分配。调整冷启动资源分配时,可以向云服务系统输入新的资源分配指令指示相应的资源分配策略,云服务系统按照新的资源分配策略重新分配冷启动资源。
图6为本公开另一实施例提供的冷启动资源处理方法的流程示意图。参照图6所示实施例,本实施例的方法在图5所示实施例的基础上,还包括:
S504、控制所述目标WASM运行时下的各WASM虚拟机分别加载相应的所述WASM函数的代码,实例化所述WASM函数。
在预留WASM虚拟机的基础上,通过进一步提前将WASM函数的代码加载至相应WASM虚拟机的内存中,去除了冷启动阶段,进一步降低了函数执行时间,极大地减小了冷启动时间。
在一个具体实施例中,以Hello WASM的WASM函数为例,冷启动耗时数据如下表所示:
编号 每次请求总耗时(ms) 冷启动耗时(ms)
1 2.57 0.40
2 2.62 0.34
3 2.60 0.30
4 2.59 0.40
5 2.63 0.37
平均值 2.60 0.36
通过资源预留以及提前加载函数代码的预留模式去除了冷启动的耗时之后,总耗时减少了14%。可以理解的是,函数的代码包越大以及代码运行过程中会下载大量资源的场景,预留模式的提升效果更加明显。
图7为本公开一实施例提供的冷启动资源处理方法的流程示意图。在图5所示实施例的基础上,为了保证各WASM函数的冷启动资源始终满足需求,需要进行定期的检查以及维护。例如,在云服务系统中,WASM运行时配置有回收逻辑(可以理解为是GC逻辑),则可能会定期销毁WASM运行时下未执行函数请求的WASM虚拟机回收相应的内存资源,可能导致为一些WASM函数预留的冷启动资源不满足需求。参照图7所示,本实施例的方法在图5所示实施例的基础上,还包括:
S505、周期性地检测为各所述WASM函数分别预留的冷启动资源是否满足相应的预留要求。
冷启动资源处理装置可以周期性地比较当前为WASM函数预留的WASM虚拟机的数量(也可以理解为目标WASM运行时下第二标签的数量)与WASM函数所需的WASM虚拟机的数量是否一致,从而给确定为WASM函数预留的冷启动资源是否符合预留要求。若不一致,则确定不满足预留要求,执行步骤S506;若一致,则确定满足预留要求,则不做处理。
其中,冷启动资源处理装置可以基于各目标WASM运行时通过心跳汇报的资源情况确定第二标签的数量。
S506、检测到不满足时,调整所述冷启动资源池中的资源分配,直至满足各所述WASM函数分别对应的预留要求。
通过步骤S506中的对比结果能够确定当前预留的冷启动资源大于需求的资源还是少于需求的资源。若当前预留的冷启动资源多于需求,可以删除一部分具有第二标签的虚拟机,释放该部分资源;若当前预留的冷启动资源少于需求的资源,则可以采用如图5所示的方式,选择出可以创建WASM虚拟机的目标WASM运行时,向其发送请求,以在所选择的目标WASM运行时中创建所需数量的WASM虚拟机,并设置相应的第二标签。
本实施例,通过定期检测以及冷启动资源的分配调整,能够保证为各WASM函数分配的冷启动资源始终能够满足用户的需求。
图8为本公开一实施例提供的云服务系统的架构图。请参阅图8所示,云服务系统800包括:接入服务组件(API server)801、网关802、WASM运行时803以及与WASM运行时对应的主机代理组件804。
接入服务组件801主要用于处理所有API请求,例如,创建冷启动资源池的请求、调整冷启动资源池容量的请求、预留资源的请求、函数请求等等。且用于同步元数据给网关802。
网关802,主要用于对冷启动资源池进行操作以及进行流量调度。
主机代理组件804主要用于对出入WASM运行时803的相关数据进行处理,例如,可以下载函数代码、汇报WASM运行时803的资源信息、地址信息等等给网关802。
接下来通过图9以及图10示例性示出通过图8所示的云服务系统框架如何实现冷启动资源处理。
图9为本公开一实施例提供的冷启动资源处理方法的流程图。图9主要介绍创建冷启动资源池的过程。请参阅图9所示,包括以下步骤:
S901、用户向接入服务组件发送资源池信息。
接入服务组件接收到资源池信息后,将资源池信息写入数据库中。资源池信息可以包括:创建资源池的指令、修改资源池容量的指令、调整资源池容量的指令等等。
S902、网关周期性地从接入服务组件的数据库中同步元数据。
元数据包括各用户发送的资源池信息。
本实施例中,网关采用异步同步数据的机制,因此,需要定期轮询数据库得到元数据,写入网关的缓存池。需要说明的是,云服务系统中通常网关数量较多,多个网关均可以采用异步同步数据的机制从数据库得到元数据。
网关也可以采用订阅机制从数据库获取元数据,本公开对此不作限定。
S903、WASM运行时定期通过心跳汇报资源信息给主机代理组件。
S904、主机代理组件将资源信息转发给网关。
网关将接收的资源信息存储到内存结构中。
S905、网关进行选主操作。
云服务系统通常会包括多个网关,为了避免多个网关重复创建冷启动资源池,因此,需要从多个网关中选择一个主节点,由主节点进行所有的资源池操作,其他网关作为从节点,冷启动资源池创建完成后将相关资源池的信息同步给从节点。
S906、若选主失败,则等待下次重试。
在选主成功的情况下,作为主节点的网关周期性检查缓存池中资源池相关的元数据相比上个周期的变化,基于变化分别执行下述新建冷启动资源池/修改冷启动资源池容量/删除冷启动资源池的操作。
S907、执行WASM运行时预选、优选以及选定操作,并为选定的WASM运行时设置用户冷启动资源池标签(即第一标签)。
本步骤为新建冷启动资源池的操作,可以包括以下步骤:
1、预选:从公共资源池中过滤掉已被使用的WASM运行,如果没有符合要求的,网关流量调度的时候要选择部分WASM运行时禁止进行增量调度,等待WASM运行时的存量函数运行结束之后,继续冷启动资源池的创建操作。
2、优选:从预选后的WASM运行时中随机找到符合资源要求的WASM运行时作为优选结果。
3、选定:将优选的结果存入网关的内存中。
S908、修改冷启动资源池的容量。
用户可以输入指令以调整冷启动资源池容量,可以是扩容也可以是缩容。可参照图7所示实施例的描述,简明起见,此处不再赘述。
S909、删除冷启动资源池。
S910、网关同步用户冷启动资源池的信息给其他从节点。
以保证各网关中的冷启动资源池信息在内存中保持一致。在一些实施例中,作为主节点的网关可以通过raft协议和其他从节点同步冷启动资源池信息。
图10为本公开一实施例提供的冷启动资源处理方法的流程图。图10主要介绍资源预留的实现方式。请参阅图10所示,包括以下步骤:
S1001、用户向接入服务组件输入资源预留策略。
其中,接入服务组件提供分配策略的操作API,并将用户输入的资源预留策略写入数据库中。结合前文所述,资源预留策略可以是基于按照内存大小预留的模式或者按照比例分配的模式生成的策略。
S1002、网关周期性地从接入服务组件的数据库中同步资源预留策略。
S1003、按照资源预留策略分配WASM运行时,并为WASM运行时设置第二标签。具体地,为WASM运行时下创建的WASM虚拟机设置第二标签,可参照前文详细描述。
S1004、修改资源预留策略。
S1005、删除预留资源策略。
即删除WASM运行时的第二标签。
S1006、WASM运行时定期通过心跳汇报资源信息至主机代理组件。
S1007、主机代理组件将资源信息转发给网关。即汇报资源信息给网关。
资源预留进行修改或者删除资源预留策略之后,WASM运行时反馈资源信息至网关,网关进行存储,保证网关中记录的各WASM运行的状态与实际状态一致。
在图10所示实施例的基础上,WASM运行时创建相应的WASM虚拟机并设置第二标签之后,主机代理组件还可以加载相应的WASM函数代码,以去除冷启动的过程。
通过图10所示实施例,通过为各WASM函数预留冷启动资源,且提前加载函数代码,能够有效减小函数请求的总耗时。
应理解,图9以及图10所示实施例中的用户即为前文中提及的FaaS应用请求方。
图11为本公开一实施例提供的冷启动资源处理装置的结构示意图。请参阅图11所示,本实施例提供的装置1100包括:
获取模块1101,用于获取资源池创建指令,其中,所述资源池创建指令包含FaaS应用请求方指定的冷启动资源池的资源要求。
资源处理模块1102,用于响应所述资源池创建指令,从公共资源池包括的WASM运行时中选择符合所述资源要求的目标WASM运行时;所述目标WASM运行时中能够运行至少一个WASM虚拟机,所述WASM虚拟机用于所述FaaS应用请求方部署的WASM函数的冷启动。
标签设置模块1103,用于为所述目标WASM运行时设置第一标签,得到所述FaaS应用请求方对应的冷启动资源池;所述第一标签用于指示所述目标WASM运行时属于所述FaaS应用请求方对应的冷启动资源池,在对应的FaaS应用冷启动时被调用。
在一些实施例中,获取模块1101,还用于获取资源池扩容指令。
资源处理模块1102,还用于响应所述资源池扩容指令,从所述公共资源池中选择当前工作负载为零且符合所述资源要求的WASM运行时添加至所述冷启动资源池,以扩大所述冷启动资源池的容量。
在一些实施例中,获取模块1101,还用于获取资源池缩容指令。
资源处理模块1102,还用于响应所述资源池缩容指令,则将所述冷启动资源池中当前工作负载为零的目标WASM运行时释放至所述公共资源池,以缩小所述冷启动资源池的容量。
在一些实施例中,获取模块1101,还用于获取资源池删除指令。
资源处理模块1102,还用于响应所述资源池删除指令,释放所述冷启动资源池中的所有目标WASM运行时至所述公共资源池。
在一些实施例中,获取模块1101,还用于获取资源预留指令;所述资源预留指令包括:所述冷启动资源池的资源分配策略。
资源处理模块1102,还用于响应所述资源预留指令,基于各所述目标WASM运行时的资源占用情况以及所述资源分配策略,为各所述WASM函数确定相匹配的目标WASM运行时;控制所述目标WASM运行时创建相应的WASM虚拟机。
标签设置模块1103,还用于为所述WASM虚拟机设置第二标签,所述第二标签用于指示创建的WASM虚拟机与相应WASM函数之间的绑定关系。
在一些实施例中,所述资源分配策略包括:所述FaaS应用请求方部署的各WASM函数分别需要预留的冷启动资源的内存大小,或者,所述FaaS应用请求方部署的各WASM函数分别需要预留的冷启动资源占所述冷启动资源池的比例。
在一些实施例中,资源处理模块1102,还用于控制所述目标WASM运行时下的各WASM虚拟机分别加载相应的所述WASM函数的代码,实例化所述WASM函数。
在一些实施例中,资源处理模块1102,还用于周期性地检测为各所述WASM函数分别预留的冷启动资源是否满足相应的预留要求;检测到不满足时,调整所述冷启动资源池中的资源分配,直至满足各所述WASM函数分别对应的预留要求。
本实施例提供的装置可以用于执行前述任一方法实施例的技术方案,其实现原理以及技术效果类似,可参照前述方法实施例的详细描述,简明起见,此处不再赘述。
图12为本公开一实施例提供的电子设备的结构示意图。请参阅图12所示,本实施例提供的电子设备1200包括:存储器1201和处理器1202。
其中,存储器1201可以是独立的物理单元,与处理器1202可以通过总线1203连接。存储器1201、处理器1202也可以集成在一起,通过硬件实现等。
存储器1201用于存储程序指令,处理器1202调用该程序指令,执行以上任一方法实施例提供的冷启动资源处理方法。
可选地,当上述实施例的方法中的部分或全部通过软件实现时,上述电子设备1200也可以只包括处理器1202。用于存储程序的存储器1201位于电子设备1200之外,处理器1202通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器1202可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
处理器1202还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器1201可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
本公开还提供一种可读存储介质,包括:计算机程序指令,所述计算机程序指令被电子设备的至少一个处理器执行时,使得所述电子设备实现如上任一方法实施例提供的冷启动资源处理方法。
本公开还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现如上任一方法实施例提供的冷启动资源处理方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种冷启动资源处理方法,其特征在于,包括:
获取资源池创建指令,其中,所述资源池创建指令包含FaaS应用请求方指定的冷启动资源池的资源要求,所述FaaS应用请求方用于在云服务系统中部署WASM函数;
响应所述资源池创建指令,从公共资源池包括的WASM运行时中选择符合所述资源要求的目标WASM运行时;所述目标WASM运行时中能够运行至少一个WASM虚拟机,所述WASM虚拟机用于所述FaaS应用请求方部署的WASM函数的冷启动;
为所述目标WASM运行时设置第一标签得到所述FaaS应用请求方对应的冷启动资源池;所述第一标签用于指示所述目标WASM运行时属于所述FaaS应用请求方对应的冷启动资源池,在对应的FaaS应用冷启动时被调用。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取资源池扩容指令;
响应所述资源池扩容指令,从所述公共资源池中选择当前工作负载为零且符合所述资源要求的WASM运行时添加至所述冷启动资源池,以扩大所述冷启动资源池的容量。
3.根据权利要求1所述的方法,其特征在于,还包括:
获取资源池缩容指令;
响应所述资源池缩容指令,则将所述冷启动资源池中当前工作负载为零的目标WASM运行时释放至所述公共资源池,以缩小所述冷启动资源池的容量。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取资源池删除指令;
响应所述资源池删除指令,释放所述冷启动资源池中的所有目标WASM运行时至所述公共资源池。
5.根据权利要求1至4任一项所述的方法,其特征在于,还包括:
获取资源预留指令;所述资源预留指令包括:所述冷启动资源池的资源分配策略;
响应所述资源预留指令,基于各所述目标WASM运行时的资源占用情况以及所述资源分配策略,为所述FaaS应用请求方部署的各所述WASM函数确定相匹配的目标WASM运行时;
控制所述目标WASM运行时创建相应的WASM虚拟机,并为所述WASM虚拟机设置第二标签,所述第二标签用于指示创建的WASM虚拟机与相应WASM函数之间的绑定关系。
6.根据权利要求5所述的方法,其特征在于,所述资源分配策略包括:所述FaaS应用请求方部署的各WASM函数分别需要预留的冷启动资源的内存大小,或者,所述FaaS应用请求方部署的各WASM函数分别需要预留的冷启动资源占所述冷启动资源池的比例。
7.根据权利要求5所述的方法,其特征在于,控制所述目标WASM运行时创建相应的WASM虚拟机,并为所述WASM虚拟机设置第二标签之后,还包括:
控制所述目标WASM运行时下的各WASM虚拟机分别加载相应的所述WASM函数的代码,实例化所述WASM函数。
8.根据权利要求7所述的方法,其特征在于,还包括:
周期性地检测为各所述WASM函数分别预留的冷启动资源是否满足相应的预留要求;
检测到不满足时,调整所述冷启动资源池中的资源分配,直至满足各所述WASM函数分别对应的预留要求。
9.一种冷启动资源处理装置,其特征在于,包括:
获取模块,用于获取资源池创建指令,其中,所述资源池创建指令包含FaaS应用请求方指定的冷启动资源池的资源要求,所述FaaS应用请求方用于在云服务系统中部署WASM函数;
资源处理模块,用于响应所述资源池创建指令,从公共资源池包括的WASM运行时中选择符合所述资源要求的目标WASM运行时;所述目标WASM运行时中能够运行至少一个WASM虚拟机,所述WASM虚拟机用于所述FaaS应用请求方部署的WASM函数的冷启动;
标签设置模块,用于为所述目标WASM运行时设置第一标签得到所述FaaS应用请求方对应的冷启动资源池;所述第一标签用于指示所述目标WASM运行时属于所述FaaS应用请求方对应的冷启动资源池,在对应的FaaS应用冷启动时被调用。
10.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器被配置为存储计算机程序指令;
所述处理器被配置为执行所述计算机程序指令,使得所述电子设备实现如权利要求1至8任一项所述的冷启动资源处理方法。
11.一种可读存储介质,其特征在于,包括:计算机程序指令;
电子设备的至少一个处理器执行所述计算机程序指令,使得所述电子设备实现如权利要求1至8任一项所述的冷启动资源处理方法。
12.一种计算机程序产品,其特征在于,电子设备的至少一个处理器执行所述计算机程序产品,使得所述电子设备实现如权利要求1至8任一项所述的冷启动资源处理方法。
CN202211011118.5A 2022-08-23 2022-08-23 冷启动资源处理方法及装置 Active CN115357342B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211011118.5A CN115357342B (zh) 2022-08-23 2022-08-23 冷启动资源处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211011118.5A CN115357342B (zh) 2022-08-23 2022-08-23 冷启动资源处理方法及装置

Publications (2)

Publication Number Publication Date
CN115357342A CN115357342A (zh) 2022-11-18
CN115357342B true CN115357342B (zh) 2024-05-28

Family

ID=84003278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211011118.5A Active CN115357342B (zh) 2022-08-23 2022-08-23 冷启动资源处理方法及装置

Country Status (1)

Country Link
CN (1) CN115357342B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158850A (zh) * 2019-12-09 2020-05-15 国网辽宁省电力有限公司大连供电公司 基于虚拟机iaas层资源分配的最优化算法
CN111475235A (zh) * 2020-04-13 2020-07-31 北京字节跳动网络技术有限公司 函数计算冷启动的加速方法、装置、设备及存储介质
US10805323B1 (en) * 2020-03-02 2020-10-13 Cloudflare, Inc. Cloud computing platform that isolates suspicious third-party code in a distributed cloud computing network
CN111782343A (zh) * 2020-07-03 2020-10-16 紫光云技术有限公司 一种虚机的快速部署方法、装置、存储介质及设备
WO2020226659A1 (en) * 2019-05-09 2020-11-12 Huawei Technologies Co., Ltd. Faas warm startup and scheduling
CN112214293A (zh) * 2017-11-08 2021-01-12 华为技术有限公司 一种无服务器架构下业务部署的方法和函数管理平台
CN113656179A (zh) * 2021-08-19 2021-11-16 北京百度网讯科技有限公司 云计算资源的调度方法及装置、电子设备和存储介质
CN114064251A (zh) * 2022-01-19 2022-02-18 浪潮云信息技术股份公司 一种函数启动加速方法、装置、设备及可读存储介质
CN114327776A (zh) * 2021-12-30 2022-04-12 支付宝(杭州)信息技术有限公司 用于智能合约的调试方法、调试设备和调试系统
CN114816713A (zh) * 2022-05-16 2022-07-29 阿里巴巴(中国)有限公司 函数调用方法及系统
CN114879948A (zh) * 2022-07-08 2022-08-09 北京百度网讯科技有限公司 基于WebAssembly的智能合约处理方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8676981B2 (en) * 2011-05-12 2014-03-18 International Business Machines Corporation Routing service requests based on lowest actual cost within a federated virtual service cloud
US11392357B2 (en) * 2019-12-13 2022-07-19 Sap Se Delegating bytecode runtime compilation to serverless environment
US11645098B2 (en) * 2020-11-17 2023-05-09 Sap Se Systems and methods to pre-provision sockets for serverless functions

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214293A (zh) * 2017-11-08 2021-01-12 华为技术有限公司 一种无服务器架构下业务部署的方法和函数管理平台
WO2020226659A1 (en) * 2019-05-09 2020-11-12 Huawei Technologies Co., Ltd. Faas warm startup and scheduling
CN111158850A (zh) * 2019-12-09 2020-05-15 国网辽宁省电力有限公司大连供电公司 基于虚拟机iaas层资源分配的最优化算法
US10805323B1 (en) * 2020-03-02 2020-10-13 Cloudflare, Inc. Cloud computing platform that isolates suspicious third-party code in a distributed cloud computing network
CN111475235A (zh) * 2020-04-13 2020-07-31 北京字节跳动网络技术有限公司 函数计算冷启动的加速方法、装置、设备及存储介质
CN111782343A (zh) * 2020-07-03 2020-10-16 紫光云技术有限公司 一种虚机的快速部署方法、装置、存储介质及设备
CN113656179A (zh) * 2021-08-19 2021-11-16 北京百度网讯科技有限公司 云计算资源的调度方法及装置、电子设备和存储介质
CN114327776A (zh) * 2021-12-30 2022-04-12 支付宝(杭州)信息技术有限公司 用于智能合约的调试方法、调试设备和调试系统
CN114064251A (zh) * 2022-01-19 2022-02-18 浪潮云信息技术股份公司 一种函数启动加速方法、装置、设备及可读存储介质
CN114816713A (zh) * 2022-05-16 2022-07-29 阿里巴巴(中国)有限公司 函数调用方法及系统
CN114879948A (zh) * 2022-07-08 2022-08-09 北京百度网讯科技有限公司 基于WebAssembly的智能合约处理方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
云计算资源池负载均衡调度策略研究;许成林;杨德胜;何亮;;科技创新导报;20200711(第20期);全文 *

Also Published As

Publication number Publication date
CN115357342A (zh) 2022-11-18

Similar Documents

Publication Publication Date Title
JP5516744B2 (ja) スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
CN106293893B (zh) 作业调度方法、装置及分布式系统
US20180136842A1 (en) Partition metadata for distributed data objects
JP2004171234A (ja) マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
CN110377402A (zh) 业务数据处理方法、装置、存储介质及计算机设备
JP2014520346A5 (zh)
CN110597614A (zh) 一种资源调整方法及装置
CN112596762A (zh) 一种滚动升级方法及装置
CN112948050A (zh) 一种部署pod的方法及装置
CN110162396A (zh) 内存回收方法、装置、系统和存储介质
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
CN113886069A (zh) 一种资源分配方法、装置、电子设备及存储介质
CN114253713B (zh) 一种基于reactor的异步批处理方法及系统
CN113254223A (zh) 一种系统重启后的资源分配方法、系统及相关组件
CN115357342B (zh) 冷启动资源处理方法及装置
JPH08221372A (ja) 分散処理システムにおける空き資源管理装置
CN116881003A (zh) 资源分配方法、装置、服务设备及存储介质
CN110019057B (zh) 请求处理方法及装置
JP5776813B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム
CN105760215A (zh) 基于映射规约模型分布式文件系统作业的运行方法
CN116932196A (zh) 融合系统的数据处理方法、装置、设备和系统
CN117827390A (zh) 数据处理方法以及计算机设备
CN114860400A (zh) 区块链任务的链下处理方法及装置
CN110287004B (zh) 基于docker容器技术的基础环境镜像预热方法及装置
CN108021442A (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