发表机构
University of Athens; National Infrastructures for Research and Technology; Athens University of Economics and Business; National Cybersecurity Authority of Greece(雅典大学; 研究与技术国家基础设施; 雅典经济与商业大学; 希腊国家安全局)
机构由 AI 辅助整理,请以论文原文为准。AI 中文总结
PyXtrim通过动态切片去臃肿化,将冷启动延迟中位数降低21.7%,峰值内存降低17.1%,超越现有技术两倍以上。
AI 中文摘要
我们提出了PyXtrim,一个通过去臃肿化(debloating)来减少无服务器应用冷启动延迟的系统。我们聚焦于Python,这是无服务器应用中的主导语言,其动态特性和对原生扩展的广泛使用使得传统的静态去臃肿化尤为困难。PyXtrim将去臃肿化问题构建为动态切片问题,以应用的外部可见行为作为切片准则。结果切片之外的所有内容,无论是应用本身还是其依赖,都会被移除。我们的关键技术贡献在于,切片由跨语言动态依赖引擎计算,该引擎追踪Python与原生代码之间的数据和控制依赖,并识别与操作系统交互的操作,这些操作构成了切片准则。因此,PyXtrim能够有效处理依赖反射等动态特性、与原生代码互操作以及与系统资源交互的真实世界应用。在AWS Lambda上的31个应用中,PyXtrim将冷启动延迟中位数降低了21.7%,峰值内存使用中位数降低了17.1%。这比现有技术水平实现的降低幅度多出一倍以上,同时每个应用的去臃肿化仅需数分钟。
英文摘要
We present PyXtrim, a system that reduces the cold-start latency of serverless applications through debloating. We focus on Python, a dominant language for serverless applications whose dynamic features and extensive use of native extensions make traditional static debloating particularly challenging. PyXtrim frames debloating as a dynamic slicing problem, using the application's externally visible behavior as the slicing criterion. Everything outside the resulting slice is removed, both from the application and its dependencies. Our key technical contribution is that the slice is computed by a cross-language dynamic dependence engine that tracks data and control dependences across Python and native code and identifies operations that interact with the operating system, which form the slicing criterion. As a result, PyXtrim can effectively handle real-world applications that rely on dynamic features such as reflection, interoperate with native code and interact with system resources. Across 31 applications on AWS Lambda, PyXtrim reduces cold-start latency by 21.7% and peak memory usage by 17.1% at the median. This is more than double the reduction achieved by the state of the art, while debloating each application in minutes.