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

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


                    (4) 重设计内存资源使用策略: 根据特征总结结果, 亚马逊                  Lambda、谷歌    Cloud Functions、阿里巴巴
                 Function Compute 采用了开发者提前制定内存分配大小的策略来执行应用, 而微软                  Azure Functions 则采用了动态
                 内存分配的策略. 从第       5.2  节的执行性能结果来看, 微软       Azure Functions 在不同类型任务上展现出更好的执行性
                 能, 这表明基于内存消耗的策略能够提供有效的资源使用和良好的性能结果. 与之相对, 目前广泛使用的提前分配
                 内存大小的策略可能无法灵活满足任务的资源需求, 从而降低了一定的性能效益. 因此, 研究者可以进一步思考如
                 何在服务器无感知计算上重设计内存资源的使用策略, 以提高应用的性能, 可以更好地满足不同应用的资源需求,
                 提高系统的整体性能. 然而, 需要注意的是, 使用基于内存消耗策略也让开发者失去对内存分配的控制权. 这是研
                 究者需要进一步关注的方面. 在设计新策略时, 应考虑如何提供一定程度的控制, 以便针对特定应用的需求进行调
                 优和定制. 同时, 还应该探索如何平衡动态内存分配策略的灵活性和开发者的需求, 以提供更加细粒度的内存管理
                 功能.
                    (5) 优化冷启动性能: 根据我们的结果, 不同服务器无感知平台在执行不同编程语言的应用时, 出现明显的冷
                 启动性能差异. 亚马逊      Lambda 和谷歌   Cloud Functions 在执行  Python  和  JavaScript 应用时表现出较低的冷启动延
                 迟, 但在执行   Java 应用时延迟较高, 而似乎内存分配大小对这两个平台的冷启动延迟没有显著影响. 相反, 微软
                 Azure Functions 在执行  Java 应用时产生较低的冷启动延迟, 而阿里巴巴          Function Compute 在执行  JavaScript 应用
                 时产生较低的冷启动延迟, 但在执行            Python  应用时产生最高的冷启动延迟. 基于此, 我们认为潜在的研究机会是
                 如何为不同编程语言的应用提供一致的冷启动性能. 研究者可以尝试从以下几个方面考虑: 1) 开发通用的执行引
                 擎, 这帮助适应不同编程语言的应用执行. 这个引擎可能采用跨语言的虚拟机或解释器, 以确保所有编程语言都能
                 在相似的运行环境中执行, 从而提供一致的冷启动性能. 2) 制定服务器无感知平台通用的应用标准, 使开发者能够
                 以一种方式编写应用, 而不必担心语言差异对性能的影响. 这些标准可以包括应用架构、内存管理和资源分配规
                 范, 以确保不同编程语言的应用遵循一致的开发标准. 这些尝试可能帮助实现一致的冷启动性能, 不论应用是使用
                 哪种编程语言编写, 从而提高服务器无感知计算的可用性和广泛适用性.
                    (6) 研究不同应用场景的性能优化: 根据第           4.2  节的执行性能分析结果, 不同类型的任务在不同平台的执行性
                 能表现存在差异. 例如, 图片处理任务在亚马逊             Lambda 和微软   Azure Functions 上执行稳定; 机器学习训练和推理
                 任务在亚马逊     Lambda 和阿里巴巴    Function Compute 上执行稳定; 语音识别任务在亚马逊        Lambda 执行稳定. 这说
                 明平台对不同类型任务的处理能力尚不一致, 这激励着研究者进一步探究不同应用场景的性能优化工作. 具体而
                 言, 研究者可以结合不同应用场景的特点以及应用开发的结构依赖信息, 来确定优化的关键流程. 例如, 对于语音
                 识别任务, 可以考虑在处理过程中进行子任务并发以加快执行性能; 对于机器学习训练任务, 可以考虑流程分解,
                 同时对   CPU  资源需求高的子任务进行执行加速等. 通过深入研究不同应用场景的需求和特性, 可以制定更精确的
                 优化策略, 进而提升应用的执行性能和效率.

                 6   局限性

                    我们讨论本文研究的局限性, 包括特征分析的时效性、平台的服务节点、CPU                          密集型任务的线程、内存密
                 集型任务的特征.
                    (1) 特征分析的时效性: 在本文的研究中, 我们总结了              4  个公有云服务器无感知平台的关键特征, 包括开发、
                 部署和运行时方面特点. 总结的特征结果可能受时效性的影响. 然而, 我们观察到本文总结的特征分析结果受时效
                 性影响较小. 具体来说, 调研的关键特征更新变化相对缓慢, 其结果是基于我们先前工作的结果进行了调整, 而且
                 我们为每个特征提供了更详细的原因分析. 此外, 由分析结果可知, 调研的                     4  个平台在每个关键特征上并非都有新
                 的变化. 例如, 亚马逊     Lambda、谷歌  Cloud Functions 和微软  Azure Functions 在超时时长的上限值没有发生变化.
                 这表明这些平台在特征更新方面相对缓慢. 这可能的原因是这些平台已经发展得相对成熟, 它们的特征和参数相
                 对稳定, 从而表明了本文所总结的结果受时效性影响较小.
                    (2) 平台的服务节点: 本文研究需要部署同一应用到不同服务器无感知平台的同一区域的节点上. 然而, 不同
   96   97   98   99   100   101   102   103   104   105   106