一种软件系统老化预测方法及系统

文档序号:30609218发布日期:2022-07-01 23:11阅读:233来源:国知局
一种软件系统老化预测方法及系统

1.本技术涉及软件技术领域,更具体地,涉及一种软件系统老化预测方法及系统。


背景技术:

2.目前,大型分布式软件系统受老化故障的影响体现在以下三个方面:一是随着分布式软件系统中软件数量的增加,潜在的缺陷数量也同步增长,造成软件运行过程中错误状态的积累速度加快,系统发生性能退化所需时间明显缩短;二是调用老化缺陷代码的函数可能存在于分布式软件系统中任一节点,使得单个节点的老化能够沿着软件交互路径广泛传播;三是软件系统老化能够由内部资源消耗与外部传播两种模式耦合形成,导致老化发生的概率显著增加。随着当前分布式软件系统架构、功能模块的复杂程度加剧,多模式耦合的老化故障将是影响其系统性能指标、服务能力的重要因素。
3.对于软件系统老化的研究主要有两种思路:一是通过假设系统的运行状态、失效分布对老化过程进行人工建模与分析;二是通过机器学习模型学习老化特征并预测老化趋势。然而,目前大部分研究只考虑单一故障模式的预测。


技术实现要素:

4.针对现有技术的至少一个缺陷或改进需求,本发明提供了一种软件系统老化预测方法及系统,在老化预测过程中综合考虑内部资源消耗与外部老化传播两种故障模式的耦合效应,提高了老化预测的准确性。
5.为实现上述目的,按照本发明的一个方面,提供了一种软件系统老化预测方法,包括:
6.构建软件系统网络模型,将软件系统中的处理单元视为网络模型的节点,获取处理单元的资源消耗信息并将资源消耗信息作为节点属性,根据处理单元间的关系构建边及边属性;
7.利用节点属性提取节点自身内部老化特征,根据节点边及边属性提取节点间老化传播特征;
8.将节点自身内部老化特征和节点间老化传播特征组合输入到训练后的预测模型,输出老化预测值。
9.进一步地,所述处理单元的资源消耗信息包括节点内部cpu、内存、磁盘及网络资源的消耗信息。
10.进一步地,所述根据处理单元间的关系构建节点边及边属性包括:采集处理单元间的调用关系及调用频率,根据调用关系确定边,将调用频率作为边属性。
11.进一步地,节点间老化传播特征apc(ni)的计算公式为;
12.13.apc(ni)为节点ni的节点间老化传播特征,apc(nj)为节点nj的节点间老化传播特征,为节点ni的节点自身内部老化特征,nj是与ni发生关系的第j节点,n是与ni具有关系的节点总数量,cd(ni)为节点ni的度中心性,f
i,j
为nj与ni间的边属性。
14.进一步地,度中心性的计算公式为:
[0015][0016]
g为网络模型的节点总数。
[0017]
进一步地,将节点自身内部老化特征和节点间老化传播特征组合输入到训练后的预测模型前,先进行特征归一化处理,对于每个特征,归一化处理计算公式为:
[0018][0019]
x为待归一化的特征,min为x的最小值,max为x的最大值,x*为x归一化后的值。
[0020]
进一步地,所述将节点自身内部老化特征和节点间老化传播特征组合输入到训练后的预测模型包括:
[0021]
分别获取节点在m个测试间隔点的节点自身内部老化特征和节点间老化传播特征共n个特征值,形成n维数据的时间序列输入到训练后的预测模型。
[0022]
进一步地,所述预测模型包括生成器、鉴别器和长短期记忆网络;
[0023]
所述生成器用于提取n维数据的时间序列的分布特征信息矩阵并分别传输给所述长短期记忆网络与所述鉴别器;
[0024]
所述长短期记忆网络用于根据所述分布特征信息矩阵输出老化预测结果矩阵;
[0025]
所述鉴别器用于计算出所述分布特征信息矩阵和所述老化预测结果矩阵的概率分布差异,将所述概率分布差异作为所述鉴别器的目标函数。
[0026]
按照本发明的第二方面,提供了一种软件系统老化预测系统,包括:
[0027]
建模模块,用于构建软件系统网络模型,将软件系统中的处理单元视为网络模型的节点,获取处理单元的资源消耗信息并将资源消耗信息作为节点属性,根据处理单元间的关系构建边及边属性;
[0028]
特征提取模块,用于利用节点属性提取节点自身内部老化特征,根据节点边及边属性提取节点间老化传播特征;
[0029]
预测输出模块,用于将节点自身内部老化特征和节点间老化传播特征组合输入到训练后的预测模型,输出老化预测值。。
[0030]
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:本发明提取特征时,主要围绕两个方面进行考虑:一是节点内部缺陷被激活导致的单节点老化;二是分布式软件系统节点间的复杂交互关系对于老化传播的催化作用。因此,提取特征包含两种类型:节点自身内部老化特征和节点间老化传播特征,其中节点自身内部老化特征主要基于系统资源消耗信息提取,主要用于描述软件系统内部老化现象,而节点间老化传播特征主要用于描述节点间交互作用带来的老化影响。通过组合两类特征进行老化预测,提高了老化预测的准确性。
附图说明
[0031]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]
图1是本发明实施例的软件系统老化预测方法的原理示意图;
[0033]
图2是本发明实施例的网络模型示意图;
[0034]
图3是本发明实施例的节点自身内部老化特征示意图;
[0035]
图4是本发明实施例的预测模型网络结构示意图。
具体实施方式
[0036]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
[0037]
本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
[0038]
此外,为了避免使技术人员对本发明的理解模糊,可能不详细地描述或示出公知的或广泛使用的技术、元件、结构和处理。尽管附图表示本发明的示例性实施例,但是附图不必按照比例绘制,并且特定的特征可被放大或省略,以便更好地示出和解释本发明。
[0039]
本发明实施例的一种软件系统老化预测方法,原理如图1所示,包括步骤:
[0040]
s101,构建软件系统网络模型,将软件系统中的处理单元视为网络模型的节点,获取处理单元的资源消耗信息并将资源消耗信息作为节点属性,根据处理单元间的关系构建边及边属性;
[0041]
s102,利用节点属性提取节点自身内部老化特征,根据节点边及边属性提取节点间老化传播特征;
[0042]
s103,将节点自身内部老化特征和节点间老化传播特征组合输入到训练后的预测模型,输出老化预测值。
[0043]
下面具体说明s101的优选实现方法。
[0044]
软件系统,特别是分布式软件系统中,各节点之间的连接分布通常极不均匀,系统中少数节点拥有大量的连接,而大多数节点之间仅有少量连接,具有典型的无标度网络结构;此外,系统中节点之间的交互频率、方向存在显著差异,表现出明显的连接复杂性;同时,系统中各节点的性能指标随时间发生复杂变化,表现出较强的动力学特征。因此,本发明实施例中将处理单元视为网络模型的节点。处理单元在本专利中的含义是需要进行老化预测的最小单元,可以根据预测需要定义处理单元,数据库、服务、一个实现某项功能的软件等都可以视为处理单元。节点属性用于记录各处理单元的资源消耗信息,有向边的属性则记录节点间的调用频率等相关信息,如图2所示。
[0045]
本发明实施例中,网络模型节点及节点间关系定义为:
[0046]
node=(c
cpu
,c
memory
,c
disk
,c
network
)
ꢀꢀꢀꢀ
(3)
[0047]
e=(node1,node2,f)
ꢀꢀꢀ
(4)
[0048]
其中,c
cpu
,c
memory
,c
disk
,c
network
,为节点内部cpu、内存、磁盘及网络资源消耗信息的集合,也即节点属性;关系e中node1和node2表明两个发生交互具有关系的节点,具体可表明两个节点间发生调用关系,f为边属性,具体可为调用发生的频率。
[0049]
下面具体说明s102的优选实现方法。
[0050]
(1)特征选择
[0051]
本发明实施例在选取候选特征时,主要围绕两个方面进行考虑:一是节点内部缺陷被激活导致的单节点老化;二是分布式软件系统节点间的复杂交互关系对于老化传播的催化作用。因此,拟选择的特征包含2种类型,其中“节点自身内部老化特征”,也即“系统资源消耗特征”,主要用于描述软件系统内部老化现象,而“老化传播特征”主要用于描述节点间交互作用带来的老化影响。
[0052]

