软件自优化机制中分析判别方法及其反馈优化的研究与实现

论文价格:0元/篇 论文用途:仅供参考 编辑:论文网 点击次数:0
论文字数:**** 论文编号:lw202329912 日期:2023-07-22 来源:论文网
本文是一篇软件工程论文,本文在自主系统及自优化机制的理论支持下,通过结合 Agent 技术,面向大规模网络化软件,分析设计了软件自优化机制中分析判别方法及其反馈优化方案,并进行对应实现和实验论证。

第一章 绪论

1.1 研究背景与意义

互联网应用规模的不断提升,导致软件的复杂度呈现指数级增长,软件的运维成本也随之不断增加。另一方面,随着软件间以及软件与实际业务间的关系愈加复杂,使得众多大型软件的离线维护成本高达开发成本的 4 倍左右,且软件维护周期漫长[01]。此外,互联网系统的不断成熟、互联网用户的不断增加也给软件提出了更高的可靠性和可用性的要求。例如,2018 年天猫双十一仅 2 分 5 秒交易额就突破了 100 亿元人民币,全天实时计算处理峰值达到每秒 17.18 亿条[49]。而对应的,巨大访问压力也给软件系统带来了巨大的冲击,若软件系统无法在线调整应对巨大的访问压力,则会给企业带来难以承受的损失。亚马逊 2017 年 6 月因访问压力过大导致网站出现无法加载的问题,造成了 6.7 万美元/分钟的损失。因此,软件亟需实现在线的优化调整,以降低维护成本并应对挑战,软件自优化便是实现软件在线优化调整的有效手段之一。

自优化来源于自主计算[02]的概念,其的基本思想是通过“技术管理技术”的手段来隐藏系统复杂性,通过在 IT 管理者制定的管理策略下实现系统自主管理,进而使系统完成自配置、自优化、自修复和自保护等[03]。而自优化是指自主系统不断寻求改善运作方式的过程[04]。如图 1.1 自优化系统运行机制状态图所示,自优化软件系统的运行机制由四个部分构成:负责感知(Monitor)软件变化,分析(Analyze)变化信息以及是否需要优化,决策(Plan)最优自优化策略,执行(Execute)自优化策略调整软件[05]。

.....................

1.2 国内外研究现状
针对本文的研究内容,本章节将从软件自优化、软件状态评估分析以及基于数据驱动的反馈优化相关的研究现状展开分析和讨论。
1.2.1 软件自优化

软件自优化的提出是伴随着自主计算或自主系统的概念而出现的,是人们对于具备更高智能的软件系统不断追求的结果。软件自优化[06]是指系统能够根据环境、资源、状态的变化,对系统参数和资源配置等进行动态地调整,最终使系统达到最优状态;强调在分析环节主动分析与预测系统未来的行为,从而可以在系统发生故障之前就采取措施。下面主要从国内和国外研究进展两个方面对软件自优化的研究现状进行阐述。
国外方面,对于软件自优化的研究,虽然于自主系统相关概念被提出后就已经开展研究,但是相关研究的侧重点主要集中于电网领域,对于应用于软件系统自优化的相关研究仍然开展较少,以下,对国外在软件自优化相关的研究情况进行了简要的介绍和分析。Maggio, Martina 等人研究了从启发式到控制理论和机器学习的各种决策机制[10],提出了一些最先进的决策方法的比较,应用于将资源分配给软件应用程序的自优化自主系统。R. Razavi[11]等人基于模糊强化学习技术,介绍了一种通过基站的下倾角调整实现 LTE 网络覆盖和容量自我优化的解决方案[12]对认知无线家庭网络的自优化框架的设计模式以及自主系统资源动态分配的自优化模型的建立方法进行了研究,并对所建立系统的灵活性和健壮性进行了论证。Abdelwahed S[13]等人提出的能够对计算需求和环境条件变化做出反应并进行连续性能优化的在线控制框架;Abdelzaher TF[14]等人提出了通过使用控制理论框架来实现软件系统 QoS 保证的方法。Kate M. Bowers1[15]等人采用基于搜索的技术,用于在受到各种不确定性来源(例如,环境,系统元素之间的相互作用等)时优化满足系统的非功能性需求。通过最佳组合,当使用不同的子目标分解和/或差分权重时,它们提供非功能性需求的最佳满足目标,并通过实验验证显著提高了系统的性能。此外,Johannes J?schke 等人对实现自优化的各项手段进行了分析探讨,如基于线性化的局部方法,基于数据和回归的方法,以及用于找到多项式系统的非线性控制变量的方法等[51]。

