Skip to main content
QUICK REVIEW

[论文解读] Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider

Mohammad Shahrad, Rodrigo Fonseca|arXiv (Cornell University)|Mar 6, 2020
Cloud Computing and Resource Management参考文献 31被引用 223
一句话总结

本论文描述生产环境 Azure Functions FaaS 工作负载的特征,并提出一种实用的混合直方图策略,以在减少冷启动的同时比固定保持活动策略使用更少的资源;通过仿真和 OpenWhisk 实验验证结果,并讨论在生产环境中的 Azure 实现。

ABSTRACT

Function as a Service (FaaS) has been gaining popularity as a way to deploy computations to serverless backends in the cloud. This paradigm shifts the complexity of allocating and provisioning resources to the cloud provider, which has to provide the illusion of always-available resources (i.e., fast function invocations without cold starts) at the lowest possible resource cost. Doing so requires the provider to deeply understand the characteristics of the FaaS workload. Unfortunately, there has been little to no public information on these characteristics. Thus, in this paper, we first characterize the entire production FaaS workload of Azure Functions. We show for example that most functions are invoked very infrequently, but there is an 8-order-of-magnitude range of invocation frequencies. Using observations from our characterization, we then propose a practical resource management policy that significantly reduces the number of function coldstarts,while spending fewerresources than state-of-the-practice policies.

研究动机与目标

  • 对 Azure Functions 上的生产 FaaS 工作负载进行特征化,以理解调用模式、触发器和资源需求。
  • 量化调用频率、触发器和内存使用对冷启动成本和资源配置的影响。
  • 开发并评估自适应策略以降低冷启动,同时不增加超出当前云提供商做法的资源浪费。
  • 提供实现洞察和去标识化的生产轨迹,帮助研究人员建模真实的 FaaS 工作负载。

提出的方法

  • 收集并分析四个 Azure Functions 数据集:每个函数的调用计数(1分钟分箱)、每个函数的触发、每个函数的执行时间,以及每个应用的内存使用。
  • 对函数、应用和触发进行特征化,以了解每个应用的函数计数分布、触发组成和调用模式。
  • 提出一种混合直方图策略,使用区间受限的空闲时间直方图加上标准的保持活动策略,并在需要时使用时间序列预测(ARIMA)来设定每个应用的预热和保持活动窗口。
  • 在仿真和 Apache OpenWhisk 上实现并评估该策略,以将冷启动减少量与固定保持活动基线进行比较。
  • 提供生产环境 Azure Functions 部署的讨论,并分享一个经过去标识化的生产轨迹数据集。

实验结果

研究问题

  • RQ1在触发器、调用频率和资源需求方面,Azure Functions 的生产 FaaS 工作负载有哪些特征?
  • RQ2调用模式和内存使用如何与冷启动及整体资源效率相关?
  • RQ3在不增加资源浪费的前提下,按应用自适应策略是否能比固定保持活动策略更有效地降低冷启动?
  • RQ4所提出的策略在实际系统中是否可行,是否与如 OpenWhisk 之类的现有 FaaS 平台兼容?
  • RQ5有哪些生产方面的洞察与轨迹可以帮助研究人员构建现实的 FaaS 工作负载?

主要发现

  • 大多数函数的调用非常不频繁,最受欢迎与最不受欢迎的调用之间存在 8-order-of-magnitude 的差异。
  • 50% 的函数运行在 1 秒以下;75% 的最大执行时间在 1s 以下,且 90% 在 60s 以下。
  • 应用在整个数据集的内存使用呈现 4x 的变化,且 81% 的应用平均每分钟最多被调用一次。
  • 大量调用来自一小部分受欢迎的应用/函数(例如,18.6% 的最受欢迎的应用/函数占据了 99.6% 的调用)。
  • 混合直方图策略在减少冷启动的同时使用的资源少于固定保持活动策略;基于 ARIMA 的预测有助于处理较不频繁的调用,且该方法在 OpenWhisk 以及生产环境 Azure Functions 中可行。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。