Serverless computing is a popular cloud computing paradigm that frees developers from server management. Function-as-a-Service (FaaS) is the most popular implementation of serverless computing, representing applications as event-driven and stateless functions. However, existing studies report that functions of FaaS applications severely suffer from cold-start latency. In this paper, we propose an approach namely FaaSLight to accelerating the cold start for FaaS applications through application-level optimization. We first conduct a measurement study to investigate the possible root cause of the cold start problem of FaaS. The result shows that application code loading latency is a significant overhead. Therefore, loading only indispensable code from FaaS 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 (i.e., optional code) from FaaS applications. The separated optional code can be loaded on demand to avoid the inaccurate identification of indispensable code causing application failure. In particular, a key principle guiding the design of FaaSLight is inherently general, i.e., platform- and language-agnostic. The evaluation results on real-world FaaS applications show that FaaSLight can significantly reduce the code loading latency (up to 78.95%, 28.78% on average), thereby reducing the cold-start latency. As a result, the total response latency of functions can be decreased by up to 42.05% (19.21% on average). Compared with the state-of-the-art, FaaSLight achieves a 21.25X improvement in reducing the average total response latency.
翻译:无服务器计算是一种广受欢迎的云计算模式,让开发者摆脱服务器管理。 函数- as- a- service (FaaS) 是最受欢迎的无服务器计算实施方式, 代表着由事件驱动和无国籍功能的应用程序。 然而, 现有的研究表明, FaaS 应用程序的功能严重受冷启动潜伏的影响。 在本文中, 我们提议了一种方法, 即 Faas- service (Faas- a- Service) 加速FaaS 应用程序的冷启动速度。 我们首先进行测量研究, 以调查FaaS 冷启动问题的可能根源。 结果显示, 应用程序的安装代码加固值是一个巨大的间接间接。 因此, 从这个洞察看, 我们通过构建功能级调音调图和另外的代码( 即选用代码) 来识别与应用程序相关的代码( ) 。 分离的选用代码可以按需求来避免错误地识别导致应用失败的代码。 特别是, 指导 Faaslistealight( i. e. 78) 平台- sal- real- real- real- real- real- revial- reviewal- pal- pal- pal- pal- pal- pal- pal- reviewal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- devial- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- deal- pal- deal- deal- pal- pal- pal- pal- pal- pal- pal- pal-lemental- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal- pal-