Serverless is a new attractive computing model that offers great scalability and elasticity, taking the infrastructure management burden away from users, and enabling a pay-as-you-use billing model. As a result, Serverless is becoming increasingly popular, and new use cases have recently been proposed. Examples include video and image processing, Machine Learning inference and training, and data analytics. However, Serverless is currently supported by bloated virtualization stacks composed of a combination of virtual machines and/or containers, and language runtimes. None of these were to host lightweight and fast-executing Serverless workloads. To reduce the virtualization stack bloat, we propose Graalvisor, a virtualized polyglot language runtime capable of running multiple concurrent functions with minimal overhead. Graalvisor is designed to efficiently run lightweight and short-running Serverless functions, each running in a tiny execution environment that launches under 500 us. A single Graalvisor instance can run thousands of functions written in many different languages. By virtualizing a single runtime across many function invocations, Graalvisor reduces virtualization stack redundancy, resulting in lower memory consumption and less cold-starts. On a set of established Serverless functions, Graalvisor improves the throughput per memory (ops/sec/GB) on average by 170$\times$ for Java functions, 26.6$\times$ for JavaScript functions, and 2.07$\times$ for Python functions. When reproducing a public Serverless trace, Graalvisor reduces the overall memory footprint by 83% and reduces the tail latency (99 percentile) by 68%.
翻译:无服务器是一种新的有吸引力的计算模型,它提供巨大的可缩放性和弹性,让基础设施管理负担远离用户,并能够建立“现收现付”的计费模式。因此,无服务器越来越受欢迎,最近又提出了新的使用案例。例如视频和图像处理、机器学习推理和培训以及数据分析。然而,目前由虚拟机器和/或容器以及语言运行时间组合组成的浮转虚拟堆支持了无服务器。其中没有一个是接收轻量和快速执行的无服务器工作量。为了减少虚拟化的服务器滚动存储器,我们提议Graalvisor,一个虚拟化的多格洛特语言运行时间,能够以最小的顶端运行多个同时功能。Graalvisor设计了高效运行轻量和短运行的服务器功能,每个运行环境在500个我们下启动。单倍的递增量堆积可以用多种语言写成数千个函数。通过虚拟运行一个一次性运行的时间,在多个函数中降值为$的降值和快速执行中降值。