系统资源消耗特征(节点自身内部老化特征)
[0053]
预先定义根据资源消耗信息提取系统资源消耗特征的方法,获取到节点的资源消耗信息后,可根据预先定义的方法计算得到每个节点的系统资源消耗特征。
[0054]
进一步地,为了较为全面的覆盖老化预测的各项指标参数,本发明实施例拟从系统性能衰退、服务质量下降、运行速度降低三个维度,分析老化对于cpu、内存、硬盘及网络可能造成的影响,并从中选取老化预测候选特征,如图3所示。具体地,系统资源消耗特征可以是包括cpu可用负载、cpu可用线程、ram占用率等,具体的提取方法可以是cpu可用负载的倒数、cpu可用线程的倒数、ram占用率等这些归一化以后相加起来。但是系统资源消耗特征及其提取方法可以根据需要调整,不限于上述技术方案。
[0055]

节点间老化传播特征
[0056]
从复杂网络拓扑结构的角度来看,单个软件节点所调用的其他节点越多,该节点激活其他节点老化状态的概率越高,即传播老化的能力越强;同理,若单个软件节点被其他节点所调用得越多,该节点积累的错误状态则更容易被激活而发生老化。因此,老化的传播与软件节点间发生联系的数量、频率以及节点自身故障的概率密切相关。
[0057]
本发明实施例老化传播特征需要用到度中心性cd(degree centrality)的概念。对于一个拥有g个节点的网络模型,将与ni具有关系的节点总数量表示为n,如式(5)所示。
[0058][0059]
其中,分母中除以g-1消除了网络规模变化对度中心性的影响。
[0060]
将节点ni的节点间老化传播特征老化传播特征记为apc(ni),软件节点ni的老化传播特性受到度中心性cd的影响,cd的值越大表明与节点发生调用关系的其他节点个数越多,节点ni自身发生的老化将在级联传播的作用下影响更多其他节点,同理与之相联系的其他节点的老化也更易导致节点ni的老化;因此,通过递归的方法,节点ni的老化传播特征apc可用式(6)定义。
[0061][0062]
其中,为节点ni的节点自身内部老化特征,nj是与ni具有关系的第j个节点,则
为与ni发生关系的节点集合,计算了节点的自身老化在级联传播作用下影响其他节点的能力,而计算了与ni具有交互关系的全部节点发生的老化对于ni的影响,f
i,j
进一步表明了节点间交互的频率对于老化的激发促进作用,二者共同刻画了节点间由于相互调用关系造成了老化传播。
[0063]
(2)特征归一化
[0064]
将节点自身内部老化特征和节点间老化传播特征组合输入到训练后的预测模型前,先进行特征归一化处理。数据归一化是通过对数据进行按比例缩放,使之落入一个较小的特定区间中,从而消除数据的单位限制,便于对不同量级的特征进行加权分析。
[0065]
进一步地,对于每个特征,归一化处理计算公式为:
[0066][0067]
x为待归一化的特征,min为x的最小值,max为x的最大值,x*为x归一化后的值。
[0068]
下面具体说明s103的优选实现方法。
[0069]
分布式软件系统多故障模式耦合老化预测过程中,多特征值指标间的关联性及不同节点物理硬件的差异性通常会对预测结果产生一定的影响。为此,本发明实施例的预测模型采用lstm网络(长短期记忆网络)和gan网络结合的方式,预测模型包括生成器、鉴别器和lstm网络。在充分考虑多特征值时序变化的基础上,由lstm对时序数据进行训练和预测,利用生成式对抗网络(gan)中生成器和判别器的博弈增强模型的鲁棒性,通过对lstm和gan的有机结合使得模型自动学习时序数据中多种特征的权重,从而提高分布式软件系统老化预测的准确性。本发明实施例拟采用的预测模型网络拓扑结构如图4所示。
[0070]
(2)预测模型网络训练过程
[0071]
本发明实施例构建的预测模型拟采取如下训练步骤:
[0072]

