科学研究

科研新闻

当前您的位置: 首页 > 科学研究 > 科研新闻 > 正文

软件学院师生论文被软件工程领域顶会ICSE 2026录用

发布日期:2025-12-23 浏览量:

软件学院师生论文被软件工程领域顶会ICSE 2026录用

近日,南开大学软件学院智能运维实验室的论文PerfScout: An Adaptive Workload Generator in Software Performance Testing软件工程领域的CCF A类国际会议——IEEE/ACM International Conference on Software Engineering (ICSE 2026) 录用。该会议将于2026412日至418日在巴西里约热内卢举行。以下是论文简介:

论文标题:PerfScout: An Adaptive Workload Generator in Software Performance Testing

作者:孙永谦,张清亮,熊潇,李梦瑶,左一珉,张圣林*,温希道,辜文蔚,庄焕东, 邓博文,万锐媛,裴丹

作者单位:南开大学、华为云、清华大学

Part.1 摘要

有效的性能测试对于确保大规模软件系统在不同负载条件下的可靠性至关重要。然而,传统的工作负载生成技术通常依赖静态阈值和基于规则的启发式方法,适应性不足,难以在多样化系统环境中有效泛化。本文提出了PerfScout,一个基于强化学习的自适应负载生成框架,能够实现性能测试过程的自动化。PerfScout 集成了三大组件:利用 SPOT 进行动态性能拐点识别,采用 ADF 和 KPSS 两种统计检验方法评估局部平稳性,以及运用近端策略优化(PPO)进行策略优化。通过持续监测关键性能指标并实时调整测试负载,PerfScout消除了手动配置的需求,同时提升了测试效率。

PerfScout已被部署在华为云,并且在两个来自华为云工业数据集上的实验结果表明,PerfScout性能拐点检测中实现了超过 82% 的准确率,并将测试效率提升了最高 90%,展现了其有效性和实际应用价值。

Part.2 背景与挑战

随着高速互联网的普及,用户对软件应用性能的期望值大幅提升。为了确保软件系统在高负载情况下保持稳定高效,软件工程师通常在系统上线前进行全面的性能测试评估系统容量然而标准行业实践很大程度上依赖手动操作不仅劳动强度易出错还难以适应现代软件系统的动态和异构特性。这些局限性凸显了对自动化高效的性能测试方法的需求。

然而,现有的性能测试方法仍然存在局限。一些性能测试方法依然依赖工程师的专家知识,需要预定义工作负载调整规则和关键性能指标(KPI)阈值,难以适应对多样被测系统的性能测试。具体而言,一个通用性的性能测试方法主要面临以下挑战:

1.性能极限识别依赖手工阈值:不同被测系统在性能极限下的KPI范围大不相同,固定KPI阈值难以适应。

2.系统抖动干扰工作负载生成:性能测试中,网络波动、资源竞争等因素会使被测系统KPI产生临时性抖动。若作为调整负载压力的依据,会影响工作负载调整决策的可靠性。

3.跨系统性能差异难以统一建模:不同被测系统性能表现高度异构,在某个系统上有效的调压策略在另一个系统中可能失效,实现通用的性能测试方法存在挑战。

   

图1 系统性能拐点分析

Part.3 核心方法与系统架构

PerfScout的包含数据采集模块,性能性能拐点识别模块,局部稳态识别模块和自适应工作负载决策模块四个核心模块。以下是它的工作流程:

                           

图2 PerfScout整体框架

1.数据采集:性能测试开始后,PerfScout会定期从被测系统收集吞吐量、响应时间、错误率等KPI,作为后续决策步骤的输入。

2.性能拐点识别:在收集到KPI后,PerfScout使用基于极值理论(EVT)的 SPOT 算法动态生成KPI阈值,以自适应识别真实的性能拐点,避免人工配置阈值。

3.局部稳态识别:若被测系统尚未到达性能极限,PerfScout会使用 ADF与 KPSS两种互补的统计检验方法来判断系统在当前负载下是否到达稳态。只有确认平稳后才会继续提升负载,有效降低了KPI短时抖动的干扰。

4.自适应工作负载决策:PerfScout将工作负载调整建模为一个强化学习问题,使用 PPO 算法训练智能体,根据实时 KPI 反馈选择最优的工作负载。奖励函数融合 SPOT 动态阈值,以平衡测试效率与可靠性,使PerfScout无需预先调参即可适配异构系统。

Part.4 实验验证与部署成效

为了验证PerfScout的性能,我们在来自华为云的两个工业数据集D1和D2上进行了实验,并与随机工作负载生成方法(RD),线性工作负载生成方法(LD),DYNAMO 和RELOAD 进行对比。实验结果显示PerfScout在D1和D2上的调和平均值(HM)均超过0.86,表现最佳。与使用固定并发时长的三种基准方法(RD、LD和DYNAMO)相比,PerfScout的HM至少高出0.368;与同样使用强化学习的RELOAD相比,PerfScout的HM至少高出0.05。表明PerfScout性能拐点识别的准确度性能测试效率方面都具有显著的优势。

表1 各方法在数据集 D1 和 D2 上的整体性能对比                            

在部署方面,PerfScout已在华为云部署运行九个月,服务多个内部部门进行高效、精准性能测试。在实际应用中,PerfScout展现出显著的时间效率:在数据集 D1 上训练时,每个训练轮次平均耗时仅7.198秒,每次工作负载调整决策的推理时间仅为 0.171 秒。

Part.5 研究意义与展望

本研究介绍了PerfScout,一种基于强化学习的自适应负载生成框架,旨在提升性能测试的效率与通用性能。我们研究了不同系统在达到性能极限时的表现差异,并通过使用SPOT、ADF和KPSS等技术来准确识别系统的性能拐点和稳定状态。PerfScout结合动态阈值和自适应工作负载决策,克服了手动配置阈值的局限性,提供了更加智能和灵活的性能测试方法。通过广泛的实验评估,PerfScout展现了性能测试准确性、效率和资源节约方面的显著优势。

未来,团队将继续探索软件系统性能测试中强化学习方法的应用,以进一步提升软件系统性能测试方法的效率与泛化能力。