多软件间资源竞争检测与消解研究
发布时间:2021-07-30 08:05
随着软件规模和复杂性的不断扩大,软件性能问题不断的被人们所关注。导致软件性能问题的主要原因可分为两类:(1)软件自身Bugs,(2)运行环境中多软件资源竞争。软件自身Bugs是指软件源码中存在无效或不必要的计算,并且目前的研究工作主要集中在由软件自身Bugs所引发的软件性能问题,对于由多软件资源竞争引发的性能问题研究比较欠缺。与软件自身Bugs相比较,多软件资源竞争不属于Bugs,并且所有的性能问题都有相同的特征,例如长的响应延时和低的吞吐率,因此识别由资源竞争引发的性能问题是非常困难的。课题针对目前研究的不足,从软件配置角度入手,对由多软件资源竞争引起的软件性能问题进行研究。通过对软件响应延时随负载变化关系分析发现,软件的响应延时随着负载的变化存在一个突变点。基于以上发现,本课题设计实现了自动检测与消解多软件资源竞争的工具Relax。Relax通过结合突变点处的软件资源请求延时和系统总资源使用率来检测运行环境中由资源竞争引发的性能问题,并受到网络拥塞控制的启发,Relax通过快减慢增的方法调整软件资源相关的配置项来消解竞争。全文的主要工作分为以下几个方面:1、通过对软件响应延时随负载...
【文章来源】:国防科技大学湖南省 211工程院校 985工程院校
【文章页数】:67 页
【学位级别】:硕士
【部分图文】:
由内存资源竞争导致程序崩溃
L软件,使用MySQL软件自带的压力测试工具mysqlslap模拟不同数量的用户去并发访问存有10万条数据的数据库表,每个用户对数据库进行10的查询操作;针对Apache2Httpd软件,使用自带的测试工具ab在另一台虚拟机中去模拟不同数量的用户去并发访问Web服务,并且设置每个用户访问10次;针对Redis软件,使用自带的测试工具redis-benchmark模拟不同数量的用户并发执行SET操作,并且每个用户进行10次的操作。针对以上实验,通过模拟不同数量的用户来构造出不同的工作负载,进而在不同的负载下测量软件的响应时间变化规律。3.1.1.2图3.1为MySQL、Apache2Httpd和Redis三款软件在不同负载下响应时间分布曲线。横坐标为软件的负载(请求并发数),纵坐标为软件在对应负载下的单个请求响应时间,单位为毫秒。通过观察软件在不同的负载下响应时间的变化规律,我们发现软件的响应时间随着负载的变化存在一个突变点。通过图3.1可以发现,当MySQL软件在请求并发数为1700时,每条请求的响应时间会明显增大,在请求并发数小于1700时,MySQL软件的响应时间随负载增加成线性增加。当并发请求数大于1700时,MySQL软件的响应时间随负载增加由线性增长变为非线性增长。通过分析发现,导致这一现象产生的主要原因是由于运行环境中CPU计算资源和内存资源使用达到瓶颈,进而引发运行环境中MySQL单软件对CPU计算资源和内存资源产生竞争,随着负载的持续增加,其引发的竞争程度不断严重,软件的性能也随之下降明显。Redis和Apache2Httpd同样也表现出与MySQL相同的特征。对于Apache2图3.1软件响应延时随负载变化关系第16页
国防科技大学研究生院硕士学位论文确的解决方案,则我们认为该问题是有效的一个案例。例如,图3.2为现实中由CPU资源竞争所引发的nginx和php软件性能下降。导致该性能问题产生的主要原因是由于php软件的配置不适合当前运行负载所导致。该性能问题的解决方案是调整于php软件的配置,其实降低CPU资源的使用率。图3.2现实中由资源竞争引发的软件性能问题3.2.2结果分析通过在StackOverflow网站上筛选,本课题一共筛选了49个现实中由资源竞争所导致软件性能问题的案例。图3.3为分析现实中49个案例的解决方案发现。65.3%的性能问题是可以通过调整竞争软件的配置项来消解。14.3%的案例只有通过升级硬件设备才能消解。12.2%的案例是由于软件版本不兼容所导致,因此通过更新软件版本来消解。其余8.2%的案例是通过其它的方式所消解,例如:修改软件源码。通过对调研的49个案例分析发现,超过一般以上(65.3%)由资源竞争所引发的软件性能问题是可以通过调整竞争软件的配置来消解。尽管这些案例也可以通第19页
本文编号:3311038
【文章来源】:国防科技大学湖南省 211工程院校 985工程院校
【文章页数】:67 页
【学位级别】:硕士
【部分图文】:
由内存资源竞争导致程序崩溃
L软件,使用MySQL软件自带的压力测试工具mysqlslap模拟不同数量的用户去并发访问存有10万条数据的数据库表,每个用户对数据库进行10的查询操作;针对Apache2Httpd软件,使用自带的测试工具ab在另一台虚拟机中去模拟不同数量的用户去并发访问Web服务,并且设置每个用户访问10次;针对Redis软件,使用自带的测试工具redis-benchmark模拟不同数量的用户并发执行SET操作,并且每个用户进行10次的操作。针对以上实验,通过模拟不同数量的用户来构造出不同的工作负载,进而在不同的负载下测量软件的响应时间变化规律。3.1.1.2图3.1为MySQL、Apache2Httpd和Redis三款软件在不同负载下响应时间分布曲线。横坐标为软件的负载(请求并发数),纵坐标为软件在对应负载下的单个请求响应时间,单位为毫秒。通过观察软件在不同的负载下响应时间的变化规律,我们发现软件的响应时间随着负载的变化存在一个突变点。通过图3.1可以发现,当MySQL软件在请求并发数为1700时,每条请求的响应时间会明显增大,在请求并发数小于1700时,MySQL软件的响应时间随负载增加成线性增加。当并发请求数大于1700时,MySQL软件的响应时间随负载增加由线性增长变为非线性增长。通过分析发现,导致这一现象产生的主要原因是由于运行环境中CPU计算资源和内存资源使用达到瓶颈,进而引发运行环境中MySQL单软件对CPU计算资源和内存资源产生竞争,随着负载的持续增加,其引发的竞争程度不断严重,软件的性能也随之下降明显。Redis和Apache2Httpd同样也表现出与MySQL相同的特征。对于Apache2图3.1软件响应延时随负载变化关系第16页
国防科技大学研究生院硕士学位论文确的解决方案,则我们认为该问题是有效的一个案例。例如,图3.2为现实中由CPU资源竞争所引发的nginx和php软件性能下降。导致该性能问题产生的主要原因是由于php软件的配置不适合当前运行负载所导致。该性能问题的解决方案是调整于php软件的配置,其实降低CPU资源的使用率。图3.2现实中由资源竞争引发的软件性能问题3.2.2结果分析通过在StackOverflow网站上筛选,本课题一共筛选了49个现实中由资源竞争所导致软件性能问题的案例。图3.3为分析现实中49个案例的解决方案发现。65.3%的性能问题是可以通过调整竞争软件的配置项来消解。14.3%的案例只有通过升级硬件设备才能消解。12.2%的案例是由于软件版本不兼容所导致,因此通过更新软件版本来消解。其余8.2%的案例是通过其它的方式所消解,例如:修改软件源码。通过对调研的49个案例分析发现,超过一般以上(65.3%)由资源竞争所引发的软件性能问题是可以通过调整竞争软件的配置来消解。尽管这些案例也可以通第19页
本文编号:3311038
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3311038.html