Page 77 - 《软件学报》2025年第5期
P. 77

温金凤 等: 服务器无感知平台性能度量研究                                                           1977


                 SaaS). 它们在云计算堆栈中形成了层次结构, 逐层减轻了繁琐和容易出错的基础设施管理任务                           [22] , 例如负载均衡
                 和自动扩展. 在云计算领域, 服务器无感知计算是一种新的范型, 为应用开发带来了全新的机遇. 它使开发者能够
                 专注于应用逻辑, 节省成本, 而无需深入了解云计算专业知识. 函数即服务是服务器无感知计算的核心, 将函数作
                 为基本单位. 开发者只需编写特定事件触发器的函数, 打包上传代码, 并指定所需运行配置. 然后, 服务器无感知平
                 台提供沙盒环境来托管函数, 并自动处理可伸缩性、容错和其他运行时问题. 这与传统的云计算不同, 传统云计算
                 通常需要开发者管理和运行服务器, 并支付相关费用. 然而, 服务器无感知计算的编程范型抽象了大部分底层操作
                 任务, 简化了云上的应用开发过程. 同时, 它的存储和计算是单独扩展的, 并具有独立的配置和定价方式.
                    服务器无感知计算的优点和广阔前景使其在各种领域得到广泛应用, 例如视频处理                            [1,2] 、机器学习  [3,4] 、科学
                 计算  [5] 和大数据分析  [6,7] 等. 图  1  展示了开发者在开发、部署和执行面向服务器无感知计算应用的过程.


                                                           服务器无感知平台

                                                            ② 部署

                                          ③ 触发
                                                                   应用     ④ 支付

                                                  配置
                                                            ① 开发
                                                           定义

                                                    触发事件       开发者
                                    图 1 开发、部署和执行面向服务器无感知计算的应用的过程

                    (1) 开发: 开发者使用高级语言       (如  Python  和  JavaScript) 编写服务器无感知计算类型的应用, 将其实现为一组
                 无状态且事件驱动的函数. 此外, 开发者可以借助成熟云服务                  (如云存储和云数据库) 来辅助功能的实现. 同时, 通
                 过指定的配置文件, 开发者可以定义具体的事件规则, 将函数与触发事件进行绑定. 在配置文件中, 开发者还可以
                 为函数配置所需的云资源和权限.
                    (2) 部署: 函数及其依赖包被打包在一起, 并通过命令行界面或控制台部署到服务器无感知平台上. 在此期间,
                 开发者需要提供一些必要的运行配置, 如运行时环境和内存大小. 平台能够提供必要的资源和限制, 例如在亚马
                 逊  Lambda 中, 函数执行时间限制为      15 min, 以实现对请求的灵活和可扩展处理.
                    (3) 触发: 当预定义的事件触发服务器无感知函数时, 服务器无感知平台将自动准备其运行环境. 在新启动的
                 实例上执行的函数将经历冷启动过程, 并产生不可忽略的冷启动延迟. 具体来说, 冷启动延迟是准备执行环境的延
                 迟, 主要包括初始化虚拟机或容器、通过网络传输应用、加载应用代码等. 当同一函数的后续请求在很短时间内
                 到达  (如亚马逊的    7 min), 已启动的函数实例将被重用, 并经历热启动过程以产生热启动延迟. 热启动延迟是指函
                 数功能真正执行之前产生的延迟, 它表示平台调度可用实例来服务请求的时间. 一般来说, 热启动延迟比冷启动延
                 迟更低. 如果没有后续请求, 这些实例将进入空闲状态, 相应的资源会自动释放.
                    (4) 支付: 在函数执行完毕后, 开发者只需要为实际消耗或分配的资源量付费. 服务器无感知平台提供了一种
                 细粒度的计费模式, 它是基于函数的毫秒级执行单元.
                    目前, 许多研究者致力于性能度量分析             [23–29] , 这是发现软件性能特性的有效手段之一, 可以评估其运行速度、
                 资源利用率、可靠性等指标, 并确定需要改进和优化的方面. 在服务器无感知计算研究中, 性能度量工作主要包括
                 以下几类.
                    第  1  类工作是为服务器无感知计算领域提供性能度量的基准测试程序集. 例如, Yu                       等人  [24] 提出了一套名为
                 ServerlessBench  的基准测试程序集, 用于研究服务器无感知函数之间的通信效率、冷启动性能、无状态开销和性
   72   73   74   75   76   77   78   79   80   81   82