论文部分内容阅读
随着软件规模和复杂性的不断扩大,软件性能问题不断的被人们所关注。导致软件性能问题的主要原因可分为两类:(1)软件自身Bugs,(2)运行环境中多软件资源竞争。软件自身Bugs是指软件源码中存在无效或不必要的计算,并且目前的研究工作主要集中在由软件自身Bugs所引发的软件性能问题,对于由多软件资源竞争引发的性能问题研究比较欠缺。与软件自身Bugs相比较,多软件资源竞争不属于Bugs,并且所有的性能问题都有相同的特征,例如长的响应延时和低的吞吐率,因此识别由资源竞争引发的性能问题是非常困难的。课题针对目前研究的不足,从软件配置角度入手,对由多软件资源竞争引起的软件性能问题进行研究。通过对软件响应延时随负载变化关系分析发现,软件的响应延时随着负载的变化存在一个突变点。基于以上发现,本课题设计实现了自动检测与消解多软件资源竞争的工具Relax。Relax通过结合突变点处的软件资源请求延时和系统总资源使用率来检测运行环境中由资源竞争引发的性能问题,并受到网络拥塞控制的启发,Relax通过快减慢增的方法调整软件资源相关的配置项来消解竞争。全文的主要工作分为以下几个方面:1、通过对软件响应延时随负载变化的分析发现,软件的响应延时随着负载的变化会存在一个突变点。随着负载的增加,软件响应延时先是线性变化。当负载增加到一定值时,软件的响应延时会呈现出突变的非线性变化。通过分析发现,导致此现象的原因是运行环境中资源使用达到瓶颈。基于此发现,课题采用突变点处的软件资源请求延时作为检测资源竞争的关键条件。2、目前研究工作发现,现有很多的软件故障是由配置所引发的,通常这些配置与运行环境和系统资源相关。并且通过调研现实中49个由资源竞争所引发的软件性能问题案例发现,其中65.3%的案例是可以通过调整软件配置项进行消解。因此,课题从软件配置角度来消解运行环境中的多软件资源竞争。通过程序切片技术获取软件资源相关的配置项。当运行环境中存在多软件资源竞争时,通过快减慢增的方法优先调整对资源影响较大且有效的配置项来消解竞争。3、本课题设计实现了自动检测与消解资源竞争的工具Relax。在不同的负载和环境下对Relax进行评估,实验结果表明Relax可以及时检测到运行环境中的资源竞争,并有效地消解竞争,使得运行环境整体性能提升5.73%-20.35%。