Page 79 - 《软件学报》2025年第5期
P. 79
温金凤 等: 服务器无感知平台性能度量研究 1979
Function Compute. 这 4 个平台的发布时间分别为: 亚马逊 Lambda 于 2014 年 11 月发布, 谷歌 Cloud Functions 于
2018 年 7 月发布, 微软 Azure Functions 于 2016 年 11 月发布, 阿里巴巴 Function Compute 于 2017 年 4 月发布. 在
本文的度量框架中, 研究目标主要包括两方面. 首先, 对不同服务器无感知平台的关键特征进行全面总结和分析.
其次, 对不同类型任务在不同服务器无感知平台上的运行时性能进行评估和比较.
亚马逊 Lambda 谷歌 Cloud Functions 微软 Azure Functions 阿里巴巴 Function Compute
特征总结 关键特征抽取 分类
研究内容
冷启动 分析
运行时性 配置设置 性能
能分析 基准测试 执行
性能 发现
图 2 本文的度量分析框架
在特征总结中, 我们的目标是更新关键特征的信息, 并帮助开发者理解不同服务器无感知平台的开发实践特
点, 并判断他们的应用是否适合在目标平台上实现或执行. 为了实现这一目标, 我们收集了来自 4 个平台的官方文
档, 然后从这些文档中提取并总结了关键特征, 这些特征反映了平台的内在限制和特点. 具体而言, 我们提取关于
应用开发、部署和运行时的特点. 在开发方面, 我们总结了平台支持的编程语言、触发器类型和开发方式等特点,
这些特点帮助开发者了解在每个平台上使用哪些编程语言, 以及触发器的类型和如何进行开发. 在部署方面, 我们
总结了部署包大小限制、内存分配大小、CPU 和 GPU 情况、超时时间限制、本地磁盘大小和支持区域等特点,
这些特点对开发者也至关重要, 因为它们决定了应用在平台上的资源限制和可用性. 在运行方面, 我们总结了调用
类型、负载大小、运行环境和付费模型等特点, 这些特点帮助开发者了解平台支持的运行特征, 从而更准确地评
估平台的适用性.
在运行时性能分析中, 我们目标是从多个维度对在不同服务器无感知平台上运行的应用性能进行分析. 考虑
到函数即服务应用的整体性能主要受两方面延迟的影响. 首先是准备执行环境所需的冷启动延迟, 它反映了冷启
动性能. 其次是执行应用本身功能所需的延迟, 代表了执行性能. 因此, 我们探究不同服务器无感知平台在执行应
用时产生的冷启动性能和执行性能. 在服务器无感知计算的场景下, 任务通常在毫秒级别内完成, 这使得冷启动延
迟的开销变得相当显著. 对开发者来说, 以较低的冷启动延迟执行任务非常重要, 因为它直接影响用户体验. 因此,
理解并优化冷启动延迟成为服务器无感知计算领域中一个关键的挑战. 另外, 不同类型的任务对资源的需求也各
不相同. 了解不同类型任务在不同服务器无感知平台上的执行性能对开发者同样重要, 这有助于他们挑选执行效
率最高的平台来托管他们的应用. 因此, 本文的运行时性能分析旨在探究不同服务器无感知平台在执行不同类型
任务时的冷启动性能和执行性能.
为了实现全面可靠的冷启动性能和执行性能分析和比较, 我们还设计和实现模块化和可扩展方法, 为不同平
台提供了相似的功能接口, 包括应用打包、应用部署和创建、应用调用以及返回统一风格的日志信息, 同时还支
持应用删除. 开发者可以为使用的基准测试程序指定特定的配置来部署、创建和调用函数即服务应用. 调用后返
回的日志信息采用统一的风格, 方便比较和分析不同应用在不同平台下的冷启动性能和执行性能. 在配置设置方
面, 开发者可以配置编程语言运行时和内存大小. 默认情况下, 我们使用 HTTP 触发器, 因为它是不同平台上都支
持且最常用的事件触发器. 对于基准测试程序, 我们主要构建两类基准测试程序集, 以探究不同类型任务的运行性能.
2.1 基准测试程序集
本节介绍本文使用的基准测试程序集, 分为微基准测试程序集和宏基准测试程序集两部分.
微基准测试程序集主要包含了一系列简单的工作负载, 具体的信息展示在表 1 中, 包括 Hello World 任务以及
消耗特定资源的任务, 如 CPU 密集型任务、内存密集型任务、磁盘 IO 密集型任务和网络密集型任务. Hello