CN108228442B - 一种异常节点的检测方法及装置 - Google Patents
一种异常节点的检测方法及装置 Download PDFInfo
- Publication number
- CN108228442B CN108228442B CN201611153279.2A CN201611153279A CN108228442B CN 108228442 B CN108228442 B CN 108228442B CN 201611153279 A CN201611153279 A CN 201611153279A CN 108228442 B CN108228442 B CN 108228442B
- Authority
- CN
- China
- Prior art keywords
- target
- node
- subprogram
- performance
- feature vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施例提供一种异常节点的检测方法及装置,涉及通信技术领域,能够检测出分布迭代式数据处理程序中出现异常的具体环节。该方法包括:获取目标特征向量,该目标特征向量包括目标节点实际执行目标应用程序的目标子程序时产生的性能参数,该性能参数用于指示在执行该目标子程序的运行阶段内该目标节点的资源消耗;获取与目标子程序和目标节点对应的目标性能模型,该目标性能模型用于指示正常执行该目标子程序时产生的性能参数区间;若该目标特征向量位于该性能参数区间之外,则确定该目标节点在执行该目标应用程序的目标子程序时出现异常。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种异常节点的检测方法及装置。
背景技术
分布迭代式数据处理程序,例如,Spark应用、Dryad应用以及MapReduce应用等,能够较好地适用于数据挖掘与机器学习等需要迭代的算法,因此在云计算技术中得到了广泛应用。
以Spark应用为例,Spark分布式系统中包括M个节点组成的分布式集群,每一个Spark应用可以由这M个节点中的一个或多个节点来执行。通常,可通过检测节点在运行各个Spark应用是否出现异常,来判断各个Spark应用是否正常运行,具体的,可以预先为各节点定义相关的性能指标,例如,CPU占用率,内存读写带宽等,进而,在各节点执行相应的Spark应用时,获取各节点内上述性能指标的取值,最后通过分析每个节点的性能指标的取值确定各个节点在执行每个Spark应用时是否发生异常。
例如,开发人员可以预先设置执行不同Spark应用时各个性能指标的阈值范围,当节点1执行Spark应用A时性能指标的取值不在预先设置的阈值范围内时,则可以确定节点1在执行Spark应用A时发生异常。又或者,可以通过聚类算法将各个节点在执行Spark应用A时性能指标的取值进行聚类,若聚类后确定节点1在执行Spark应用A时性能指标的取值为离群值,则可以确定节点1在执行Spark应用A时发生异常。
但是,在上述Spark应用的异常检测过程中,只能检测出执行该Spark应用时发生异常的节点,后续开发人员仍然需要根据专业知识人工确定该节点执行该Spark应用发生异常的具体环节,不能快速的定位出引起Spark应用出现异常的具体原因。
发明内容
本发明的实施例提供一种异常节点的检测方法及装置,能够检测出分布迭代式数据处理程序中出现异常的具体环节,从而快速确定出分布迭代式数据处理程序发生异常的原因。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种异常节点的检测方法,包括:获取目标特征向量,该目标特征向量包括目标节点实际执行目标应用程序的目标子程序时产生的性能参数,该性能参数用于指示在执行该目标子程序的运行阶段内该目标节点的资源消耗;获取与目标子程序和目标节点对应的目标性能模型,该目标性能模型用于指示目标节点正常执行该目标子程序时产生的性能参数区间;若该目标特征向量位于该性能参数区间之外,则确定该目标节点在执行该目标应用程序的目标子程序时出现异常。也就是说,在本发明实施例提供的异常节点的检测方法中,可以直接检测出发生异常的节点和子程序,即确定出节点在执行某个应用程序时具体在哪个阶段发生了异常,从而能够帮助开发人员对出现异常的应用程序进行快速定位。
其中,上述应用程序可以为分布迭代式数据处理程序,即该应用程序的某个子程序会重复执行,那么,一旦在执行应用程序的前期定位出发生异常的子程序并及时解决,便可以防止后续其他依赖于该子程序的其他应用程序在执行过程中发生异常,从而提高整个分布式集群内应用程序的执行效率。
在一种可能的设计方式中,在获取目标特征向量之前,还包括:获取N个参考特征向量组,每个参考特征向量组用于指示执行一类子程序时产生的性能参数,N>1;对于所述N个参考特征向量组中的每个参考特征向量组,执行以下步骤,以得到N个性能模型;即:根据一个参考特征向量组建立一个性能模型,该性能模型用于指示正常执行一类子程序时产生的性能参数区间,所述目标性能模型为所述N个性能模型中的任一个。也就是说,可以将具有相似行为特征的子程序划分为一组,得到N个参考特征向量组,进而建立每个参考特征向量组的性能模型,这样,可以减少建立性能模型的次数,从而降低上述异常节点的检测方法的实现复杂度。
在一种可能的设计方式中,每个参考特征向量组与一类子程序和执行该类子程序的节点对应,其中,获取与该目标子程序和该目标节点对应的目标性能模型,包括:从N个参考特征向量组中,确定与目标子程序和目标节点对应的目标参考特征向量组;将与该目标参考特征向量组对应的性能模型作为该目标性能模型。
在一种可能的设计方式中,上述目标性能模型为一个超球面模型;其中,若该目标特征向量位于该性能参数区间之外,则确定该目标节点在执行该目标子程序时出现异常,包括:若该目标特征向量位于上述超球面模型外,则确定该目标节点在执行该目标子程序时出现异常。
在一种可能的设计方式中,上述目标性能模型为一个参考点集合,该参考点集合中的每个参考点与目标参考特征向量组之间的距离小于预设阈值;其中,若该目标特征向量位于该性能参数区间之外,则确定该目标节点在执行该目标子程序时出现异常,包括:若该目标特征向量不属于上述参考点集合,则确定该目标节点在执行该目标子程序时出现异常。
这样,在实际检测异常节点的过程中,检测装置可以通过已建立的超球面模型或者参考点集合,确定检测系统内的某个节点在执行某个子程序时是否发生异常,从而能够帮助开发人员对出现异常的应用程序进行快速定位。
在一种可能的设计方式中,获取N个参考特征向量组,包括:获取Z个参考特征向量,每个参考特征向量用于指示一节点在执行一个子程序时产生的性能参数;按照预置的分类算法将该Z个参考特征向量划分为N组,得到该N个参考特征向量组,Z≥N。
在一种可能的设计方式中,对于M个节点中的每个节点,执行以下步骤,以得到Z个参考特征向量,即:获取该节点在预设时间段内的运行信息,该运行信息包括该节点执行的所有子程序中每个子程序的标识,执行每个子程序的开始时间和终止时间,以及该节点在该预设时间段内执行所有子程序产生的性能参数;根据该运行信息,统计该节点在预设时间段内执行的所有子程序中每个子程序产生的性能参数,该每个子程序产生的性能参数组成一个参考特征向量。
第二方面,本发明的实施例提供一种检测装置,包括:获取模块,用于获取目标特征向量,该目标特征向量包括目标节点实际执行目标应用程序的目标子程序时产生的性能参数,该性能参数用于指示在执行该目标子程序的运行阶段内该目标节点的资源消耗;以及,获取与该目标子程序和该目标节点对应的目标性能模型,该目标性能模型用于指示正常执行该目标子程序时产生的性能参数区间;确定模块,用于若该目标特征向量位于该性能参数区间之外,则确定该目标节点在执行该目标应用程序的目标子程序时出现异常。
在一种可能的设计方式中,该装置还包括建模模块,该获取模块,还用于获取N个参考特征向量组,每个参考特征向量组用于指示执行一类子程序时产生的性能参数,N>1;对于所述N个参考特征向量组中的每个参考特征向量组,所述建模模块执行以下步骤,以得到N个性能模型;其中,所述建模模块,用于根据一个参考特征向量组建立一个性能模型,该性能模型用于指示正常执行一类子程序时产生的性能参数区间,所述目标性能模型为所述N个性能模型中的任一个。
在一种可能的设计方式中,所述每个参考特征向量组与所述一类子程序和执行所述一类子程序的节点对应,该获取模块,具体用于:从所述N个参考特征向量组中,确定与所述目标子程序和所述目标节点对应的目标参考特征向量组;将与该目标参考特征向量组对应的性能模型作为该目标性能模型。
在一种可能的设计方式中,所述目标性能模型为一个超球面模型;该确定模块,具体用于:若该目标特征向量位于该超球面模型外,则确定该目标节点在执行该目标子程序时出现异常。
在一种可能的设计方式中,所述目标性能模型为一个参考点集合,所述参考点集合中的每个参考点与所述目标参考特征向量组之间的距离小于预设阈值,该确定模块,具体用于:若该目标特征向量不属于该参考点集合,则确定该目标节点在执行该目标子程序时出现异常。
在一种可能的设计方式中,该获取模块,具体用于:获取Z个参考特征向量,每个参考特征向量用于指示一节点在执行一个子程序时产生的性能参数;按照预置的分类算法将该Z个参考特征向量划分为N组,得到该N个参考特征向量组,Z≥N。
在一种可能的设计方式中,该获取模块,具体用于:对于M个节点中的每个节点,所述获取模块执行以下步骤,以得到所述Z个参考特征向量;所述获取模块,具体用于:获取该节点在预设时间段内的运行信息,该运行信息包括该节点执行的所有子程序中每个子程序的标识,执行每个子程序的开始时间和终止时间,以及该节点在该预设时间段内执行所有子程序产生的性能参数;根据该运行信息,统计该节点执行的所有子程序中每个子程序产生的性能参数,执行该每个子程序产生的性能参数组成一个参考特征向量。
第三方面,本发明的实施例提供一种检测装置,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该检测装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该检测装置执行如第一方面中任意一项的异常节点的检测方法。
第四方面,本发明实施例提供了一种计算机存储介质,用于储存为上述检测装置所用的计算机软件指令,其包含用于执行上述方面为检测装置所设计的程序。
第五方面,本发明实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第一方面中任意一项的异常节点的检测方法。
本发明中,上述检测装置的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本发明类似,即属于本发明权利要求及其等同技术的范围之内。
另外,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为本发明实施例提供的一种检测系统的结构示意图;
图2为本发明实施例提供的一种异常节点的检测方法的流程示意图一;
图3为本发明实施例提供的一种性能模型的示意图一;
图4为本发明实施例提供的一种性能模型的示意图二;
图5为本发明实施例提供的一种异常节点的检测方法的流程示意图二;
图6为本发明实施例提供的一种检测装置的结构示意图一;
图7为本发明实施例提供的一种检测装置的结构示意图二;
图8为本发明实施例提供的一种检测装置的结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。
另外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本发明的实施例提供一种异常节点的检测方法,该方法可应用于图1所示的检测系统100中,检测系统100包括由M(M>1)个节点11组成的分布式集群,以及与每个节点11均相连的检测装置12。
其中,节点11可以为数据中心(DC,data center)内的任意节点,具体可用于执行各种分布迭代式数据处理程序(后续称为应用程序),例如,Spark应用、Dryad应用以及MapReduce应用等。
以Spark应用为例,在一个Spark应用的执行过程中可以划分为多个运行阶段(stage),例如,Result Stage(结果阶段),Shuffle Map Stage(洗牌图阶段)等,每个运行阶段中包括一个或多个操作组成的子程序,例如,由map(遍历)操作,join(连接)操作以及union(联合)操作构成Spark应用1的一个子程序,每个子程序可以在一个或多个节点11上串行或并行执行。
另外,不同应用程序之间可以包含相同的子程序,例如,Spark应用1包括子程序1、子程序2以及子程序3,Spark应用2包括子程序1、子程序2以及子程序4。
而在M个节点11组成的分布式集群内,通常需要重复执行固定的一个或多个应用程序,这一个或多个应用程序由固定数量的子程序组成,那么,在本发明实施例提供的异常节点的检测方法中,检测装置12可以预先建立这些子程序中每个子程序正常运行时的性能模型,即每个子程序正常运行时产生的性能参数区间,例如,CPU(Central ProcessingUnit,中央处理器)占用率的区间,IO(Input Output,输入输出)次数的区间等。也就是说,检测装置12内建立有性能模型与子程序之间的对应关系。
这样,当M个节点11中的某个节点(例如,目标节点)在执行某一应用程序(例如,目标应用程序)的某个子程序(例如,目标子程序)的过程中,检测装置12可以获取到此时目标节点的性能参数,例如,CPU占用率以及IO次数,得到一个目标特征向量,进而,检测装置12可以根据上述性能模型与子程序之间的对应关系,获取到与目标子程序对应的目标性能模型,那么,当目标特征向量位于目标性能模型所指示的性能参数区间之外时,例如,目标特征向量中包括CPU占用率和IO次数这两个性能参数,其中,CPU占用率为85%,IO次数为10次,而目标性能模型所指示的CPU占用率区间为45%-60%,IO次数区间为6-9次,则说明目标节点在执行目标应用程序的目标子程序时发生异常。
需要说明的是,上述目标特征向量中的性能参数与目标性能模型中指示的性能参数区间是一一对应的,并且,上述目标特征向量中可以包含一个或多个性能参数,本发明实施例对此不作限制。
也就是说,在本发明实施例提供的异常节点的检测方法中,可以直接检测出发生异常的节点和子程序,即确定出节点在执行某个应用程序时具体在哪个阶段发生了异常,从而对出现异常的应用程序快速定位。
由于上述应用程序通常为迭代应用,即应用程序的某个子程序会重复执行,那么,一旦在执行应用程序的前期定位出发生异常的子程序并及时解决,便可以防止后续依赖于该子程序的其他应用程序在执行过程中发生异常,从而提高整个分布式集群内应用程序的执行效率。
进一步地,当检测系统100内节点11需要执行的应用程序的个数较多时,出现的子程序的个数也会相应的增多,此时,可以将具有相似行为特征的子程序划分为一类,那么,后续检测装置12可以以子程序的类别为单位建立每类子程序正常运行时的性能模型,此时,检测装置12内建立有性能模型与各类子程序之间的对应关系,这样,可以减少检测装置12建立性能模型的次数,从而降低检测装置12的实现复杂度。
此时,与上述异常节点的检测方法不同的是,在获取到目标子程序的目标特征向量后,检测装置12可以根据目标子程序的类别,查找与目标子程序的类别对应的目标性能模型,进而,根据目标特征向量与目标性能模型所指示的性能参数区间之间的关系,确定目标节点在执行该目标子程序时是否发生异常。
需要说明的是,上述将具有相似行为特征的子程序划分为一类,具体是指在子程序的执行过程中将其资源使用特征(例如,访问、存储、计算等特征)相同或相近的多个子程序划分为一组。例如,可以通过分类算法(例如,kmeans聚类算法)或者根据子程序包含的相同操作的个数进行划分,后续实施例中将详细阐述,故此处不再赘述。
另外,上述检测装置12可以以一个或多个独立的设备形态设置在检测系统100中,也可以以一个或多个功能模块的形式设置在至少一个节点11内,本发明实施例对此不作任何限制。
以下,将结合具体实施例详细阐述本发明实施例提供的一种异常节点的检测方法,如图2所示,该方法包括:
201、检测装置采集M个节点中每个节点在预设时间段内的运行信息。
其中,该运行信息包括:该节点在预设时间段内执行的所有子程序中每个子程序的标识,例如,stage1、stage2,……,stageY;执行每个子程序的开始时间和终止时间,例如,stage1的开始时间(stage1_starttime)为8:00,stage1的终止时间(stage1_endtime)为8:15;以及每个节点在预设时间段内执行所有子程序产生的性能参数,例如,预设时间段为8:00-8:30,那么,可以一分钟为周期,采集8:00-8:30共30个周期中每个周期内每个节点的性能参数。
其中,该性能参数可用于指示节点的资源消耗。例如,该性能参数具体可以划分为系统层指标和体系结构层指标,其中,系统层指标可以为磁盘输入/输出(disk I/O)的读带宽、disk I/O的写带宽、网络I/O的读带宽、网络I/O的写带宽、内存的读带宽、内存的写带宽、CPU占用率以及I/O等待时间中的至少一个;体系结构层指标可以为浮点指令比例、整形指令比例、Load/Store指令比例(Load用于从内存中取数据,Store用于存数据到内存)、分支指令比例、Cache(缓存)MPKI(misses per 1000instructions,每千条指令失效数)、ITLB(Instruction Translation Lookaside Buffer,指令旁路转换缓冲)MPKI以及DTLB(DataTranslation Lookaside Buffer,数据旁路转换缓冲)MPKI中的至少一个,本领域技术人员可以根据实际经验设置上述性能参数,本发明实施例对此不作任何限制。
202、检测装置根据上述运行信息,统计该节点在预设时间段内执行的每个子程序产生的性能参数,执行每个子程序产生的性能参数组成一个参考特征向量。
以节点1为例,如果节点1在预设时间段内执行了子程序1和子程序2,那么,可以根据节点1执行子程序1的开始时间和终止时间,统计出节点1在执行子程序1时产生的性能参数,还可以根据节点1执行子程序2的始时间和终止时间,统计出节点1在执行子程序2时产生的性能参数。
那么,在步骤202中,对于M个节点中的每个节点,如表1所示,可以以节点和子程序的标识为索引,统计出每个节点在执行不同子程序时分别产生的性能参数。例如,当节点1执行子程序1的时间区间为8:00-8:15时,如果检测装置每隔一分钟均会采集一次节点1的性能参数1,那么,可以将这15分钟内采集到的所有性能参数1的平均值(例如,10)作为该时间区间的性能参数1,也就是说,节点1在执行子程序1时产生的性能参数1的值为10。
表1
这样,任意节点i(0<i≤M)在执行一个子程序j(0<j≤W)时产生的性能参数可以构成一个参考特征向量v,即:
ν(节点i-子程序j)
=(性能参数1,性能参数2,......,性能参数W)
那么,对于上述M个节点中每个节点在执行不同子程序时产生的性能参数,按照上述方法可以统计出Z个参考特征向量,Z≥1。
示例性的,表1所示的每个节点在执行不同子程序时分别产生的性能参数共构成5个参考特征向量,分别为:ν(节点1-子程序1)=(10,2,......,6);v(节点1-子程序2)=(9,2,......,9);v(节点2-子程序2)=(6,2,......,2);ν(节点2-子程序3)=(7,2,......,7)以及ν(节点3-子程序4)=(9,4,......,7)。
203、检测装置将得到的上述Z个参考特征向量划分为N组,得到N个参考特征向量组,Z≥N≥1。
此时,每个参考特征向量组用于指示执行一类子程序时产生的性能参数,即每个参考特征向量组与一类子程序和执行该类子程序的节点对应。
具体的,对于步骤202中得到的Z一个参考特征向量,可以通过预置的分类算法,将具有相似行为特征的参考特征向量划分为一组,即得到一个参考特征向量组。
其中,由于参考特征向量中包括某个节点在执行某个子程序时产生的性能参数,因此,具有相似行为特征的参考特征向量所对应的子程序可作为一类子程序。
在一种可能的设计方式中,可以通过预置的分类算法,例如,kmeans聚类算法等,对上述至少一个参考特征向量进行分组,得到如表2所示的3个参考特征向量组,每一个参考特征向量组用于指示在执行某一类子程序时产生的性能参数。
在另一种可能的设计方式中,步骤201获取到的运行信息中还可以包括每个子程序所属的阶段名称(即stage_name),stage_name描述了在该运行阶段(stage)执行该子程序所实现的功能,此时,预置的分类算法可以为将stage_name相同的参考特征向量划分为一组,即在步骤203中,将stage_name相同的参考特征向量划分为一组,得到如表2所示的3个参考特征向量组。
可以理解的是,本领域技术人员还可以根据实际经验或实际应用场景预置其他的分类算法,将具有相似行为特征的参考特征向量划分为一个参考特征向量组,本发明实施例对此不作限制。
表2
204、检测装置建立N个性能模型,这N个性能模型与上述N个参考特征向量组一一对应。
具体的,当通过上述kmeans聚类算法将上述Z个参考特征向量划分为N个参考特征向量组时,对于每一个参考特征向量组,假设该参考特征向量组中包括K(K≥1)个参考特征向量,此时,在步骤204中,如图3所示,可以将上述K个参考特征向量映射在一个二维及二维以上的坐标系中(图3中以二维坐标系为例),此时,检测装置可以设置一个可变向量P(X1,X2,……,XW),计算P(X1,X2,......,XW)分别到这K个参考特征向量之间的距离,进而将P(X1,X2,......,XW)分别到这K个参考特征向量之间的距离之和的平均值作为可变向量P到该参考特征向量组之间的距离。然后,将该平均值与预设阈值进行比较,若该平均值小于或等于预设阈值,则将该可变向量作为与上述参考特征向量组对应的性能模型中的一个参考点,这样,通过上述方法,可以找到所有与K个参考特征向量之间的距离之和的平均值小于预设阈值的参考点集合,该参考点集合即为对应参考特征向量组的性能模型。
又或者,当使用上述stage_name将上述至少一个参考特征向量划分为N个参考特征向量组时,对于每一个参考特征向量组,假设该参考特征向量组中包括K(K≥1)个参考特征向量,此时,在步骤204中,如图4所示,可以将上述K个参考特征向量映射在一个二维及二维以上的坐标系中(图4中以三维坐标系为例),此时,检测装置可以使用目标分类算法,例如,SVDD(support vector domain description,支持向量域描述)算法,建立一个超球面模型(超球面是指三维及三维以上的空间中的球面),将上述K个参考特征向量包裹在该超球面模型内,此时,该超球面模型即为对应参考特征向量组的性能模型。
可以看出,每个性能模型用于指示正常执行某一类子程序时产生的性能参数区间。
至此,通过步骤201-204,检测装置通过采集检测系统内各个节点的运行信息,可建立出与每个参考特征向量组对应的性能模型,后续,在实际检测异常节点的过程中,检测装置可以通过已建立的性能模型,确定检测系统内的某个节点在执行某个子程序时是否发生异常,从而能够帮助开发人员对出现异常的应用程序进行快速定位。
以下,将结合详细实施例阐述本发明实施例提供的一种异常节点的检测方法,如图5所示,该方法包括:
501、检测装置获取目标特征向量,该目标特征向量包括目标节点实际执行目标应用程序的目标子程序时产生的性能参数。
当启动检测装置的检测功能后,检测装置可以使用与上步骤201类似的方法,采集检测系统内M个节点在预设周期内的运行信息,该预设周期可以与上述预设时间段相同或不同。进而,检测装置可以根据该运行信息,分别检测在每一个节点上执行的所有子程序中是否存在发生异常的子程序。
以目标节点(目标节点为上述M个节点中的任一个)为例,根据采集到的运行信息,可以确定目标节点执行了哪些子程序、执行每一个子程序时的开始时间和终止时间,以及执行每一个子程序时产生的性能参数。
具体的,以目标节点执行一个目标子程序为例,可以将确定出的目标节点在执行该目标子程序时产生的性能参数作为目标特征向量w,即:
w(目标节点-目标子程序)=
(性能参数1,性能参数2,......,性能参数W)。
此时,目标特征向量w内的性能参数用于指示在实际执行目标子程序的运行阶段内目标节点的资源消耗。
502、检测装置确定与上述目标子程序和目标节点对应的目标参考特征向量组。
其中,目标参考特征向量组具体为上述N个参考特征向量组中的任一个。
由于在步骤203中,检测装置获取的N个参考特征向量组中,如表2所示,每个参考特征向量组都包含至少一个节点在执行至少一个子程序时产生的性能参数,那么,检测装置可以在N个参考特征向量组中,将与上述目标子程序和目标节点对应的参考特征向量组,作为上述目标参考特征向量组。
例如,如果上述目标节点为节点1,目标子程序为子程序1,那么,通过表2可以看出,由于参考特征向量组1中包括v(节点1-子程序1)这一参考特征向量,即,与节点1和子程序1对应的目标参考特征向量组为参考特征向量组1,因此,可以将参考特征向量组1作为目标参考特征向量组。
503、检测装置将与目标参考特征向量组对应的性能模型作为目标性能模型。
在步骤503中,检测装置可以根据步骤204中建立的N个参考特征向量组与N个性能模型之间的对应关系,将与步骤502中得到的目标参考特征向量组对应的性能模型作为目标性能模型。
此时,目标性能模型可用于指示正常执行上述子程序类别的子程序时产生的性能参数区间。当然,目标子程序也是上述子程序类别中的一个子程序。
504、若目标特征向量位于性能参数区间之外,则检测装置确定目标节点在执行目标应用程序的目标子程序时出现异常。
示例性的,上述目标性能模型可以为步骤204中得到的一个参考点集合,那么,如果目标特征向量属于该参考点集合,则说明目标特征向量内的性能参数在正常的性能参数区间内,那么,可以确定目标节点在执行目标子程序时没有发生异常;相应的,如果目标特征向量不属于该参考点集合,则说明目标特征向量内的性能参数为正常的性能参数区间之外的一个离群值,那么,可以确定目标节点在执行目标子程序时发生异常。
又或者,上述目标性能模型可以为图4所示的一个超球面模型,那么,如果目标特征向量位于该超球面模型内,则说明该目标特征向量内的性能参数在正常的性能参数区间内,那么,可以确定目标节点在执行目标子程序时没有出现异常;如果目标特征向量位于该超球面模型外,则说明该目标特征向量内的性能参数为正常的性能参数区间之外的一个离群值,那么,可以确定目标节点在执行目标子程序时出现异常。
当然,在步骤504中,如果检测装置确定目标节点在执行上述目标子程序出现异常,那么,检测装置还可以生成告警指示,从而提醒开发人员及时对出现异常的目标子程序进行修复,防止后续其他依赖于该目标子程序的其他应用程序在执行过程中发生异常,从而提高整个分布式集群内应用程序的执行效率。
进一步地,对于目标节点执行的除上述目标子程序之外的子程序,以及除上述目标节点之外的其他节点执行的各个子程序,均可以参照上述步骤501-504检测相应的子程序是否发生异常,本发明实施例对此不再赘述。
可以理解的是,上述检测装置等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对检测装置等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图6示出了上述实施例中所涉及的检测装置的一种可能的结构示意图,该检测装置包括:获取模块61,确定模块62和建模模块63。
获取模块61用于支持检测装置执行图2中的过程201-203以及图5中的过程501-503;确定模块62用于支持检测装置执行图5中的过程504;建模模块63用于支持检测装置执行图2中的过程204。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图7示出了上述实施例中所涉及的检测装置的一种可能的结构示意图。检测装置包括:处理模块72和通信模块73。处理模块72用于对检测装置的动作进行控制管理,例如,处理模块72用于支持检测装置执行图2中的过程201-204以及图5中的过程501-504,和/或用于本文所描述的技术的其它过程。通信模块73用于支持检测装置与其他网络实体的通信。检测装置还可以包括存储模块71,用于存储检测装置的程序代码和数据。
其中,处理模块72可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块73可以是收发器、收发电路或通信接口等。存储模块61可以是存储器。
当处理模块72为处理器,通信模块73为收发器,存储模块71为存储器时,本发明实施例所涉及的检测装置可以为图8所示的检测装置。
参阅图8所示,该检测装置包括:处理器82、收发器81、存储器83以及总线84。其中,收发器81、处理器82以及存储器83通过总线84相互连接;总线84可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,本发明实施例还提供一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,可以使得计算机可以执行上述步骤201-204或501-504中相关的异常节点的检测方法。
进一步地,本发明实施例还提供一种计算机存储介质,用于储存为上述检测装置所用的计算机软件指令,其包含用于执行为上述检测装置所设计的任意程序。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (13)
1.一种异常节点的检测方法,其特征在于,包括:
获取目标特征向量,所述目标特征向量包括目标节点实际执行目标应用程序的目标子程序时产生的性能参数,所述性能参数用于指示在执行所述目标子程序的运行阶段内所述目标节点的资源消耗;
获取与所述目标子程序和所述目标节点对应的目标性能模型,所述目标性能模型用于指示所述目标节点正常执行所述目标子程序时产生的性能参数区间;
若所述目标特征向量位于所述性能参数区间之外,则确定所述目标节点在执行所述目标子程序时出现异常;
其中,在获取目标特征向量之前,还包括:
获取N个参考特征向量组,每个参考特征向量组用于指示执行一类子程序时产生的性能参数,N>1;
对于所述N个参考特征向量组中的每个参考特征向量组,执行以下步骤,以得到N个性能模型;
根据一个参考特征向量组建立一个性能模型,该性能模型用于指示正常执行一类子程序时产生的性能参数区间,所述目标性能模型为所述N个性能模型中的任一个。
2.根据权利要求1所述的方法,其特征在于,所述每个参考特征向量组与所述一类子程序和执行所述一类子程序的节点对应,
其中,获取与所述目标子程序和所述目标节点对应的目标性能模型,包括:
从所述N个参考特征向量组中,确定与所述目标子程序和所述目标节点对应的目标参考特征向量组;
将与所述目标参考特征向量组对应的性能模型作为所述目标性能模型。
3.根据权利要求1所述的方法,其特征在于,所述目标性能模型为一个超球面模型;
其中,若所述目标特征向量位于所述性能参数区间之外,则确定所述目标节点在执行所述目标子程序时出现异常,包括:
若所述目标特征向量位于所述超球面模型外,则确定所述目标节点在执行所述目标子程序时出现异常。
4.根据权利要求1所述的方法,其特征在于,所述目标性能模型为一个参考点集合,所述参考点集合中的每个参考点与所述目标参考特征向量组之间的距离小于预设阈值;
其中,若所述目标特征向量位于所述性能参数区间之外,则确定所述目标节点在执行所述目标子程序时出现异常,包括:
若所述目标特征向量不属于所述参考点集合,则确定所述目标节点在执行所述目标子程序时出现异常。
5.根据权利要求1-4中任一项所述的方法,其特征在于,获取N个参考特征向量组,包括:
获取Z个参考特征向量,每个参考特征向量用于指示一个节点在执行一个子程序时产生的性能参数;
按照预置的分类算法将所述Z个参考特征向量划分为N组,得到所述N个参考特征向量组,Z≥N。
6.根据权利要求5所述的方法,其特征在于,获取Z个参考特征向量,包括:
对于M个节点中的每个节点,执行以下步骤,以得到所述Z个参考特征向量;
获取该节点在预设时间段内的运行信息,所述运行信息包括该节点执行的所有子程序中每个子程序的标识,执行每个子程序的开始时间和终止时间,以及该节点在所述预设时间段内执行所有子程序产生的性能参数;
根据所述运行信息,统计该节点在预设时间段内执行的所有子程序中每个子程序产生的性能参数,执行所述每个子程序产生的性能参数组成一个参考特征向量。
7.一种检测装置,其特征在于,包括:
获取模块,用于获取目标特征向量,所述目标特征向量包括目标节点实际执行目标应用程序的目标子程序时产生的性能参数,所述性能参数用于指示在执行所述目标子程序的运行阶段内所述目标节点的资源消耗;以及,获取与所述目标子程序和所述目标节点对应的目标性能模型,所述目标性能模型用于指示所述目标节点正常执行所述目标子程序时产生的性能参数区间;
确定模块,用于若所述目标特征向量位于所述性能参数区间之外,则确定所述目标节点在执行所述目标子程序时出现异常;
其中,所述装置还包括建模模块,
所述获取模块,还用于获取N个参考特征向量组,每个参考特征向量组用于指示执行一类子程序时产生的性能参数,N>1;
对于所述N个参考特征向量组中的每个参考特征向量组,所述建模模块执行以下步骤,以得到N个性能模型;
其中,所述建模模块,用于根据一个参考特征向量组建立一个性能模型,该性能模型用于指示正常执行一类子程序时产生的性能参数区间,所述目标性能模型为所述N个性能模型中的任一个。
8.根据权利要求7所述的装置,其特征在于,所述每个参考特征向量组与所述一类子程序和执行所述一类子程序的节点对应,
所述获取模块,具体用于:从所述N个参考特征向量组中,确定与所述目标子程序和所述目标节点对应的目标参考特征向量组;将与所述目标参考特征向量组对应的性能模型作为所述目标性能模型。
9.根据权利要求7所述的装置,其特征在于,所述目标性能模型为一个超球面模型;
所述确定模块,具体用于:若所述目标特征向量位于所述超球面模型外,则确定所述目标节点在执行所述目标子程序时出现异常。
10.根据权利要求7所述的装置,其特征在于,所述目标性能模型为一个参考点集合,所述参考点集合中的每个参考点与所述目标参考特征向量组之间的距离小于预设阈值;
所述确定模块,具体用于:若所述目标特征向量不属于所述参考点集合,则确定所述目标节点在执行所述目标子程序时出现异常。
11.根据权利要求7-10中任一项所述的装置,其特征在于,
所述获取模块,具体用于:获取Z个参考特征向量,每个参考特征向量用于指示一个节点在执行一个子程序时产生的性能参数;按照预置的分类算法将所述Z个参考特征向量划分为N组,得到所述N个参考特征向量组,Z≥N。
12.根据权利要求11所述的装置,其特征在于,对于M个节点中的每个节点,所述获取模块执行以下步骤,以得到所述Z个参考特征向量;
所述获取模块,具体用于:对于所述M个节点中的每个节点,获取该节点在预设时间段内的运行信息,所述运行信息包括该节点执行的所有子程序中每个子程序的标识,执行每个子程序的开始时间和终止时间,以及该节点在所述预设时间段内执行所有子程序产生的性能参数;根据所述运行信息,统计该节点执行的所有子程序中每个子程序产生的性能参数,执行所述每个子程序产生的性能参数组成一个参考特征向量。
13.一种检测装置,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述检测装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述检测装置执行如权利要求1-6中任一项所述的异常节点的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611153279.2A CN108228442B (zh) | 2016-12-14 | 2016-12-14 | 一种异常节点的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611153279.2A CN108228442B (zh) | 2016-12-14 | 2016-12-14 | 一种异常节点的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228442A CN108228442A (zh) | 2018-06-29 |
CN108228442B true CN108228442B (zh) | 2020-10-27 |
Family
ID=62637647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611153279.2A Active CN108228442B (zh) | 2016-12-14 | 2016-12-14 | 一种异常节点的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228442B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837452A (zh) * | 2018-08-17 | 2020-02-25 | 宁波方太厨具有限公司 | 一种检测应用程序异常的方法 |
CN110069401B (zh) * | 2019-03-18 | 2023-09-12 | 平安科技(深圳)有限公司 | 基于数据建模的系统测试异常定位方法及系统 |
CN110309917B (zh) * | 2019-07-05 | 2020-12-18 | 安徽寒武纪信息科技有限公司 | 离线模型的验证方法及相关装置 |
CN112416735B (zh) * | 2019-08-21 | 2024-06-25 | 腾讯科技(深圳)有限公司 | 一种应用程序检测方法、装置及终端设备、存储介质 |
CN113282433B (zh) * | 2021-06-10 | 2023-04-28 | 天翼云科技有限公司 | 集群异常检测方法、装置和相关设备 |
CN115687023A (zh) * | 2022-12-08 | 2023-02-03 | 深圳阿塔基科技有限公司 | 互联网大数据的处理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888304A (zh) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | 一种多节点应用的异常检测方法及相关装置 |
CN104536996A (zh) * | 2014-12-12 | 2015-04-22 | 南京理工大学 | 一种同构环境下计算节点异常检测方法 |
CN105745868A (zh) * | 2013-11-26 | 2016-07-06 | 瑞典爱立信有限公司 | 网络中异常检测的方法和装置 |
CN105871634A (zh) * | 2016-06-01 | 2016-08-17 | 北京蓝海讯通科技股份有限公司 | 检测集群异常的方法及应用、管理集群的系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8683591B2 (en) * | 2010-11-18 | 2014-03-25 | Nant Holdings Ip, Llc | Vector-based anomaly detection |
-
2016
- 2016-12-14 CN CN201611153279.2A patent/CN108228442B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888304A (zh) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | 一种多节点应用的异常检测方法及相关装置 |
CN105745868A (zh) * | 2013-11-26 | 2016-07-06 | 瑞典爱立信有限公司 | 网络中异常检测的方法和装置 |
CN104536996A (zh) * | 2014-12-12 | 2015-04-22 | 南京理工大学 | 一种同构环境下计算节点异常检测方法 |
CN105871634A (zh) * | 2016-06-01 | 2016-08-17 | 北京蓝海讯通科技股份有限公司 | 检测集群异常的方法及应用、管理集群的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108228442A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228442B (zh) | 一种异常节点的检测方法及装置 | |
US9471383B2 (en) | Task allocation in a computing environment | |
CN107957848B (zh) | 重删处理方法及存储设备 | |
EP3576093A1 (en) | Method and system for clinical effectiveness evaluation of artificial intelligence based medical device | |
JP6382284B2 (ja) | ベクトル推定に基づくグラフ分割を伴う、コンピューティング装置のデータフロープログラミング | |
CN110516811B (zh) | 一种量子态确定方法、装置、设备和存储介质 | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN114637650A (zh) | 一种基于Kubernetes集群的弹性伸缩方法 | |
CN109587072A (zh) | 分布式系统全局限速系统及方法 | |
CN109739433A (zh) | 数据处理的方法及终端设备 | |
CN115358308A (zh) | 一种大数据实例约简方法、装置、电子设备及存储介质 | |
CN108920601B (zh) | 一种数据匹配方法及装置 | |
CN109409411B (zh) | 基于运维管理的问题定位方法、装置及存储介质 | |
CN114237981A (zh) | 数据恢复方法、装置、设备及存储介质 | |
CN113946717A (zh) | 一种子图指标特征获得方法、装置、设备及存储介质 | |
CN110704696A (zh) | 数据标准化方法、装置、电子设备及可读存储介质 | |
CN107066247B (zh) | 补丁查询方法以及装置 | |
US20140324868A1 (en) | Method for rapid data classification | |
CN110569892A (zh) | 一种泛在定位信号静态定位方法及系统 | |
CN116094952B (zh) | 网络结构相似度的确定方法、装置、设备以及存储介质 | |
CN112395081A (zh) | 一种资源在线自动回收方法、系统、服务器以及存储介质 | |
CN111352825A (zh) | 数据接口的测试方法、装置及服务器 | |
CN111274228B (zh) | 保单数据迁移存储方法、系统、设备及可读存储介质 | |
CN114417085B (zh) | 数据处理方法、装置、设备及存储介质 | |
WO2021003704A1 (zh) | 含隐私约束条件的地理分布式进程映射方法、装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |