【技术实现步骤摘要】
一种无服务器计算架构中的容器预启动方法及装置
[0001]本专利技术属于边缘计算和网络通信技术索领域,具体涉及一种无服务器计算架构中的容器预启动方法及装置
。
技术介绍
[0002]Serverless
计算是一种新兴的计算范式,它是云计算的进阶形态
。Serverless
计算让开发者无需关心服务器等基础设施的管理,只需将应用拆分为若干个函数,上传到一个平台,就可以按需执行
、
自动扩展和按用量付费
。Serverless
计算并不是不用服务器,而是让服务器的配置
、
维护
、
更新
、
扩展和容量规划等工作由
Serverless
平台自动完成
。
[0003]Serverless
架构让服务器资源对用户不可见,用户只需关注应用的功能
。
边缘计算技术应对了
IoT
设备的增多和多样化的计算场景,它可以在边缘处理用户数据,节省带宽,降低延迟,提高实时性
。Serverless
架构让开发者无需管理计算资源,用户只需按用量付费,资源也可以按需分配
。
[0004]Serverless
架构中的冷启动问题会导致客户端请求服务的响应时间严重加大,而一般使用的服务函数保活策略又会大大浪费资源
。
技术实现思路
[0005]针对上述现有技术的不足,本专利技术提供一种无服务器计算架 ...
【技术保护点】
【技术特征摘要】
1.
一种无服务器计算架构中的容器预启动方法,其特征在于,包括以下步骤:步骤
S1
,构建系统,其中,系统由一个服务调度器节点
(
记作:
Controller)、
多个工作负载节点
(
记作:
Worker)、
一个容器镜像仓库
(
记作:
Registry)
和客户端
(
记作:
Client)
组成;
Registry
中存储着多类容器
(
记作:
Container)
的镜像,不同
Container
中承载不同的服务函数
(
记作:
Func)
,
Container
运行在
Worker
中;
Controller
中记录所有
Worker
的状态信息;系统的运行模式分两种模式,分别为初始模式和预热模式;当系统初始化时进入初始模式;在初始模式运行一天时间后系统进入预热模式;步骤
S2
,初始化所述步骤
S1
中构建的系统,系统进入初始模式;步骤
S3
,在系统处于初始模式下,
Client
请求调用服务函数;步骤
S4
,将所述步骤
S1
中构建的系统在初始模式下运行一天时间后准备进入预热模式,以计算出每一个函数的预热加权值与预期预热时间,具体如下:步骤
S41
,
Controller
从过去一天中的记录中获得每个
Func
的每次调用的到达时间
、
所在的容器占用的内存大小
、
执行时间,可得到过去一天中每个
Func
的被调用频数
、
每次调用的间隔时间
、
每次调用的平均执行时间
、
每次调用平均占用的内存大小;步骤
S42
,记任一函数为
Func f
,记
Func f
的调用频数为
N
f
,每两次调用的间隔时间组成的数组为
T
f
,
T
f
[1],T
f
[2],
……
T
f
[N](N
=
N
f
‑
1)
为每个时间间隔,调用的平均执行时间为
R
f
,调用占用的平均内存大小为
M
f
;记为
T
f
中所有元素的平均值,记
s(T
f
)
为
T
f
中所有元素的标准差,记
CV
f
表示数据沿着平均值波动的幅度比例;步骤
S43
,记所有
Func
的调用频数的平均值为标准差为
s(N)
,记
N
f
的
Z
分数为记所有
Func
的
CV
值的平均值为标准差为
s(CV
f
)
,记
CV
f
的
Z
分数为记所有
Func
的执行时间的平均值为标准差为
s(R)
,记
R
f
的
Z
分数为记所有
Func
的占用的内存大小的平均值为标准差为
s(M)
,记
M
f
的
Z
分数为记各个
Func
中调用频数的
Z
分数的最大值和最小值分别为
Z(N
max
)
和
Z(N
min
)
,记
N
f
的极差化分数记各个
Func
中调用平均执行时间的
Z
分数的最大值和最小值分别为
Z(R
max
)
和
Z(R
min
)
,记
R
f
的极差化分数的极差化分数记各个
Func
中
CV
值的
Z
分数的最大值和最小值分别为
Z(CV
max
)
和
Z(CV
min
)
,记
CV
f
的极差化分数记各个
Func
的占用内存大小平均值的
Z
分数的最大值和最小值分别为
Z(M
max
)
和
Z(M
min
)
,记
R
f
的极差化分数
记
Func f
的预热加权值为以计算出每个函数的预热加权值;步骤
S44
,记
Func f
的预期预热开始时间预期预热结束时间记
Func f
调用结束的时间为
t
,记
(t+PTS
f
,t+PTF
f
)
这一段时间为预期预热时间段,在预期预热时间段内
Func f
的预热加权值变为每次
Func f
调用结束都会刷新预期预热时间段,以计算出每个函数的预期预热时间段;步骤
S5
,对所有
Func
的实时预热加权值进行降序排序,从高到低循环选取
Func
,检查选中的
Func
是否已在
Worker
中启动;若是,则跳过并选中下一个;若否,则将预热指令发给最空闲的
Worker
;其中,所述系统在预热模式中每运行一段时间就更新预热加权值和预期预热时间段;步骤
S6
,当一个
Worker
接收到预热指令后,
Worker
对
Func
进行预热;步骤
S7
,在系统处于预热模式下,此时
Client
申请调用
Func。2.
根据权利要求1所述的无服务器计算架构中的容器预启动方法,其特征在于,所述步骤
S2
具体包括以下内容:启动所有的
Controller、Worker
和
Registry
,运行系统;当
Worker
中内存资源和
Container
运行信息发生改变时,将状态信息实时同步到
Controller
的
Worker
状态表
(
记作
Table_2)
中
。3.
根据权利要求1所述的无服务器计算架构中的容器预启动方法,其特征在于,所述步骤
S3
具体包括以下内容:步骤
S31
,当
Client
请求调用指定的
Func(
记作:
Func f1)
的服务时,向
Controller
发送对应
Func f1
的请求数据包
(
记作:
Msg_1)
;步骤
S32
,
Controller
接收到
Msg_1
后,在请求查询表中
(
记作:
Table_1)
中查找请求所对应的
Func f1,
并在
Worker
状态表中查找是否存在
Worker
已运行承载
Func f1
的容器
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。