当前位置: 首页 > 专利查询>北京大学专利>正文

面向无服务器计算的冷启动延迟优化方法、装置和设备制造方法及图纸

技术编号:36164996 阅读:15 留言:0更新日期:2022-12-31 20:14
本实施例提供了一种面向无服务器计算的冷启动延迟优化方法、装置和设备,所述方法包括:对FaaS应用进行可选文件消除处理,以获得简化的FaaS应用;对简化的FaaS应用进行无服务器函数识别和特殊函数识别,以确定所述FaaS应用中的无服务器函数和特殊函数;根据所述FaaS应用的函数调用图、所述无服务器函数和特殊函数生成可选函数集;对所述可选函数集中可选函数的代码进行函数级重写,并将可选函数的原始代码压缩为轻量级文件,得到优化的FaaS应用,并在执行所述优化的FaaS应用时以按需加载的方式获取需要的可选函数代码。在本实施例中,无需修改底层操作系统或虚拟机管理程序,从应用层面出发,实现通过减小执行代码的大小来优化无服务器函数的冷启动延迟。化无服务器函数的冷启动延迟。化无服务器函数的冷启动延迟。

【技术实现步骤摘要】
面向无服务器计算的冷启动延迟优化方法、装置和设备


[0001]本专利技术涉及软件
,特别涉及一种面向无服务器计算的冷启动延迟优化方法、装置和设备。

技术介绍

[0002]无服务器计算是一种流行的云计算范型,并被广泛应用机器学习、科学计算、视频处理等领域。目前,云提供商提供的无服务器平台包括:AWS Lambda,Azure Functions和Google Cloud Functions等,在这些无服务器平台中,函数服务(Function as a Service,FaaS)是最突出的实现方式,FaaS表示无服务器函数,将能实现应用功能的无服务器函数的组合,称为FaaS应用。底层的无服务器平台能自动处理资源管理,因此,在运行FaaS应用的时候不必管理服务器或虚拟机实例。当无服务器函数被事件触发时,无服务器平台能自动分配资源,若无服务器函数一段时间未被使用,则将资源释放。通过这种方式,实现资源轻量级和高效管理。
[0003]但无服务器计算中的这种按需资源管理引入了更长的响应延迟,在实践中,在准备执行环境时所花费的延迟(简称冷启动延迟)已被证明在各种应用场景的总响应延迟中是显著的。而现有的工作是从系统层面优化冷启动延迟,它们需要大量的工程工作来修改底层操作系统或虚拟机管理程序,同时还存在安全机制担忧。因此,优化冷启动延迟是当代FaaS应用面临的一项关键挑战。

技术实现思路