对分布式软件系统资源消耗及老化传播特征相关的n个指标在不同节点的m个测试间隔点进行数据采集,形成归一化的n维指标数据的时间序列。
[0073]

生成器g提取n维指标数据的分布特征信息矩阵,并分别传输给lstm神经网络层与鉴别器。
[0074]

将数据分布特征矩阵按照特征维度划分,并分别传入lstm神经网络层对k个维度的老化指标开展预测,输出老化预测结果矩阵。
[0075]

鉴别器用于接收生成器输出的分布特征信息矩阵与lstm网络输出的老化预测结果矩阵,计算出分布特征信息矩阵和老化预测结果矩阵的概率分布差异,将概率分布差异作为鉴别器的目标函数。
[0076]
进一步地,使用js散度(jensen-shannon)来评价分布特征信息矩阵和老化预测结果矩阵的概率分布差异。
[0077]

根据目标函数的梯度值,通过反向传播算法更新模型参数,同时lstm更新后的预测结果将再次传入鉴别器,并计算其与真实数据的分布差异。
[0078]

预测模型能够在鉴别器的作用下,不断优化模型老化指标的预测结果,直至模型预测结果达到设定的终止条件(如训练轮次或早停次数等),则停止模型训练。
[0079]
应当注意,尽管在上述的实施例中,以特定顺序描述了本说明书实施例的方法的
操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0080]
本发明实施例的一种软件系统老化预测系统,包括:
[0081]
建模模块,用于构建软件系统网络模型,将软件系统中的处理单元视为网络模型的节点,获取处理单元的资源消耗信息并将资源消耗信息作为节点属性,根据处理单元间的关系构建边及边属性;
[0082]
特征提取模块,用于利用节点属性提取节点自身内部老化特征,根据节点边及边属性提取节点间老化传播特征;
[0083]
预测输出模块,用于将节点自身内部老化特征和节点间老化传播特征组合输入到训练后的预测模型,输出老化预测值。
[0084]
关于软件系统老化预测系统的具体限定可以参见上文中对于软件系统老化预测方法的限定,在此不再赘述。上述软件系统老化预测系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0085]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0086]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1