Architectural Implications of Function-as-a-Service Computing

Architectural Implications of Function-as-a-Service Computing
复制标题

DOI:
10.1145/3352460.3358296
复制
发表时间:
2019-10
期刊:
Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture
影响因子:
--
通讯作者:
Mohammad Shahrad;Jonathan Balkind;D. Wentzlaff
Mohammad Shahrad;Jonathan Balkind;D. Wentzlaff
中科院分区:
其他
文献类型:
--
作者:
Mohammad Shahrad;Jonathan Balkind;D. Wentzlaff

文献摘要

相似文献

无服务器计算是一种快速增长的云应用模型,由亚马逊的Lambda平台推广。无服务器云服务提供细粒度的资源配置,可根据用户需求自动扩展。功能即服务(FaaS)应用程序遵循这种无服务器模型,开发人员将其应用程序作为一组函数提供,这些函数响应于用户或系统生成的事件而执行。函数被设计为短期的,并在容器或虚拟机内执行,从而引入了一系列系统级开销。本文研究了这一新兴范式的建筑含义。在真实的服务器上使用商业级Apache OpenWhisk FaaS平台,这项工作调查并确定了FaaS无服务器计算的架构含义。工作负载,以及FaaS固有地交织来自许多租户的短功能的方式,沿着阻碍了现代处理器中常见的许多局部保持架构结构。特别是,我们发现:与本机执行相比,FaaS容器化带来了高达20倍的速度下降,冷启动可以超过短函数执行时间的10倍,对于短函数,每千条指令的分支错误预测高出20倍,由于调用模式,内存带宽增加了6倍,由于函数间干扰,IPC减少了35%。我们开源了FaaSProfiler,这是我们为这项工作开发的FaaS测试和分析平台。
Serverless computing is a rapidly growing cloud application model, popularized by Amazon's Lambda platform. Serverless cloud services provide fine-grained provisioning of resources, which scale automatically with user demand. Function-as-a-Service (FaaS) applications follow this serverless model, with the developer providing their application as a set of functions which are executed in response to a user- or system-generated event. Functions are designed to be short-lived and execute inside containers or virtual machines, introducing a range of system-level overheads. This paper studies the architectural implications of this emerging paradigm. Using the commercial-grade Apache OpenWhisk FaaS platform on real servers, this work investigates and identifies the architectural implications of FaaS serverless computing. The workloads, along with the way that FaaS inherently interleaves short functions from many tenants frustrates many of the locality-preserving architectural structures common in modern processors. In particular, we find that: FaaS containerization brings up to 20x slowdown compared to native execution, cold-start can be over 10x a short function's execution time, branch mispredictions per kilo-instruction are 20x higher for short functions, memory bandwidth increases by 6x due to the invocation pattern, and IPC decreases by as much as 35% due to inter-function interference. We open-source FaaSProfiler, the FaaS testing and profiling platform that we developed for this work.