Serverless computing is an emerging cloud computing paradigm that frees developers from server management. However, existing studies report that software applications developed in serverless fashion (named serverless applications) severely suffer from cold start latency. We propose an application-level performance optimization approach called LambdaLite, for accelerating the cold start for serverless applications. We first conduct a measurement study to investigate the possible root cause of the cold start problem and find that application code loading latency is the dominant overhead. Therefore, loading only indispensable code from serverless applications can be an adequate solution. Based on this insight, we identify code related to application functionalities by constructing the function-level call graph, and separate other code (optional code) from the serverless application. The separated optional code can be loaded on demand to avoid the inaccurate identification of indispensable code causing application failure. In practice, LambdaLite can be seamlessly deployed on existing serverless platforms without the need to modify the underlying OSes or hypervisors, nor introduce additional manual efforts to developers. Evaluation results on 15 real-world serverless applications show that our approach can significantly reduce the application code loading latency (up to 78.95%, on average 28.78%), thereby reducing the cold start latency. As a result, the total response latency of serverless applications can be decreased by up to 42.05% (on average 19.21%). Compared with the state-of-the-art, our approach achieves a 21.25X improvement on the total response latency of serverless applications.
翻译:无服务器计算是一种新兴的云计算模式,它让开发者能够从服务器管理中解脱出来。 但是,现有研究表明,以无服务器方式开发的软件应用程序(无服务器应用程序的名称)严重受冷启动潜伏的影响。 我们提议了一种名为 LambdaLite 的应用级别性能优化方法,以加速无服务器应用程序的冷启动。 我们首先进行测量研究,以调查冷启动问题的可能根源,并发现装载潜伏器的编码是主要的间接费用。 因此,只有从无服务器应用程序装入不可或缺的代码才能成为一个适当的解决方案。 基于这一洞察,我们通过构建功能级别调用图和从服务器应用程序中分离的其他代码(可选择代码)来识别与应用程序功能相关的代码。 分离的选用代码可以按需求加载,以避免错误地识别导致应用程序故障的不可或缺的代码。 在实践中, LambdaLite 可以顺利地安装在现有的无服务器平台上,而不必修改基本操作系统或超强监视器, 或对开发者引入额外的手工操作方法。 15个没有服务器应用的评估结果表明, 我们的方法可以大幅降低应用程序的代码的编码, 能够大幅降低装载总延缓度(至78-95% ) 服务器的运行结果。