................................

第二章 理论基础与关键技术

2.1 判别分析技术

判别分析技术早在上世纪 80 年代左右就有学者进行了初步的研究和一定的总结[38],作为一种多变量统计分析方法,判别分析指在已经有明确分类的情形下,根据研究对象的各个特征值确定样本类型归属的问题。在本文中,判别分析技术应用于对软件状态信息数据整体评估分析后对目标系统的自优化判别,该技术的基本原理是遵循选取出的一定的判别标准,创建若干判别函数,通过对对象的大量历史数据信息进行研究,进而确定判别函数的各待定系数和判别指标,以此方式确定某一样本属于哪个分类。在 20 世纪 90 年代,随着离散数学等学科的发展,判别分析技术有了进一步的完善[39],Fisher 判别[62]、高斯混合法等方法的提出进一步提升了判别分析分类的准确性。目前,判别分析技术已在社会学、自然科学等诸多学科中得到了广泛的应用。近年来,判别分析技术的研究在大量样本数据的支持下辅助医疗行业进行诊断支持、人脸识别领域等方面也有了大量研究的结合,如文献[54]、文献[55]和文献[56]等。

具体的,建立判别函数是判别分析通常要做的事情,然后通过建立的判别函数来执行样本的判别。判别函数主要可以分成两种类型,分别是典则判别函数和线性判别函数。作为原始自变量的线性组合,通过构建少量的典则变量即可方便描述各类间关系是典则判别函数的特点,例如可用散点图和平面区域图等方式直观表示各类间的相对关系。相应的,线性判别函数的建立则有一定的样本分布要求,对于个总体,需各组样本相互独立且服从多元正态分布。
........................

2.2 关联规则挖掘技术
随着信息技术的不断发展,基于数据驱动的反馈优化技术逐渐走入了人们的视野,在海量的数据作为基础,且有强大的模型支持自动化决策的前提下,反馈优化技术诸多领域有着广泛的应用。反馈优化技术目前较为主流的是机器学习技术和数据挖掘技术,例如强化学习技术、基于朴素贝叶斯的回归分析等。下面对本文后续方法设计将要用到的关联规则技术作以简单介绍。

关联规则的概念于由 Agrawal 等人共同提出[43]。关联规则可以使用无监督学习的方式发现,并且该模式属于描述型模式。可信度和支持度是关联规则模式中的两个重要概念,分别是关联规则准确度和重要性的衡量标准。设 X 为总集合,假如在支持 A的事务中有 m%的事务也支持 B,那么关联规则 A→B 的可信度即为 m%。相对应的,如果集合 X 中同时支持 A 和 B 的事务有 n%,那么关联规则 A→B 的支持度即为 n%。支持度说明了这条规则的代表性,若某关联规则的可信度很高,但其支持度却很低,就意味着该关联规则被实际应用的概率很小[40]。关联规则的挖掘可分为两个步骤:第一步,从样本资料集合中找出所有的高频项集;第二步,由第一步找到的高频项集间产生关联规则。在实际的应用中,为了发现有实用意义的关联规则,通常我们会给定两个阈值:最小支持度和最小可信度。二者分别规定了关联规则必须满足的最小支持度和其必须满足的最小可信度。

关联规则最为经典的算法是于 90 年代提出的 Apriori 算法[41],由于该算法较为原始且存在着一定的缺陷,因此后续研究者提出了诸多基于 Apriori 算法的改进算法及其他的关联规则算法,例如 FP-树频集算法和基于划分的算法。针对 Apriori 算法的缺陷,一个不产生候选挖掘频繁项集的方法被韩家炜等提出[42],该方法命名为 FP-树频集算法,在效率上较之 Apriori 算法有了很大的提高。通过使用分而治之的策略,该算法经过第一遍扫描后,保留关联信息的同时,将数据库中的频繁项集压入一棵频繁模式树(FP-tree),之后将频繁模式树分化成一些条件库,分别挖掘这些条件库,每个条件库和长度为 1 的频繁项集相关联。在原始数据量较大时,结合划分的方式该方法可以将一棵频繁模式树置入主存。Savasere 等于 1995 年给出了一个基于划分的算法[65],在该算法中,数据库从逻辑上被划分成几个互不相交的块,对每个分块执行分别处理进而得到每个分块的所有频繁项集,然后合并频集以得到所有可能的频繁项集,最后计算这些频繁项集的支持度。关联规则挖掘更适合于样本信息中的每个指标采用离散值的场景。

