Current serverless offerings give users a limited degree of flexibility for configuring the resources allocated to their function invocations by either coupling memory and CPU resources together or providing no knobs at all. These configuration choices simplify resource allocation decisions on behalf of users, but at the same time, create deployments that are resource inefficient. In this paper, we take a principled approach to the problem of resource allocation for serverless functions, allowing this choice to be made in an automatic way that leads to the best combination of performance and cost. In particular, we systematically explore the opportunities that come with decoupling memory and CPU resource allocations and also enabling the use of different VM types. We find a rich trade-off space between performance and cost. The provider can use this in a number of ways: from exposing all these parameters to the user, to eliciting preferences for performance and cost from users, or by simply offering the same performance with lower cost. This flexibility can also enable the provider to optimize its resource utilization and enable a cost-effective service with predictable performance. Our results show that, by decoupling memory and CPU allocation, there is potential to have up to 40% lower execution cost than the preset coupled configurations that are the norm in current serverless offerings. Similarly, making the correct choice of VM instance type can provide up to 50% better execution time. Furthermore, we demonstrate that providers can utilize different instance types for the same functions to maximize resource utilization while providing performance within 10-20% of the best resource configuration for each respective function.
翻译:目前没有服务器的提供让用户在配置分配给其职能的资源时有有限的灵活性,可以将记忆和CPU资源合并在一起,或者不提供任何键盘。这些配置选择简化了代表用户的资源分配决定,但同时也创造了资源效率低下的部署。在本文件中,我们采取原则性办法解决为服务器无服务器功能分配资源的问题,允许以自动方式作出这种选择,从而实现业绩和成本的最佳组合。特别是,我们系统地探索随着记忆和CPU资源分配脱钩而出现的机遇,并能够使用不同的 VM 类型。我们发现在业绩和成本之间有着丰富的交换空间。提供者可以以多种方式使用这一选择:从向用户披露所有这些参数,到从用户获取对业绩和成本的偏好,或者简单地以较低成本提供同样的业绩。这种灵活性还可以使供应商优化资源利用,并且能够以可预测的绩效实现成本效益高的服务。我们的成果表明,通过解析记忆和CPU资源分配,可以使每个功能类型都能够使用一个丰富的交易空间。在业绩和成本类型中找到最佳的交换空间。从向用户披露所有这些参数类型提供较低的格式,从而提供更低比例的运行。