论文标题
小型工作负载的微小自动制剂:无服务器功能的动态CPU分配
Tiny Autoscalers for Tiny Workloads: Dynamic CPU Allocation for Serverless Functions
论文作者
论文摘要
在无服务器计算中,应用程序是在轻巧的虚拟化和隔离环境(例如容器或微型虚拟机)下执行的。通常,他们的内存分配是由用户在部署前设置的。提供商统计和成比例地分配了所有其他资源,例如CPU。这导致利用不足或节流。前者显着影响提供商,而后者会影响客户。为了解决这个问题并适应客户和提供商,解决方案是通过自动化实现的动态CPU分配。已经使用基于历史记录的技术和预测对长期运行的应用进行了研究。但是,无服务器的应用程序是短运行的工作负载,此类技术不适合。在本文中,我们调查了微小的自动制剂以及用于短运行无服务器工作负载的动态CPU分配技术的性能。我们将Kubernetes作为基础平台进行实验,并使用其垂直POD Autoscaler实施几种动态CPU权利技术。我们使用最先进的无服务器工作负载比较这些技术。我们的实验表明,短运行无服务器功能的动态CPU分配是可行的,并且可以通过提供良好性能的轻量级算法来实现。
In serverless computing, applications are executed under lightweight virtualization and isolation environments, such as containers or micro virtual machines. Typically, their memory allocation is set by the user before deployment. All other resources, such as CPU, are allocated by the provider statically and proportionally to memory allocations. This contributes to either under-utilization or throttling. The former significantly impacts the provider, while the latter impacts the client. To solve this problem and accommodate both clients and providers, a solution is dynamic CPU allocation achieved through autoscaling. Autoscaling has been investigated for long-running applications using history-based techniques and prediction. However, serverless applications are short-running workloads, where such techniques are not well suited. In this paper, we investigate tiny autoscalers and how dynamic CPU allocation techniques perform for short-running serverless workloads. We experiment with Kubernetes as the underlying platform and implement using its vertical pod autoscaler several dynamic CPU rightsizing techniques. We compare these techniques using state-of-the-art serverless workloads. Our experiments show that dynamic CPU allocation for short-running serverless functions is feasible and can be achieved with lightweight algorithms that offer good performance.