基于优先级的无服务器计算冷启动调度
首先摘要:
说明,在无服务器中,冷启动会导致较长的响应延迟。
解决方法是通过减少冷启动的次数来缓解。
然而,现实中,最小冷启动次数并不等于最小响应延迟,根本原因是通过冷启动转换为热启动,各功能在延迟优势方面具有不同的优先级。
本文从云提供商的角度,提出了一种无服务器计算框架Incendio,框架利用基于优先级的调度来最小化总体响应延迟。一个函数优先级与多种因素有关,设计一个基于Spearman等级相关系数的优先级模型。集成了一种混合的Prophet-LightGBM预测模型来动态管理运行时池,使系统能够提前预热容器并在适当的时间终止容器。为满足无服务器计算的低成本和高精度要求,提出一种基于分簇强化学习的函数调度策略。
其实有疑惑:1.为什么说称为容器呢,启动容器?
在FAAS中,一个函数由一个或多个容器提供服务。当函数请求进入时,FAAS系统将检查是否有准备好为调用服务的容器。当空闲容器已经可用时,我们将其称为温容器(热启动)。如果没有准备好的容器,该函数将启动一个新的容器(冷启动)。由于冷启动需要创建一个容器,获取并安装必要的库和依赖项,然后才能执行函数本身,因此冷启动延迟通常比热启动高几倍甚至几十倍。例如,如图1所示,不同编程语言实现的HelloWorld函数的冷启动延迟可以达到热启动延迟的80倍,这将导致应用和服务响应极慢。由于实时在线服务的不可接受的延迟,用户更喜欢能够保证响应时间在几十毫秒内的提供商。火焰原子吸收系统(Flame AAS 或 FAAS)是一种分析仪器,用于测定样品中特定元素的含量,其原理是利用原子蒸气对特定波长的光产生吸收。该系统将样品雾化后送入火焰,高温使原子化,然后测量这些原子蒸气对特定波长光的吸收程度,从而进行定性或定量分析。
PayLoad:负载,MM:矩阵乘法函数,prime:调用频率
FCFS:函数按顺序调度,确保公平性,但不能保证容器重用,从而导致大量的容器初始化。
位置感知策略:可能会发生严重的资源争用
随机调度:会导致相同功能的请求频繁重用容器,同时可能导致新请求的不断关闭并重新初始化先前请求的容器,从而导致性能不稳定。
最有调度策略:连续优先执行具有最低执行延迟的最频繁调用的Javahello函数,完成后调度MM和Prime
Function Scheduler :功能调度?
我们将函数优先级P表示为F(·):P=F(CPU,Mem,I/O,Size,Init,Exec,Term,Freq,Clock)
P=F(CPU、内存、I/O、大小、初始化、执行、项、频率、时钟)