1.一种基于Hadoop的分布式系统的健康度量方法,其特征在于,针对基于Hadoop的分布式系统软件,执行以下步骤:
步骤一、选取软件的健康表征元素;考虑老化缺陷的影响,选取的健康表征元素要求容易受到使用时间的影响,并且易于获取数据;
步骤二、运行软件,分别在期望正常状态下以及待度量运行状态下,收集健康表征元素的数据;
步骤三、建立健康度量的高斯混合模型;
设共选取n个健康表征元素,表示为集合X=(X1,X2,...,Xi,...,Xn),其中第i个健康表征元素为Xi,1≤i≤n;第i个健康表征元素Xi的一组观测值表示为(xi1,xi2,…,xij,…,xim),m为观测值个数,xij表示对健康表征元素Xi的第j次观测值,1≤j≤m;用表示第i个健康表征元素的高斯分布概率密度,xi表示第i个健康表征元素的变量,μi表示第i个健康表征元素的均值,表示第i个健康表征元素的方差;
软件健康表征元素X的高斯混合模型的概率密度函数G(x1,x2,...,xi,...,xn)表示为:
其中,wi为第i个健康表征元素的权重;
分别利用期望正常状态下和待度量运行状态下的健康表征元素的数据来估计高斯混合模型的参数μi、和wi,得到对应两种情况下的高斯混合模型的概率密度函数;
步骤四、获取软件的健康度h;
根据步骤三获得的期望正常状态下的高斯混合模型的概率密度函数G1(x1,x2,...,xn),待度量运行状态下的高斯混合模型的概率密度函数G2(x1,x2,...,xn),确定软件的健康度h如下:
其中,Ci表示第i个健康表征元素的最大值,i=1,2,…,n;
软件健康度h的取值范围是[0,1],当软件健康度h=1时,表示软件运行正常,处于健康态;当软件健康度h=0时,表示软件性能状态恶化,处于失效态;当软件健康度处于(0,1)之间时,表示软件稳定性、可用性逐渐下降,软件处于亚健康状态;根据软件可接受的运行状态,设置健康度的阈值,来判断软件是否需要进行维护以防止性能状态的进一步恶化。
2.根据权利要求1所述的一种基于Hadoop的分布式系统的健康度量方法,其特征在于,所述的步骤一中,在内存和CPU的使用情况中选取健康表征元素,选取的健康表征元素包括内存使用量和/或内存可用量,以及CPU使用率和/或CPU平均负载。
3.根据权利要求1所述的一种基于Hadoop的分布式系统的健康度量方法,其特征在于,所述的步骤二中,所述的期望正常状态是由软件开发人员给出的、健康度为1的系统状态,在该状态下,软件不会出现功能异常,是绝对正常状态。
4.根据权利要求1所述的一种基于Hadoop的分布式系统的健康度量方法,其特征在于,所述的步骤三中,所述的第i个健康表征元素的高斯分布概率密度的表达式为:
5.根据权利要求1或4所述的一种基于Hadoop的分布式系统的健康度量方法,其特征在于,所述的步骤三中,估计高斯混合模型的参数的过程为:
步骤3.2.1,使用最大似然估计确定中的μi和
建立的对数似然函数:
对对数似然函数的未知参数μi和分别求偏导数,并令偏导函数等于0,得到:
解得μi和的参数估计结果为:
根据参数估计的无偏性对进行偏差修正,修正后的结果为:
分别利用期望正常状态下以及待度量运行状态下健康表征元素的观测值,获取两种情况下μi和的估计值;
步骤3.2.2,计算高斯混合模型公式中的权值wi;
首先,求取混合模型的似然函数:
定义函数为:
引入拉格朗日乘子λ,得到新的目标函数如下:
然后,对wi求偏导数,并令其结果为零,如下:
解得结果为:
进而得到得到λ=m;
获得权重i=1,2,…,n;
联立n个wi(i=1,2,…,n)组成的方程组,求得w1,w2,…,wn的值。