Serverless computing relieves developers from the burden of resource management, thus providing ease-of-use to the users and the opportunity to optimize resource utilization for the providers. However, today's serverless systems lack performance guarantees for function invocations, thus limiting support for performance-critical applications: we observed severe performance variability (up to 6x). Providers lack visibility into user functions and hence find it challenging to right-size them: we observed heavy resource underutilization (up to 80%). To understand the causes behind the performance variability and underutilization, we conducted a measurement study of commonly deployed serverless functions and learned that the function performance and resource utilization depend crucially on function semantics and inputs. Our key insight is to delay making resource allocation decisions until after the function inputs are available. We introduce Shabari, a resource management framework for serverless systems that makes decisions as late as possible to right-size each invocation to meet functions' performance objectives (SLOs) and improve resource utilization. Shabari uses an online learning agent to right-size each function invocation based on the features of the function input and makes cold-start-aware scheduling decisions. For a range of serverless functions and inputs, Shabari reduces SLO violations by 11-73% while not wasting any vCPUs and reducing wasted memory by 64-94% in the median case, compared to state-of-the-art systems, including Aquatope, Parrotfish, and Cypress.
翻译:无服务器计算减轻了开发者管理资源的负担,从而为用户提供易用性,并为云服务提供商优化资源利用率带来机遇。然而,当前的无服务器系统缺乏函数调用的性能保障,因此限制了其对性能关键型应用的支持:我们观察到严重的性能波动(最高达6倍)。云服务提供商无法洞察用户函数,因此难以实现资源合理分配:我们观察到严重的资源低利用率(最高达80%)。为理解性能波动与资源低利用率的根本原因,我们对常见部署的无服务器函数进行了测量研究,发现函数性能与资源利用率关键取决于函数语义与输入。我们的核心见解是:将资源分配决策延迟至函数输入可用之后。我们提出Shabari——一套面向无服务器系统的资源管理框架,该框架尽可能延迟决策,以实现每次调用的资源合理分配,从而满足函数性能目标(SLO)并提升资源利用率。Shabari基于函数输入特征,采用在线学习代理为每次函数调用实现资源合理分配,并制定冷启动感知调度决策。针对一系列无服务器函数及其输入,相较于包括Aquatope、Parrotfish和Cypress在内的最先进系统,Shabari在无任何vCPU浪费的情况下,将SLO违反率降低11-73%,并在中位数情况下将内存浪费减少64-94%。