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

一种消除无服务器计算容器冷启动的方法技术

技术编号:33551396 阅读:74 留言:0更新日期:2022-05-26 22:47
本发明专利技术公开了一种消除无服务器计算容器冷启动的方法,旨在:(1)绕过无服务器平台调用函数过程中的重复计算,消除容器冷启动;(2)避免函数请求外部文件,降低函数执行时的调用延迟。该方法设计了一种基于容器运行时的实时监控机制,根据监控信息将函数分为三类:计算型函数、I/O型函数和环境相关函数,对于计算型函数,通过缓存并直接返回计算结果来绕过函数的执行;对于I/O型函数,通过在本地文件系统维护函数所需的外部文件,降低函数访问外部网络带来的延迟开销。该方法消除容器冷启动并降低函数调用的端对端延迟。另外,由于可绕过函数执行和容器启动,直接返回计算型函数的计算结果,则进一步降低处理函数请求所需的物理资源。源。源。

【技术实现步骤摘要】
一种消除无服务器计算容器冷启动的方法


[0001]本专利技术涉及无服务器计算架构
,具体涉及一种消除无服务器计算容器冷启动的方法。

技术介绍

[0002]无服务器计算(Serverless Computing)架构是数据中心部署大规模分布式应用的首选方式。无服务器计算主要运用函数即服务(Function

as

a

Service,FaaS)模型为开发人员提供便捷的部署方式、提高应用程序的扩展能力。然而,在FaaS平台侧却存在许多亟待改进的问题,特别是函数的冷启动优化问题。
[0003]当FaaS平台首次接收到函数的调用请求时,需要为该函数请求准备对应的容器运行时环境。通常,构建一个容器运行时环境包括:(1)创建并启动一个基础的运行环境;(2)拉取函数代码并安装函数相应的依赖项。这个构建阶段称为冷启动阶段。只有在冷启动阶段完成后,函数才能执行。
[0004]相关研究表明,容器启动时间的大致在1秒左右,而每个函数的执行时间通常分布在毫秒到秒级中。相对于函数较短的执行时间,上述提到的冷启动阶段可能会花费大量的时间,从而增加函数调用时的延迟,降低FaaS用户的使用体验。另外,在多个函数组成函数链部署应用时,冷启动问题会加剧,因为函数链可能会导致级联冷启动。因此,函数的冷启动是FaaS提供商需要克服的问题,降低冷启动问题的影响对FaaS平台来说是一个关键挑战。

技术实现思路

