CN110837408A - 一种基于资源缓存的高性能无服务器计算方法及系统 - Google Patents
一种基于资源缓存的高性能无服务器计算方法及系统 Download PDFInfo
- Publication number
- CN110837408A CN110837408A CN201910869946.4A CN201910869946A CN110837408A CN 110837408 A CN110837408 A CN 110837408A CN 201910869946 A CN201910869946 A CN 201910869946A CN 110837408 A CN110837408 A CN 110837408A
- Authority
- CN
- China
- Prior art keywords
- container
- software package
- serverless
- computing
- node
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/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
-
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于资源缓存的高性能无服务器计算方法及系统,其包括客户端、控制节点、计算节点、软件包仓库;其中,客户端,用于发起调用请求,请求调用无服务器计算平台;控制节点,负责无服务器计算中调用请求的接收、调用触发、容器调度、无服务器计算平台中的主节点选举,以及当调度器调度无服务器处理程序时,在软件包注册表中进行查询,将用于执行无服务器处理程序的容器调度到合适节点上;控制节点的容器缓存控制器负责采集计算节点上容器的执行信息和系统的状态信息,并根据采集信息进行容器缓存时间的调整,控制节点的软件包注册表负责存储函数‑软件包和软件包‑计算节点的映射信息。本发明具有高性能和易于落地的特点。
Description
技术领域
本发明涉及一种基于资源缓存的高性能无服务器计算系统及相关方法,属于云服务和计算技术领域。
背景技术
云计算发展日新月异,目前无服务器计算已经成为云计算发展的必然趋势。无服务器计算对原有应用程序进行拆解,提供更加细粒度的服务调度,只有在有请求到来时占用资源调用服务,没有请求时不占用任何资源,按照调用次数、时长进行计费。相比传统的在线服务模式,无服务器计算极大降低了用户的使用成本,使用户可以完全不必关注服务器的配置问题从而简化了开发,以及提供了相比传统在线服务更好的伸缩性。然而,目前的无服务器计算模型由于其本身容器冷启动的特性带来了较为明显的性能问题。根据无服务器计算本身的特性,我们发现导致性能的原因主要为以下三点:(1)在无服务器计算场景中,由于其对应用的拆解以及冷启动容器的特性,使得容器的启动变得极为频繁,在未经优化场景中,创建容器时设置隔离资源时涉及到全局加锁的操作,导致高并发场景下创建容器出现性能瓶颈;(2)在无服务器计算场景中,由于其对应用的拆解,在现有无服务器计算场景中,容器镜像种类、数量、版本更新次数远远多于传统在线服务场景,因此无法有效在工作节点本地缓存容器,使得每次在启动容器之前需要从远程的容器镜像仓库中拉取镜像,这个过程极大增加了平台上的耗时,从而影响总的调用延迟;(3)在现有无服务器场景中,由于无服务器计算本身的特性,容器在执行完无服务器处理程序之后会销毁容器,这样导致了如果再次在同一台工作节点上执行相同的无服务器处理程序需要重新启动容器,这样又进一步增加了容器的启动频率。
因此,避免容器的启动次数和减少容器启动初始化、软件包准备的时间能够有效解决以上问题。目前已经有少部分工作已经针对这两点进行了优化,但是都或多或少存在局限性。已知的工作描述如下。美国威斯康星大学麦迪孙分校的Oakes等人针对无服务器调用过程中应用程序和容器初始化过程缓慢的现状,首先分析了各种Linux容器原语,找出与存储和网络隔离相关的可伸缩性瓶颈,研发了一种面向无服务器场景的容器SOCK,SOCK精简了原有容器在网络、存储上的隔离,加速了容器启动性能,但是精简之后的容器会带来功能上的缺失,难以用于目前的生产环境。诺基亚贝尔实验室的Akkus等人设计实现了一种面向高性能的无服务器计算系统SAND。SAND针对现有无服务器平台通常在单独的容器中隔离和执行函数,并且并没有利用函数之间的交互来提高性能而导致功能执行的高启动延迟和低效的资源使用这个问题,引入了应用程序级别的沙箱、分层消息总线两个关键技术,从而提供比现有无服务器平台更低的启动延迟和更高的资源使用率,不足之处在于高层级的隔离难以实现,且存在稳定性和安全性的问题。
发明内容
针对现有技术的不足,本发明的目的在于提供一种基于资源缓存的高性能无服务器计算系统及相关方法,本发明具有高性能和易于落地的特点,可以大幅度削减目前主流无服务器计算系统由于容器冷启动特性耗费在平台上的时间,从而降低无服务器计算调用的延迟。
本发明的技术解决方案是:一种基于资源缓存的高性能无服务器计算系统,包括客户端、控制节点、计算节点、软件包仓库。
客户端,用于发起调用请求,请求调用无服务器平台,客户端可以以Web界面、命令行工具、RESTful API三种形式进行请求调用。
控制节点,为核心部分之一,负责无服务器计算中调用请求的接收、调用触发、容器调度、主节点选举等功能,目前主流的无服务器计算平台主要包括API网关、主节点选举器、调度器三个组件,其中API网关负责接收客户端发送的请求,并根据其注册时的规则唤起相应的无服务器处理程序的调用,主节点选举器负责在之前工作的控制节点失效之后重新选举新的控制节点,保证系统的高可用,调度器负责监听API网关触发的无服务器处理程序的调用,负责将无服务器处理程序以容器的形式调度到合适的计算节点上进行执行,控制节点的容器缓存控制器负责采集计算节点上容器的执行信息和系统的状态信息,比如无服务器处理程序的执行时间、负载大小等,然后根据这些信息进行容器缓存时间的调整,软件包注册表负责存储函数和其所依赖的软件包的映射关系、计算节点及其上缓存的软件包的映射信息,在编程人员通过客户端上传无服务器计算处理程序时,本系统中的软件包注册表会使用ATS解析技术解析处理程序源文件中的包导入语句,将客户端上传的无服务器计算处理程序和其所依赖软件包的映射关系写入软件包注册表,在计算节点下载缓存软件包时,会将相关计算节点和软件包的映射关系写入软件包注册表(当计算节点a下载了软件包A,则计算节点a与软件包A之间形成映射关系),最后,在调度器调度无服务器处理程序时,会在软件包注册表中进行查询,优先执行无服务器处理程序的容器调度到所需软件包已经存在的计算节点上,避免从远程软件包仓库下载软件包。
计算节点,为核心部分之一,负责无服务器计算中无服务器处理程序的执行,目前主流的无服务器计算平台主要包括执行代理和容器两部分,执行代理负责监听主控节点上API网关,启动调度到该计算节点上的容器,容器作为无服务器处理程序的执行载体,需要经过启动初始化容器、导入所需的第三方软件包之后才可以在容器中执行无服务器处理程序,在无服务器处理程序执行完毕之后,执行代理会销毁容器。
软件包仓库,是各种编程语言所需软件包的集合,包括上传的无服务器计算处理程序。在经过改进的无服务器计算场景下,无服务器处理程序采用懒加载的方式进行包的导入,在容器启动、初始化完成之后,容器从远程软件包仓库上将所需的软件包经过下载、安装、导入三个过程将所需软件包准备。
进一步地,所述控制节点包括容器缓存控制器,所述容器缓存控制器的具体实现与工作方式包括:
容器缓存控制器主要由计算节点上的数据采集器和控制节点上的性能建模器协作实现其功能;
计算节点上的数据采集器负责采集节点上每个容器的容器启动初始化时间、执行的无服务器处理程序的类型、执行无服务器处理程序的时间、容器缓存时间、当前无服务器计算事件的负载大小、当前处理该无服务器计算事件的容器的个数等指标;
每隔一段时间,计算节点上的数据采集器会将这些指标同步到控制节点上的容器缓存控制器上去,容器缓存控制器采用卡尔曼滤波算法基于当前采集的信息对下一段时间容器缓存的时间进行预测,之后通过调度器对新启动容器的缓存时间进行调整。
容器缓存控制器将原始的卡尔曼滤波方程进行扩展。系统需要预测的是每个无服务器计算事件对应的容器缓存时间Ti组成的多维向量(T1,T2,...,Ti),H(k)为观测矩阵,负责将测量值的多维向量转换为待预估的多维向量,测量值为当前各事件负载大小Qi、容器CPU资源利用率μ0i、容器内存利用率μ1i、容器缓存时间T0i。状态转移矩阵F(k)是对当前时刻k的状态描述,噪声矩阵W(k)和V(k)是状态转移矩阵和实际的测量值之间的误差的协方差矩阵。W(k)是服从W(k)~N(0,Q)的高斯白噪声,V(k)是服从V(k)~N(0,R)的高斯白噪声,其中Q和R是高斯分布的标准差,所以噪声矩阵可表示为以下方程,其中T和U是对容器缓存时间的实时调整值,其方程如公式(1)和公式(2)所示。
W(k)=UR ...(1)
V(k)=TQ ...(2)
自适应的卡尔曼滤波器的状态预估值X和真实测量值Z的预测方程如公式(3)和公式(4)所示,k表示在第k个时间段。
X(k+1|k)=F(k+1|k)X(k|k) ...(3)
Z(k+1|k+1)=H(k)X(k+1|k) ...(4)
k+1时段状态更新的方程如公式(5)所示。
X(k+1|k+1)=X(k+1|k)+K(k+1)(Z(k+1|k+1)-Z(k+1|k+1)) ...(5)
滤波增益K的矩阵如公式(6)所示。
K(k+1)=P(k+1|k)HT(k)(H(k)P(k+1|k)HT(k)+T(k+1)R)-1 ...(6)
预测协方差阵P如公式(7)所示。
P(k+1|k)=(k+1|k)(k|k)FT(k+1|k)+U(k+1)Q ...(7)
k+1时段协方差阵更新的方程如公式(8)所示。
P(k+1|k+1)=(In-(k+1)H(k))P(k+1|k) ...(8)
残差方差矩阵S如公式(9)所示。
S=F(k+1|k+1)(H(k)P(k|k)HT(k)+Q)HT(k)+R ...(9)
公式(3)、(4)和(5)描述了根据k时刻的状态来估计预估k+1时刻状态的方法,公式(6)、(7)和(8)对状态预估的好坏进行了量化描述。其中Z(k+1|k+1)-Z(k+1|k+1)定义为残差,其代表了系统对观测值的依赖程度。残差的物理意义是观测矩阵的真实测量值与其预估值之差,如果残差为零均值的白噪声,说明状态预估的准确率非常高,否则准确率较低,需要对卡尔曼滤波器的参数进行调整。公式(9)描述了残差与噪声矩阵的标准差Q和R的关系。最后,可以根据分析残差的方差及均值,推理噪声矩阵的调整值,从而达到校准卡尔曼滤波器参数的目的。
基于上述的约束分析和自适应的卡尔曼滤波器算法,基于状态预测的容器重用控制方法为:首先,系统会随机设定卡尔曼滤波器的初始参数,进行滤波增益计算,然后根据当前观测到的负载大小、资源利用率、容器暂停时间、平均平台冷启动时间、平均函数执行时间等状态,使用卡尔曼滤波器预测下一个周期内各类容器暂停的时间。方法基于预测的结果对每类容器的约束进行判断,如果不符合约束范围,则对容器进行扩容或缩容,否则执行新的容器暂停时间。最后根据当前状态和预测状态计算残差方差和均值,自适应地对卡尔曼滤波器的参数进行调整。
进一步地,所述控制节点包括软件包注册表,所述软件包注册表的具体实现与工作方式包括:
软件包注册表主要由控制节点上的软件包注册表、计算节点上的软件包缓存和远程的软件包仓库协作实现其功能;
计算节点上的容器在准备无服务器计算处理程序所需的软件包的过程包括从远程的软件包仓库下载所需软件包的压缩包、将压缩包解压安装到本地的软件包缓存索引上、将计算节点本地磁盘上的软件包导入到内存中;
在上述过程的基础上,计算节点本地缓存软件包的同时会将软件包的编号和计算节点的编号以键值对的形式同步到控制节点上的软件包注册表上,在用户上传无服务器计算处理程序时,会解析该无服务器计算处理程序源代码中的导入软件包的语句,并将无服务器计算处理程序的编号和其所依赖的软件包编号以键值对的形式同步到软件包注册表上;
在上述过程的基础上,调度器在进行容器调度时,会对软件包注册表进行二次查询,即根据无服务器处理程序中的依赖声明语句查询得到其所需的软件包,根据查询到的软件包查询到已经存在该软件包的计算节点,调度器会优先将容器调度到已经存在所需软件包的计算节点上。
进一步地,所述计算节点包括隔离资源缓存池,所述隔离资源缓存池的具体实现与工作方式包括:
目前主流的无服务器平台采用创建新的隔离资源的方式以创建启动Linux容器,在容器销毁时将对应的隔离资源销毁;
所述的隔离资源指的是Namespace和Cgroups,Namespace负责容器的逻辑隔离,Cgroups负责容器的性能隔离;
隔离资源缓存池将容器的Namespace、Cgroups这两个隔离资源以缓存的方式预留在隔离资源缓存池中,容器在创建的时候直接从隔离缓存资源池中绑定对应的资源,在容器销毁时将资源解绑返还给隔离资源缓存池;
在使用隔离资源缓存池启动容器的过程为:1)初始化隔离资源缓存池中的隔离资源、2)容器启动并绑定隔离资源缓存池中的一个可用的隔离资源、3)容器执行无服务器计算处理程序、4)执行结束后容器销毁解绑隔离资源并将其返还给隔离资源缓存池。
本发明与现有技术相比的优点在于:
(1)本发明针对无服务器计算场景下容器频繁启动导致资源竞争带来的性能瓶颈,引入了隔离资源缓存池部件,通过隔离资源缓存池启动容器,复用了已有的隔离资源,解决了高并发下创建隔离资源的瓶颈,提高了频繁创建容器时的性能;
(2)本发明针对现有无服务器计算平台工作节点本地难以缓存容器镜像的问题,采用懒加载的方式导入第三方软件包,基于属性的软件包容易缓存在工作节点本地,因而削减了从远程下载镜像或从远程下载安装软件包的时间;
(3)本发明针对现有无服务器计算平台在执行完无服务器实例后立即销毁容器的问题,设计了一种容器缓存,在执行完无服务器实例后不立即销毁容器,这样减少了容器启动、准备软件包的开销,并且设计了一种基于当前状态的预测方法,精准控制容器缓存时间,提高了系统整体的资源利用率。
附图说明
图1为本发明的实施例的基于资源缓存的高性能无服务器计算系统的结构示意图;
图2为本发明的实施例的基于资源缓存的高性能无服务器计算系统的软件包注册表的结构示意图;
图3为本发明的实施例的基于资源缓存的高性能无服务器计算系统的容器缓存控制器启动容器的流程示意图。
具体实施方式
下面将结合本发明的附图,进一步说明本发明的技术方案,所描述的实施例是本发明一部分实施例,而不代表全部的实施例。
对于本领域的技术人员来说,一些公知技术可能未进行详细阐述。
本实施例中,一种基于资源缓存的高性能无服务器计算系统,如图1所示,基于资源缓存的高性能无服务器计算系统的计算方法步骤如下:
步骤101:计算节点本地软件包索引根据客户端发送的调用请求从远程的软件包仓库中下载所需的软件包压缩包并将其解压、安装到计算节点本地的软件包索引上;
步骤102:软件包仓库向软件包注册表发起同步信息的请求,将上一步中的软件包和计算节点的信息以键值对的形式同步到软件包注册表中;
步骤103:客户端向无服务器平台的API网关发起一个事件请求,API网关接收到事件之后唤起对应无服务器处理程序的调用;
步骤104:调度器监听到API网关对无服务器处理程序的调用后选取执行该无服务器处理程序的容器;
步骤105:调度器向软件包注册表查询无服务器计算处理程序所需的软件包和软件包已经存在的计算节点,优先将执行无服务器处理程序容器调度到软件包已经存在的计算节点上;
步骤106:该计算节点上的执行代理监听到在该计算节点上调度容器的请求;
步骤107:计算节点上的执行代理监听到在该节点上启动相应容器的请求,在机器本地使用隔离资源缓存池执行启动容器的操作,容器变为就绪状态,容器中用于启动无服务器处理程序的守护进程启动;
步骤108:容器从宿主机的软件包缓存中将所需的软件包导入到内存中,以二进制字节流的形式存在;
步骤109:在容器执行完无服务器处理程序之后,数据采集器从计算节点上和集群状态存储器中对容器、平台相关的信息进行采集,主要包括容器启动初始化时间、执行的无服务器处理程序的类型、执行无服务器处理程序的时间、容器缓存时间、当前无服务器计算事件的负载大小、当前处理该无服务器计算事件的容器的个数等指标;
步骤110:数据采集器每个周期将采集到的数据以JSON的数据格式用HTTP的POST方法传输给容器缓存控制器;
步骤111:容器缓存控制器根据当前的信息对下一段时间容器缓存进行预测,将调整的结果反馈给调度器,调度器在下一个周期执行新的容器缓存时间,整个过程形成一个闭环。
本实施例中,一种基于资源缓存的高性能无服务器计算系统的软件包注册表的结构示意图,如图2所示,基于资源缓存的高性能无服务器计算系统,其特征在于步骤如下:
步骤201:处理程序的代码检查工具将无服务器处理程序的信息同步到软件包注册表的处理程序表上;
步骤202:处理程序的代码检查工具将处理程序所包含的软件包的信息同步到软件包注册表的软件包表上,并生成处理程序到软件包的映射;
步骤203:计算节点将计算节点的信息同步到软件包注册表的计算节点表上;
步骤204:计算节点将计算节点上所缓存的软件包的信息同步到软件包注册表的软件包表上,并生成软件包到计算节点的映射;
步骤205:调度器向软件包注册表发起查询请求,提交待查询的处理程序信息;
步骤206:处理程序表向软件包表发起查询,查询得到所需的软件包;
步骤207:软件包表向计算节点表发起查询,查询得到符合条件的计算节点;
步骤208:软件包注册表将符合条件的计算节点的信息返回给调度器;
步骤209:调度器结合原有的调度策略,优先将容器调度到符合条件的计算节点上。
本实施例中,一种基于资源缓存的高性能无服务器计算系统的容器缓存控制器启动容器的流程图,如图3所示,具体实施步骤如下:
步骤301:计算节点本地启动容器,并接入数据采集器对容器的监控;
步骤302:数据采集器监控一个周期内容器的相关指标,主要包括容器启动初始化时间、执行的无服务器处理程序的类型、执行无服务器处理程序的时间、容器缓存时间、当前无服务器计算事件的负载大小、当前处理该无服务器计算事件的容器的个数等指标;
步骤303:数据采集器将采集到的信息同步到控制节点的容器缓存控制器;
步骤304:容器缓存控制器采用卡尔曼滤波器对下个周期容器的缓存时间进行预测;
步骤305:容器缓存控制器将新的容器缓存时间同步到执行代理上;
步骤306:执行代理按照新设置的容器缓存时间启动新的容器。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (8)
1.一种基于资源缓存的高性能无服务器计算系统,其特征在于,包括客户端、控制节点、计算节点、软件包仓库;其中,
客户端,用于发起调用请求,请求调用无服务器计算平台;无服务器计算平台包括API网关、主节点选举器、调度器,其中API网关负责接收客户端发送的无服务器事件,并根据其注册时的规则唤起相应的无服务器处理程序的调用,主节点选举器负责在之前工作的控制节点失效之后重新选举新的控制节点,调度器负责监听API网关触发的无服务器处理程序的调用,负责将无服务器处理程序以容器的形式调度到计算节点上进行执行;
控制节点,负责无服务器计算中调用请求的接收、调用触发、容器调度、无服务器计算平台中的主节点选举,以及当调度器调度无服务器处理程序时,在软件包注册表中进行查询,将用于执行无服务器处理程序的容器调度到所需软件包已经存在的节点上;控制节点的容器缓存控制器负责采集计算节点上容器的执行信息和系统的状态信息,并根据采集信息进行容器缓存时间的调整,控制节点的软件包注册表负责存储函数-软件包和软件包-计算节点的映射信息;
计算节点,负责无服务器处理程序的执行;
软件包仓库,用于存储软件包。
2.如权利要求1所述的系统,其特征在于,采集的信息包括容器启动初始化时间、执行的无服务器处理程序的类型、执行无服务器处理程序的时间、容器缓存时间、当前请求的负载大小、当前执行无服务器处理程序的容器的个数。
3.如权利要求1所述的系统,其特征在于,容器缓存控制器采用卡尔曼滤波算法根据当前采集的信息对下一周期容器缓存进行预测;其中,卡尔曼滤波算法中的噪声矩阵为W(k)=UR、V(k)=TQ,卡尔曼滤波算法中的状态预估值预测方程为X(k+1|k)=F(k+1|k)X(k|k)、真实测量值的预测方程为Z(k+1|k+1)=H(k)X(k+1|k)、状态更新的方程为X(k+1|k+1)=X(k+1|k)+K(k+1)(Z(k+1|k+1)-Z(k+1|k+1))、滤波增益的矩阵为K(k+1)=P(k+1|k)HT(k)(H(k)P(k+1|k)HT(k)+T(k+1)R)-1、预测协方差阵为P(k+1|k)=F(k+1|k)(k|k)FT(k+1|k)+U(k+1)Q、协方差阵更新的方程为P(k+1|k+1)=(In-K(k+1)H(k))P(k+1|k)、残差方差矩阵为S=F(k+1|k+1)(H(k)P(k|k)HT(k)+Q)HT(k)+R;方法的预测结果为每个无服务器处理程序对应的容器缓存时间Ti组成的多维向量(T1,T2,...,Ti);H(k)为观测矩阵,负责将测量值的多维向量转换为待预估的多维向量;测量值为当前各事件负载大小Qi、容器CPU资源利用率μ0i、容器内存利用率μ1i、容器缓存时间T0i;状态转移矩阵F(k)是对当前时刻k的状态描述,Q和R是高斯分布的标准差。
4.如权利要求1所述的系统,其特征在于,客户端上传无服务器处理程序时,软件包注册表将客户端上传的无服务器处理程序和其所依赖软件包的映射关系写入软件包注册表,在计算节点下载缓存软件包时,将相关计算节点和软件包的映射关系写入软件包注册表。
5.如权利要求1所述的系统,其特征在于,客户端通过Web界面、命令行工具或RESTfulAPI发起调用请求。
6.一种基于资源缓存的高性能无服务器计算方法,其步骤包括:
1)计算节点根据客户端发送的请求从软件包仓库中下载所需的软件包并将其安装到该计算节点上;
2)软件包仓库向软件包注册表发起同步信息的请求,将软件包信息和下载该软件包的计算节点信息以键值对的形式同步到软件包注册表中;
3)客户端向无服务器平台的API网关发起一个事件请求,API网关接收到该事件请求后唤起对应无服务器处理程序的调用;
4)无服务器平台的调度器监听到API网关对无服务器处理程序的调用后选取执行该无服务器处理程序的容器C;
5)调度器向软件包注册表查询无服务器处理程序所需的软件包及其所在的计算节点A;将所选容器C调度到该计算节点A上;
6)计算节点A在本地使用隔离资源缓存池执行启动容器C的操作;
7)容器C变为就绪状态后,计算节点A启动容器中用于启动无服务器处理程序的守护进程;
8)容器C从宿主机的软件包缓存中将所需的软件包导入到内存中;
9)在容器C执行完无服务器处理程序之后,计算节点A上的数据采集器对容器C信息进行采集;
10)数据采集器将每个周期采集的数据传输给控制节点的容器缓存控制器;
11)容器缓存控制器根据当前采集的信息对下一周期容器缓存进行预测,将预测的结果反馈给调度器,调度器根据预测结果调整下一周期新启动容器的缓存时间。
7.如权利要求6所述的方法,其特征在于,采集的信息包括容器启动初始化时间、执行的无服务器处理程序的类型、执行无服务器处理程序的时间、容器缓存时间、当前请求的负载大小、当前处理无服务器处理程序的容器的个数。
8.如权利要求6或7所述的方法,其特征在于,容器缓存控制器采用卡尔曼滤波算法根据当前采集的信息对下一周期容器缓存进行预测;其中,卡尔曼滤波算法中的噪声矩阵为W(k)=UR、V(k)=TQ,卡尔曼滤波算法中的状态预估值预测方程为X(k+1|k)=F(k+1|k)X(k|k)、真实测量值的预测方程为Z(k+1|k+1)=H(k)X(k+1|k)、状态更新的方程为X(k+1|k+1)=X(k+1|k)+K(k+1)(Z(k+1|k+1)-Z(k+1|k+1))、滤波增益的矩阵为K(k+1)=P(k+1|k)HT(k)(H(k)P(k+1|k)HT(k)+T(k+1)R)-1、预测协方差阵为P(k+1|k)=F(k+1|k)(k|k)FT(k+1|k)+U(k+1)Q、协方差阵更新的方程为P(k+1|k+1)=(In-K(k+1)H(k))P(k+1|k)、残差方差矩阵为S=F(k+1|k+1)(H(k)P(k|k)HT(k)+Q)HT(k)+R;方法的预测结果为每个无服务器处理程序对应的容器缓存时间Ti组成的多维向量(T1,T2,...,Ti);H(k)为观测矩阵,负责将测量值的多维向量转换为待预估的多维向量;测量值为当前各事件负载大小Qi、容器CPU资源利用率μ0i、容器内存利用率μ1i、容器缓存时间T0i;状态转移矩阵F(k)是对当前时刻k的状态描述,Q和R是高斯分布的标准差。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910869946.4A CN110837408B (zh) | 2019-09-16 | 2019-09-16 | 一种基于资源缓存的高性能无服务器计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910869946.4A CN110837408B (zh) | 2019-09-16 | 2019-09-16 | 一种基于资源缓存的高性能无服务器计算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837408A true CN110837408A (zh) | 2020-02-25 |
CN110837408B CN110837408B (zh) | 2022-06-17 |
Family
ID=69574572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910869946.4A Active CN110837408B (zh) | 2019-09-16 | 2019-09-16 | 一种基于资源缓存的高性能无服务器计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837408B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111562990A (zh) * | 2020-07-15 | 2020-08-21 | 北京东方通软件有限公司 | 一种基于消息的轻量级无服务器计算方法 |
CN111708656A (zh) * | 2020-04-26 | 2020-09-25 | 中国科学院软件研究所 | 基于懒加载机制的容器镜像拉取方法及系统 |
CN111897564A (zh) * | 2020-08-19 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 一种应用更新方法及系统 |
CN112445550A (zh) * | 2020-12-08 | 2021-03-05 | 中国科学院深圳先进技术研究院 | 一种预处理函数的无服务器计算方法及其系统 |
CN113114765A (zh) * | 2021-04-13 | 2021-07-13 | 成都九洲电子信息系统股份有限公司 | 一种基于反向代理的接口调用系统 |
CN114363350A (zh) * | 2021-12-14 | 2022-04-15 | 中科曙光南京研究院有限公司 | 一种服务治理系统及方法 |
CN114489940A (zh) * | 2022-01-18 | 2022-05-13 | 武汉理工大学 | 无服务器计算环境中基于时域卷积网络的冷启动优化方法 |
CN114598706A (zh) * | 2022-03-08 | 2022-06-07 | 中南大学 | 基于Serverless函数的存储系统弹性伸缩方法 |
CN115277419A (zh) * | 2022-08-09 | 2022-11-01 | 湖南大学 | 一种无服务计算中加速网络启动方法 |
WO2023109700A1 (zh) * | 2021-12-18 | 2023-06-22 | 深圳先进技术研究院 | 基于进程寄生的无服务器计算的分支预测方法及装置 |
CN116633932A (zh) * | 2023-07-21 | 2023-08-22 | 北京万界数据科技有限责任公司 | 一种云计算资源池动态调度系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631196A (zh) * | 2015-12-22 | 2016-06-01 | 中国科学院软件研究所 | 一种面向微服务架构的容器级弹性资源供给系统及方法 |
CN106776005A (zh) * | 2016-11-23 | 2017-05-31 | 华中科技大学 | 一种面向容器化应用的资源管理系统及方法 |
CN107426034A (zh) * | 2017-08-18 | 2017-12-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN108228347A (zh) * | 2017-12-21 | 2018-06-29 | 上海电机学院 | 一种任务感知的Docker自适应调度系统 |
US10121021B1 (en) * | 2018-04-11 | 2018-11-06 | Capital One Services, Llc | System and method for automatically securing sensitive data in public cloud using a serverless architecture |
CN108845878A (zh) * | 2018-05-08 | 2018-11-20 | 南京理工大学 | 基于无服务器计算的大数据处理方法及装置 |
-
2019
- 2019-09-16 CN CN201910869946.4A patent/CN110837408B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631196A (zh) * | 2015-12-22 | 2016-06-01 | 中国科学院软件研究所 | 一种面向微服务架构的容器级弹性资源供给系统及方法 |
CN106776005A (zh) * | 2016-11-23 | 2017-05-31 | 华中科技大学 | 一种面向容器化应用的资源管理系统及方法 |
CN107426034A (zh) * | 2017-08-18 | 2017-12-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN108228347A (zh) * | 2017-12-21 | 2018-06-29 | 上海电机学院 | 一种任务感知的Docker自适应调度系统 |
US10121021B1 (en) * | 2018-04-11 | 2018-11-06 | Capital One Services, Llc | System and method for automatically securing sensitive data in public cloud using a serverless architecture |
CN108845878A (zh) * | 2018-05-08 | 2018-11-20 | 南京理工大学 | 基于无服务器计算的大数据处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
ALFONSO PÉREZ 等: "Serverless computing for container-based architectures", 《FUTURE GENERATION COMPUTER SYSTEMS》 * |
刘畅 等: "基于无服务器架构的边缘AI计算平台", 《系统与方案》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708656A (zh) * | 2020-04-26 | 2020-09-25 | 中国科学院软件研究所 | 基于懒加载机制的容器镜像拉取方法及系统 |
CN111562990B (zh) * | 2020-07-15 | 2020-10-27 | 北京东方通软件有限公司 | 一种基于消息的轻量级无服务器计算方法 |
CN111562990A (zh) * | 2020-07-15 | 2020-08-21 | 北京东方通软件有限公司 | 一种基于消息的轻量级无服务器计算方法 |
CN111897564A (zh) * | 2020-08-19 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 一种应用更新方法及系统 |
CN112445550A (zh) * | 2020-12-08 | 2021-03-05 | 中国科学院深圳先进技术研究院 | 一种预处理函数的无服务器计算方法及其系统 |
CN112445550B (zh) * | 2020-12-08 | 2024-05-17 | 中国科学院深圳先进技术研究院 | 一种预处理函数的无服务器计算方法及其系统 |
CN113114765A (zh) * | 2021-04-13 | 2021-07-13 | 成都九洲电子信息系统股份有限公司 | 一种基于反向代理的接口调用系统 |
CN114363350A (zh) * | 2021-12-14 | 2022-04-15 | 中科曙光南京研究院有限公司 | 一种服务治理系统及方法 |
CN114363350B (zh) * | 2021-12-14 | 2024-04-16 | 中科曙光南京研究院有限公司 | 一种服务治理系统及方法 |
US11915003B2 (en) | 2021-12-18 | 2024-02-27 | Shenzhen Institutes Of Advanced Technology | Process parasitism-based branch prediction method and device for serverless computing, electronic device, and non-transitory readable storage medium |
WO2023109700A1 (zh) * | 2021-12-18 | 2023-06-22 | 深圳先进技术研究院 | 基于进程寄生的无服务器计算的分支预测方法及装置 |
CN114489940A (zh) * | 2022-01-18 | 2022-05-13 | 武汉理工大学 | 无服务器计算环境中基于时域卷积网络的冷启动优化方法 |
CN114598706A (zh) * | 2022-03-08 | 2022-06-07 | 中南大学 | 基于Serverless函数的存储系统弹性伸缩方法 |
CN115277419B (zh) * | 2022-08-09 | 2024-01-26 | 湖南大学 | 一种无服务计算中加速网络启动方法 |
CN115277419A (zh) * | 2022-08-09 | 2022-11-01 | 湖南大学 | 一种无服务计算中加速网络启动方法 |
CN116633932B (zh) * | 2023-07-21 | 2023-09-19 | 北京万界数据科技有限责任公司 | 一种云计算资源池动态调度系统 |
CN116633932A (zh) * | 2023-07-21 | 2023-08-22 | 北京万界数据科技有限责任公司 | 一种云计算资源池动态调度系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110837408B (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837408B (zh) | 一种基于资源缓存的高性能无服务器计算方法及系统 | |
CN106506605B (zh) | 一种基于微服务架构的SaaS应用构建方法 | |
CN109189589A (zh) | 一种分布式大数据计算引擎及架构方法 | |
US20170289059A1 (en) | Container-based mobile code offloading support system in cloud environment and offloading method thereof | |
CN106354729B (zh) | 一种图数据处理方法、装置和系统 | |
US20100318630A1 (en) | Leveraging Remote Server Pools for Client Applications | |
US20190272166A1 (en) | Updating software components through online stores | |
EP3049922A1 (en) | Virtual computing systems and methods | |
CN108920153A (zh) | 一种基于负载预测的Docker容器动态调度方法 | |
US11429448B2 (en) | Background job processing framework | |
CN110245003A (zh) | 一种机器学习单机算法编排系统及方法 | |
CN108989390B (zh) | 用户请求转发方法及装置、反向代理服务器和计算机可读存储介质 | |
Huang et al. | Scalably distributed SystemC simulation for embedded applications | |
CN113971066A (zh) | 一种Kubernetes集群资源动态调整方法及电子设备 | |
CN111158887B (zh) | 一种集中式数据分布式处理方法及装置 | |
CN112445550B (zh) | 一种预处理函数的无服务器计算方法及其系统 | |
CN110737510B (zh) | 块设备管理系统 | |
CN112882738A (zh) | 一种微服务架构下的配置信息更新方法、装置及电子设备 | |
TW200525345A (en) | Autonomous computing probe agent | |
CN111858200A (zh) | 系统测试中的吞吐量控制方法、装置及电子设备 | |
CN110275719A (zh) | 基于国产cpu和操作系统的云物理主机操作系统部署方法 | |
CN108737485B (zh) | 针对物联网资源的操作的方法及系统 | |
WO2023142924A1 (zh) | 电子地图运维方法、电子地图数据使用方法及服务系统 | |
CN112559152A (zh) | 一种基于异步式编程的分布式任务注册及调度方法和系统 | |
CN111597035A (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 |