Serverless computing is leading the way to a simplified and general purpose programming model for the cloud. A key enabler behind serverless is efficient load balancing, which routes continuous workloads to appropriate backend resources. However, current load balancing algorithms implemented in Kubernetes native serverless platforms are simple heuristics without performance guarantee. Although policies such as Pod or JFIQ yield asymptotically optimal mean response time, the information they depend on are usually unavailable. In addition, dispatching jobs with strict deadlines, fractional workloads, and maximum parallelism bound to limited resources online is difficult because the resource allocation decisions for jobs are intertwined. To design an online load balancing algorithm without assumptions on distributions while maximizing the social welfare, we construct several pseudo-social welfare functions and cost functions, where the latter is to estimate the marginal cost for provisioning services to every newly arrived job based on present resource surplus. The proposed algorithm, named OnSocMax, works by following the solutions of several convex pseudo-social welfare maximization problems. It is proved to be $\alpha$-competitive for some $\alpha$ at least 2. We also validate OnSocMax with simulations and the results show that it distinctly outperforms several handcrafted benchmarks.
翻译:没有服务器的计算正在引导着一个简化和通用的云层编程模式。 没有服务器的一个关键使能因素是高效的负负平衡,它将连续的工作量引导到适当的后端资源。然而,目前在Kubernetes本地没有服务器的平台上实施的负负平衡算法是简单的超常算法,没有绩效保障。虽然Pod或JFIQ等政策产生一个简单的最佳平均反应时间,但是它们所依赖的信息通常没有。此外,在严格的最后期限、分数工作量和与有限在线资源联系在一起的最大平行的情况下,发送工作是困难的,因为资源分配决定是相互交织的。在分配的同时不假设分配,设计在线负平衡算法,同时尽量扩大社会福利,我们建立若干假社会福利功能和成本功能,后者是根据目前的资源盈余估算向新到的每一项工作提供服务的边际成本。提议的算法,称为OnSocMax, 其作用是遵循一些对等式伪社会福利最大化问题的解决方案。事实证明,对于一些工作来说,对于一些美元和半价的计算结果来说,我们还要用不同的模型来验证。