[0005]本专利技术的目的是为了解决现有技术中的上述缺陷,提供一种消除无服务器计算容器冷启动的方法,在函数调用请求到达无服务器平台时通过基于分类处理的思想,针对不同类型的函数提供不同的冷启动优化策略,旨在降低冷启动开销和端对端延迟情况下,减少物理服务器的资源开销。
[0006]本专利技术的目的可以通过采取如下技术方案达到:
[0007]一种消除无服务器计算容器冷启动的方法,应用于无服务器计算系统上,无服务器计算系统在现有无服务器平台的基础上加入了函数映射器、行为监控器和I/O转发器,以下无服务器计算系统简称系统。
[0008]系统接受函数调用请求后对所调用函数对应元信息做预处理操作,首先根据元信息在函数映射器中判断该函数的计算结果是否已缓存。若缓存未命中,则正常执行函数。在函数执行过程中,行为监控器监控所运行函数产生的系统调用,并判断函数的类型。最后,将函数所需的计算结果或请求的外部文件按函数类型分别存储于函数映射器和本地文件系统中。
[0009]该方法中,无服务器平台接收函数调用请求后分别经由函数映射器、行为监控器和I/O转发器三层处理逻辑,具体包括以下步骤:
[0010]S1、当系统接收到函数调用请求后,将所调用的函数的输入参数进行哈希操作,并根据函数名称以及对应参数的哈希值初始化一个嵌套的键值对数据结构,其最终的“值”为函数对应的输出,函数名、函数输入的哈希值和函数输出以嵌套键值对映射的形式存储于函数映射器中;
[0011]S2、在函数执行时,通过在行为监控器监控函数运行时产生的系统调用,根据监控信息将函数分成三种类型,分别为计算型函数、I/O相关函数和环境相关函数,函数映射器根据函数的类型决策是否缓存对应的计算结果;
[0012]S3、分别为计算型函数和I/O相关函数设立缓存条件,对于计算型函数,设立缓存条件用于消除函数调用时的冷启动开销;对与I/O相关函数,设立缓存条件用于降低函数执行时因对外访问对象存储文件造成的端对端延迟。
[0013]进一步地,所述步骤S1中,系统接收到函数调用请求,对所调用函数对应的元信息进行哈希预处理一方面是为了快速检测函数计算结果的缓存状态;另一方面是为了降低缓存计算结果的内存开销;其过程如下:
[0014]S11、解析函数名以及调用函数所携带的输入参数param,将输入参数进行哈希计算,保留其计算后的哈希值Hash(param);
[0015]S12、利用上述函数输入参数的哈希值Hash(param)为键,初始化一个空键值对{Hash(param):value},以函数名func为键,以上述空键值对为值初始化一个嵌套键值对{func:{Hash(pram):value}},其中value为待填入的函数计算结果;
[0016]S13、当函数请求被系统接收后,首先判断函数名是否存在嵌套键值对中,然后判断是否存在对应函数输入参数所映射的计算结果;若存在函数所需的计算结果,则将其直接返回给函数调用方;若不存在对应的计算结果,则转至步骤S2、S3,正常执行函数。
[0017]进一步地,利用哈希计算将函数、函数输入和函数计算结果联系起来,在消除容器启动开销的情况下加速函数映射器的检索速度。同时,对函数的输入参数做哈希处理可以将输入参数转化为定长的字符串,降低函数映射器保存函数映射信息所需要的内存空间。
[0018]进一步地,所述步骤S2中,行为监控器在函数执行过程中监控函数发出的系统调用信息,根据监控信息将函数分成三种类型的过程如下:
[0019]S21、对于I/O相关函数,在类Unix操作系统中,许多不同类型的I/O操作都由文件描述符做统一标识,文件描述符对打开的文件实例有间接引用作用,文件描述符可以通过open()系统调用来获取,即I/O操作需要通过open()系统调用做支撑,内嵌于函数容器内的行为监控器根据函数是否产生open()系统调用来判断是否属于I/O相关函数;
[0020]S22、对于环境相关函数,系统在T次执行阈值中判断函数调用对应的输出是否一致,若函数输出在T次执行中不一致,则将该函数分类为环境相关函数;
[0021]S23、对于计算型函数,若上述步骤S21、S22都未命中,则将目标函数归类为计算型函数,对于计算型函数,其每一个输入都对应着唯一的一个计算结果。
[0022]进一步地,将无服务器函数分成计算型函数、I/O相关函数和环境相关函数,函数映射器和I/O转发器根据函数的类型确定函数的优化策略,其中,计算型函数是函数映射器缓存计算结果的目标,而I/O相关函数所请求的外部文件是I/O转发器维护的对象。
[0023]进一步地,所述步骤S3过程如下:
[0024]S31、当系统接收到已缓存计算结果的计算型函数请求时,直接前往函数映射器根
据函数名以及输入参数获取其计算结果,省去容器启动以及函数重复执行的开销;
[0025]S32、当系统接收并执行I/O相关函数时,对外部对象存储发出的文件请求首先被I/O转发器拦截,然后判断本地文件系统是否存在所请求文件;若本地文件系统不存在,则向外部获取文件请求,在传送给函数的同时保存一份至本地文件系统中;
[0026]其中,I/O转发器在实际系统中作为一个外部请求代理发挥作用,当函数对外请求文件时,I/O转发器首先会拦截对应的文件请求,再判断本地文件系统是否已经缓存了函数所请求的最新版文件;若本地缓存未命中则请求远程文件并保存至本地中。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消除无服务器计算容器冷启动的方法,应用于无服务器计算系统中,以下简称系统,其特征在于,所述方法包括以下步骤:S1、当系统接收到函数调用请求后,将所调用的函数名称以及函数调用相关输入参数进行哈希操作,并根据函数名称以及对应参数的哈希值初始化一个嵌套键值对数据结构,其最终的“值”为函数对应的输出,函数名、函数输入和函数输出以键值对映射关系存储于函数映射器中;S2、在函数执行时,通过在行为监控器监控函数运行时产生的系统调用,根据监控信息将函数分成三种类型,分别为计算型函数、I/O相关函数和环境相关函数,函数映射器根据函数的类型决策是否缓存对应的计算结果;S3、分别为计算型函数和I/O相关函数设立缓存条件,对于计算型函数,设立缓存条件用于消除函数调用时的冷启动开销;对与I/O相关函数,设立缓存条件用于降低函数执行时因对外访问对象存储文件造成的端对端延迟。2.根据权利要求1所述的一种消除无服务器计算容器冷启动的方法,其特征在于,所述步骤S1中,系统接收到函数调用请求,对所调用函数对应元信息作预处理的过程如下:S11、解析函数名以及调用函数所携带的输入参数,将函数输入参数进行哈希计算,保留其计算后的哈希值;S12、利用上述哈希值为键,初始化一个空键值对,以函数名为键,以上述空键值对为值初始化一个嵌套键值对;S13、当函数请求被系统接收后,首先判断是否存在以该函数名为键的嵌套键值对,然后判断是否存在对应函数输入参数的哈希值所映射的计算结果;若存在函数所需的计算结果,则将其直接返回给函数调用方。3.根据权利要求1所述的一种消除无服务器计算容器冷启动的方法,其特征在于,利用哈希计算将函数名、函数输入和函数计算结果联系起来,在消除容器启动开销的情况下加速函数映射器的键值检索速度。4.根据权利要求1所述的一种消除无服务器计算容器冷启动的方法,其特征在于,所述步骤S2中,根据监控信息将函数分成三种类型的过程如下:S21、对于I/O相关函数,内嵌于函数容器的行为监...

【专利技术属性】
技术研发人员:邓玉辉吴朝锐
申请(专利权)人:暨南大学
类型:发明
国别省市:

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

1