[0004]鉴于上述问题,本专利技术实施例提供了一种面向无服务器计算的冷启动延迟优化方法、装置和设备,以便克服上述问题或者至少部分地解决上述问题。
[0005]本专利技术实施例的第一方面,公开了一种面向无服务器计算的冷启动延迟优化方法,所述方法包括:对FaaS应用进行可选文件消除处理,以获得简化的FaaS应用;对所述简化的FaaS应用进行无服务器函数识别和特殊函数识别,以确定所述FaaS应用中的无服务器函数和特殊函数;根据所述FaaS应用的函数调用图、所述无服务器函数和所述特殊函数生成可选函数集;对所述可选函数集中可选函数的代码进行函数级重写,并将可选函数的原始代码压缩为轻量级文件,得到优化的FaaS应用,并在执行所述优化的FaaS应用时以按需加载的方式获取需要的可选函数代码。
[0006]可选地,所述对FaaS应用进行可选文件消除处理,以获得简化的FaaS应用,包括:删除对FaaS应用的功能不产生影响的不必要文件,所述不必要文件包括:与本地虚拟化环境相关的文件、编译文件、常用通用库中与信息相关的目录和测试用例相关的文件。
[0007]可选地,所述对所述简化的FaaS应用进行无服务器函数识别,包括:查找所述FaaS应用中用于配置云应用资源和权限的配置文件,根据无服务器函数和对应事件的关系,以确定无服务器函数;当所述FaaS应用中没有所述配置文件时,分析所述FaaS应用的源代码,以查找所有函数定义并匹配出具有特定参数格式的函数,将所述具有特定参数格式的函数确定为无服务器函数;通过外部接口,根据开发人员定义的无服务器函数的名称,确定无服务器函数。
[0008]可选地,所述特殊函数包括魔术函数和模块中的初始化函数,所述对所述简化的FaaS应用进行特殊函数识别,包括:通过检验函数名称是否包含双下划线来识别魔术函数,将函数名称含有双下划线的函数确定为魔术函数;在所有库函数的开始位置插入输出语句,离线加载常用的依赖库,并通过所述输出语句生成的日志获取在初始化阶段调用的函数信息,根据所述函数信息确定模块中的初始化函数。
[0009]可选地,所述方法还包括:识别所述FaaS应用中给定函数的定义范围内的所有相关调用函数,并将所述相关调用函数视为潜在的调用目标,根据所述给定函数和所述相关调用函数的调用关系,生成FaaS应用的函数调用图。
[0010]可选地,所述根据所述FaaS应用的函数调用图、所述无服务器函数和所述特殊函数生成可选函数集,包括:根据所述无服务器函数和所述特殊函数构建必要函数集,遍历所述FaaS应用的函数调用图,将不在所述必要函数集中的函数作为可选函数,所有可选函数构成可选函数集。
[0011]可选地,所述对所述可选函数集中可选函数的代码进行函数级重写,并将可选函数的原始代码压缩为轻量级文件,包括:将可选函数集中的每个可选函数的定义和可选函数的代码内容以字符串格式保存到键值对中相应的值中;使每个可选函数的代码内容为空,并在空代码内容处填充该可选函数的执行代码;根据所述键值对的内容生成并压缩为一个全局轻量级文件。
[0012]可选地,所述在执行所述优化的FaaS应用时以按需加载的方式获取需要的可选函数代码,包括:当执行FaaS应用需要调用可选函数时,所述可选函数中的执行代码检查内存中是否存在全局轻量级文件;若所述全局轻量级文件不存在,则将所述全局轻量级文件加载到内存中,以字符串格式获取所需的可选函数代码,并执行可选函数代码;若所述全局轻量级文件存在,则直接从内存中提取所需的可选函数代码,并执行可选函数代码。
[0013]本专利技术实施例的第二方面,公开了一种面向无服务器计算的冷启动延迟优化装置,所述装置包括:消除模块,用于对FaaS应用进行可选文件消除处理,以获得简化的FaaS应用;
识别模块,用于对所述简化的FaaS应用进行无服务器函数识别和特殊函数识别,以确定所述FaaS应用中的无服务器函数和特殊函数;生成模块,用于根据所述FaaS应用的函数调用图、所述无服务器函数和所述特殊函数生成可选函数集;重写模块,用于对所述可选函数集中可选函数的代码进行函数级重写,并将可选函数的原始代码压缩为轻量级文件,得到优化的FaaS应用,并在执行所述优化的FaaS应用时以按需加载的方式获取需要的可选函数代码。
[0014]本专利技术实施例的第三方面,公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如本专利技术第一方面实施所述的面向无服务器计算的冷启动延迟优化方法。
[0015]本专利技术实施例包括以下优点:在本专利技术实施例中,首先识别FaaS应用中的无服务器函数和特殊函数,然后根据FaaS应用的函数调用图、无服务器函数和特殊函数来确定可选函数集,并对可选函数集中可选函数的代码进行函数级重写,将可选函数的原始代码压缩为轻量级文件,以得到优化的FaaS应用,在执行优化的FaaS应用时以按需加载的方式获取需要的可选函数代码。由于进行函数级重写后的可选函数代码更加简洁,因此减小了FaaS应用在执行时的代码加载延迟,进而减小了冷启动延迟,该方案与系统层面的优化冷启动延迟技术相比,无需修改底层操作系统或虚拟机管理程序,从应用层面出发,通过减小执行代码的大小来优化无服务器函数的冷启动延迟。
附图说明
[0016]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向无服务器计算的冷启动延迟优化方法,其特征在于,所述方法包括:对FaaS应用进行可选文件消除处理,以获得简化的FaaS应用;对所述简化的FaaS应用进行无服务器函数识别和特殊函数识别,以确定所述FaaS应用中的无服务器函数和特殊函数;根据所述FaaS应用的函数调用图、所述无服务器函数和所述特殊函数生成可选函数集;对所述可选函数集中可选函数的代码进行函数级重写,并将可选函数的原始代码压缩为轻量级文件,得到优化的FaaS应用,并在执行所述优化的FaaS应用时以按需加载的方式获取需要的可选函数代码。2.根据权利要求1所述的方法,其特征在于,所述对FaaS应用进行可选文件消除处理,以获得简化的FaaS应用,包括:删除对FaaS应用的功能不产生影响的不必要文件,所述不必要文件包括:与本地虚拟化环境相关的文件、编译文件、常用通用库中与信息相关的目录和测试用例相关的文件。3.根据权利要求1所述的方法,其特征在于,所述对所述简化的FaaS应用进行无服务器函数识别,包括:查找所述FaaS应用中用于配置云应用资源和权限的配置文件,根据无服务器函数和对应事件的关系,以确定无服务器函数;当所述FaaS应用中没有所述配置文件时,分析所述FaaS应用的源代码,以查找所有函数定义并匹配出具有特定参数格式的函数,将所述具有特定参数格式的函数确定为无服务器函数;通过外部接口,根据开发人员定义的无服务器函数的名称,确定无服务器函数。4.根据权利要求1所述的方法,其特征在于,所述特殊函数包括魔术函数和模块中的初始化函数,所述对所述简化的FaaS应用进行特殊函数识别,包括:通过检验函数名称是否包含双下划线来识别魔术函数,将函数名称含有双下划线的函数确定为魔术函数;在所有库函数的开始位置插入输出语句,离线加载常用的依赖库,并通过所述输出语句生成的日志获取在初始化阶段调用的函数信息,根据所述函数信息确定模块中的初始化函数。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:识别所述FaaS应用中给定函数的定义范围内的所有相关调用函数,并将所述相关调用函数视为潜在的调用目标,根据所述给定函数和所述相关调用函数的调用关系,生成FaaS应用的函数...

【专利技术属性】
技术研发人员:刘譞哲温金凤陈震鹏柳熠金鑫马郓
申请(专利权)人:北京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1