.............................

第三章 基于 Agent 的软件自优化机制 ...................................... 13
3.1 基于 Agent 的软件自优化机制过程模型 .......................... 13
3.2 基于多 Agent 的软件自优化架构模型 ................................. 15
第四章 自优化机制中分析判别方法及其反馈优化的设计 .............................. 21
4.1 软件自优化机制中分析判别方法的设计 .............................. 21
4.1.1 软件实体健康度模型的设计 ........................................ 23
4.1.2 基于主成分分析的影响因素提取方法设计 ............................... 26
第五章 自优化机制中分析判别方法及其反馈优化的实现 ............................... 33
5.1 软件自优化机制中的分析判别方法的实现 ..................... 33
5.1.1 基于 Agent 的软件实体健康度模型的实现 ........................ 33
5.1.2 基于主成分分析的影响因素提取方法的实现 ........................ 35

第六章 实验验证与分析

6.1 实验设计
本小节将对实验的思路设计进行详细介绍。正如前文研究背景与意义部分提到的,现有的软件分析和软件优化方法中,大多数都是对软件进行静态的分析和优化,或基于源代码分析软件的体系结构进行优化调整、对软件进行故障或缺陷检测分析,对软件运行时优化判别的研究成果较少。同时,现有自优化研究多围绕 LTE 网络实现自优化控制,目标系统不同导致了软件特性的不同,因此与大规模网络化软件自优化分析判别的需求差异较大,难以直接和其他方法进行实验对比。此外,受限于硬件环境的不同也难以直接对实验结果与其他方法进行对比分析。因此,本文设计了两步的方案对所设计的方法进行实验验证,具体过程如下。

相关实验主要分为两步,第一步本文首先将选择一个大型开源分布式平台作为数据采集和初步验证的基础,通过对该目标系统验证平台数据的采集获取和对应软件实体健康度建模,在基于多智能体的软件自优化平台上得到该目标系统的大量运行数据作为原始样本数据集,在该原始样本数据集的支持下,通过各个参数指标的正态区间计算完成软件实体健康度分值的初步计算、软件实体健康度关键影响因素提取、软件实体状态综合评估和基于马氏距离的优化判别,并将分析判别结果与软件下一状态KPI 指标信息进行对比,将判别结果与实际结果进行对比,得到分析判别的准确度。第二步,本文将选择一个大型分布式电商软件进行二次平台验证,通过选取能够反映软件状态的一些基础资源 KPI 指标和性能 KPI 指标作为核心指标,对本文在第一步中进行初步验证的软件实体健康度模型及自优化分析判别方案进行进一步验证,同时在该系统运行一段时间后,通过数据累积以数据驱动的方式按照在 5.2 节设计的方案进行反馈优化的执行验证,记录目标系统运行的核心 KPI 数据,并与在添加数据驱动的反馈优化前的优化判别方案的准备度进行对比,并记录目标系统核心 KPI 指标数据提升情况。
.......................


第七章 总结展望

7.1 本文工作总结
随着软件规模的发展,软件的部署环境逐渐向广域网络过渡,而网络环境的多样性,实体行为的不可预测性使得软件涉及的计算及应用资源随时可能发生变化,进而导致环境对软件运行的干扰影响日益明显。因此,软件亟需通过内部优化调整的方式来应对外部的环境变化,从而保证软件运行质量。而先前一些我们耳熟能详的大规模软件因出现各类问题而给企业带来巨大经济损失、给用户带来诸多生活影响的案例进一步说明了大规模网络化软件进行在线优化调整的迫切需求。因此,大规模网络化软件亟需实现在线的优化调整,以保障软件系统的高可用性和高可靠性,满足当前互联网环境下日益增长的生产需求。目前大多数对软件进行在线优化调整的方式大多通过服务的负载均衡或者资源分配管理的方式进行,存在的着一定的局限性。随着产业界和学术界对软件在线优化关注的进一步提升,自主计算软件自优化逐渐走入我们的视野。软件自优化作为实现软件在线优化调整的一个有效方式,虽然国内有一定的研究团队在自主计算及自优化,但更多侧重于在软件自适应领域或 LTE 网络上实现自优化,但是目前国内相关学者关于针对软件系统本身的自优化的深入研究开展较少,还未提出与大规模网络化软件在线优化直接相关的系统性解决方案。
参考文献(略)
如果您有论文相关需求,可以通过下面的方式联系我们
客服微信:371975100
QQ 909091757 微信 371975100