CN104506392B - 一种宕机检测方法及设备 - Google Patents
一种宕机检测方法及设备 Download PDFInfo
- Publication number
- CN104506392B CN104506392B CN201510003754.7A CN201510003754A CN104506392B CN 104506392 B CN104506392 B CN 104506392B CN 201510003754 A CN201510003754 A CN 201510003754A CN 104506392 B CN104506392 B CN 104506392B
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- detected node
- downtime
- node
- time interval
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 claims description 50
- 238000011084 recovery Methods 0.000 claims description 47
- 238000005516 engineering process Methods 0.000 abstract description 4
- 206010000234 Abortion spontaneous Diseases 0.000 abstract 3
- 208000015994 miscarriage Diseases 0.000 abstract 3
- 208000000995 spontaneous abortion Diseases 0.000 abstract 3
- 230000000747 cardiac effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 239000000047 product Substances 0.000 description 4
- 239000000523 sample Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
Abstract
本发明涉及心跳检测技术,公开了基于心跳检测技术的宕机检测方法以及设备,其中宕机检测方法由宕机检测节点执行,包括:获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为所述宕机检测节点接收到的所述被检测节点的相邻心跳消息的接收时刻的时间间隔;获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值;根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长;如果在所述心跳超时时长内未收到来自所述被检测节点的心跳消息,判定所述被检测节点宕机。使用本发明,可以保证系统的高可用性。
Description
技术领域
本发明涉及心跳检测技术,具体涉及一种基于心跳检测技术的宕机检测方法以及设备。
背景技术
企业中的关键应用,如邮件服务、文件服务、数据库服务等,通常会被要求不间断连续提供服务并且不能表现出故障切换,这就要求承载关键应用的系统具有高可用性(HA,High Availability)。高可用性是指通过尽量缩短系统停机时间(因日常的维护操作或突发的系统崩溃等),以提高系统的可用性。通常高可用性表现为系统能够自动快速判断故障,并提供故障恢复的能力,通常用高可用率来衡量高可用性,高可用率为系统中断时间占工作时间的比例。
自动判断故障通常为利用心跳(Heartbeat)检测检测系统中的节点是否宕机,传统的心跳检测方法是设定一个心跳超时时长(timeout),只要在心跳超时时长之内没有接收到被检测节点的心跳消息便认为被检测节点宕机。在传统的心跳检测方式下,被检测节点通常会每间隔t秒向宕机检测节点发送心跳消息,而宕机检测节点采用心跳超时时长T(t<T)来判断目标是否宕机。在宕机检测节点判定被检测节点宕机后,宕机检测节点可以向被检测节点发送重启命令或是故障切换消息进行故障恢复。
但从理论上来说,心跳检测无法真正检测被检测节点是否宕机,主要困难在于无法真正区别被检测节点宕机与被检测节点的心跳消息还没到达这两种情况,当判定没有宕机的被检测节点为宕机时就造成了误判。在实际中往往会通过测试或估计的方式为T赋一个上限值。然而靠测试或估计很难设定一个合适的心跳超时时长T以便精确满足系统对误判概率的要求,从而无法保证系统的高可用性。
发明内容
本发明实施例提供了一种宕机检测方法及设备,用以解决很难设定一个合适的心跳超时时长T以便精确满足系统对误判概率的要求的问题,从而提高系统的高可用性。
第一方面,本发明实施例提供了一种宕机检测方法,由宕机检测节点执行,所述方法包括:获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为所述宕机检测节点接收到所述被检测节点的相邻心跳消息的接收时刻的时间间隔;获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值;根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长;如果在所述心跳超时时长内未收到来自所述被检测节点的心跳消息,判定所述被检测节点宕机。
结合第一方面,在第一方面第一种可能的实现方式中,所述获得所述被检测节点的误判概率值包括:获得接收到所述被检测节点的心跳消息的次数的预测值;获得所述被检测节点的与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值;根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值。
结合上述第一方面可能的实现方式,在第一方面第二种可能的实现方式中,所述根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值包括:将所述被检测节点的误判概率上限值设置为所述将所述被检测节点误判为宕机的次数的上限值与所述预测值的比值。
结合上述第一方面可能的实现方式,在第一方面第三种可能的实现方式中,所述预测值为一段有效期内的所述被检测节点的接收到所述被检测节点的心跳消息的次数的预测值,所述获得所述被检测节点的接收到所述被检测节点的心跳消息的次数的预测值包括:获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期的时长;根据所述有效期的时长与所述单次心跳时间间隔的比值获得所述预测值。
结合上述第一方面可能的实现方式,在第一方面第四种可能的实现方式中,所述获得所述被检测节点的与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值包括:获得所述被检测节点的误判最大时长和所述被检测节点的单次中断时长,所述误判最大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和的上限,所述单次中断时长为所述被检测节点单次宕机造成的业务中断时长;根据所述误判最大时长与所述单次中断时长的比值获得所述将所述被检测节点误判为宕机的次数的上限值。
结合上述第一方面可能的实现方式,在第一方面第五种可能的实现方式中,所述根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长包括:根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布;根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
结合上述第一方面可能的实现方式,在第一方面第六种可能的实现方式中,所述根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长包括:根据如下数学方程计算所述心跳超时时长:
其中,Φ为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的概率分布的函数,x为所述历史心跳时间间隔。
结合上述第一方面可能的实现方式,在第一方面第七种可能的实现方式中,所述根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布包括:使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值,从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数。
结合上述第一方面可能的实现方式,在第一方面第八种可能的实现方式中,所述被检测节点的历史心跳时间间隔为所述被检测节点的最近n次心跳时间间隔的集合,
其中,xj∈{x1,x2,……,xn}为f(x)的系数,hn∈(0,1];所述使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值包括:确定{x1,x2,……,xn}的值分别为所述被检测节点的最近n次心跳时间间隔的值。
结合上述第一方面可能的实现方式,在第一方面第九种可能的实现方式中,在所述判定所述被检测节点宕机之后,所述方法还包括:执行所述被检测节点的宕机恢复策略,所述宕恢复机策略用于将所述被检测节点恢复为正常工作状态;在所述被检测节点被误判为宕机时,获得由所述宕机恢复策略造成的业务中断时长,将所述误判最大时长减去所述宕机恢复策略造成的业务中断时长更新所述误判最大时长。
结合上述第一方面可能的实现方式,在第一方面第十种可能的实现方式中,当所述预测值的有效期届满时,所述方法还包括:重置所述预测值的有效期;根据重置后的有效期重置所述误判最大时长。
结合上述第一方面可能的实现方式,在第一方面第十一种可能的实现方式中,所述根据所述重置后的有效期重置所述误判最大时长包括:将所述误判最大时长的值设置为所述重置后的有效期的时长、预设的高可用率和误判率的乘积,所述误判率的值为统计获得的一段时间内的所有误判造成的业务中断时长之和在所有业务中断时长之和中所占的比例,所述预设的高可用率为预设的一段时间内的所有业务中断时长之和占所述一段时间的时长的比例。
结合上述第一方面可能的实现方式,在第一方面第十二种可能的实现方式中,所述预测值的有效期的时间范围通过有效期的起始时刻和所述有效期的终止时刻来表示,所述有效期的起始时刻与当前时刻同步。
结合上述第一方面可能的实现方式,在第一方面第十三种可能的实现方式中,在所述根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长之前还包括:在预设的探测心跳超时时长内未收到来自所述被检测节点的心跳消息时,才根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
第二方面,本发明实施例提供了一种宕机检测节点,所述宕机检测节点包括:间隔获得模块,用于获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为所述宕机检测节点接收到所述被检测节点的相邻心跳消息的接收时刻的时间间隔;概率获得模块,用于获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值;时长计算模块,用于根据所述概率获得模块获得的所述误判概率上限值和所述间隔获得模块获得的历史心跳时间间隔计算所述被检测节点的心跳超时时长;宕机判定模块,用于在所述时长计算模块获得心跳超时时长内未收到来自所述被检测节点的心跳消息时,判定所述被检测节点宕机。
结合第二方面,在第二方面第一种可能的实现方式中,所述概率获得模块具体用于:获得接收到所述被检测节点的心跳消息的次数的预测值;获得所述被检测节点的与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值;根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值。
结合上述第二方面可能的实现方式,在第二方面第二种可能的实现方式中,所述概率获得模块根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值包括:
所述概率获得模块将所述被检测节点的误判概率上限值设置为所述将所述被检测节点误判为宕机的次数的上限值与所述预测值的比值。
结合上述第二方面可能的实现方式,在第二方面第三种可能的实现方式中,所述预测值为一段有效期内的所述被检测节点的接收到所述被检测节点的心跳消息的次数的预测值,所述概率获得模块获得所述被检测节点的接收到所述被检测节点的心跳消息的次数的预测值包括:所述概率获得模块获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期的时长;所述概率获得模块根据所述有效期的时长与所述单次心跳时间间隔的比值获得所述预测值。
结合上述第二方面可能的实现方式,在第二方面第四种可能的实现方式中,所述概率获得模块获得所述被检测节点的与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值包括:所述概率获得模块获得所述被检测节点的误判最大时长和所述被检测节点的单次中断时长,所述误判最大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和的上限,所述单次中断时长为所述被检测节点单次宕机造成的业务中断时长;
所述阈值获得模块根据所述误判最大时长与所述单次中断时长的比值获得所述将所述被检测节点误判为宕机的次数的上限值。
结合上述第二方面可能的实现方式,在第二方面第五种可能的实现方式中,所述时长计算模块具体用于:所述时长计算模块根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布;所述时长计算模块根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
结合上述第二方面可能的实现方式,在第二方面第六种可能的实现方式中,所述时长计算模块根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长包括:所述时长计算模块根据如下数学方程计算所述心跳超时时长:
其中,Φ为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的概率分布的函数,x为所述历史心跳时间间隔。
结合上述第二方面可能的实现方式,在第二方面第七种可能的实现方式中,所述时长计算模块根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布包括:所述时长计算模块使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值,从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数。
结合上述第二方面可能的实现方式,在第二方面第八种可能的实现方式中,所述被检测节点的历史心跳时间间隔为所述被检测节点的最近n次心跳时间间隔的集合,
其中,xj∈{x1,x2,……,xn}为f(x)的系数,hn∈(0,1];
所述时长计算模块使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值包括:所述时长计算模块确定{x1,x2,……,xn}的值分别为所述被检测节点的最近n次心跳时间间隔的值。
结合上述第二方面可能的实现方式,在第二方面第九种可能的实现方式中,所述宕机检测节点还包括:宕机恢复模块,在所述被检测节点被所述宕机判定模块判定为宕机时,执行所述被检测节点的宕机恢复策略,所述宕恢复机策略用于将所述被检测节点恢复为正常工作状态;第二更新模块,在所述被检测节点被所述宕机判定模块判定为宕机时,检测所述被检测节点是否被误判为宕机,在所述被检测节点被误判为宕机时,将所述误判最大时长减去所述宕机恢复模块执行所述宕机恢复策略造成的业务中断时间更新所述误判最大时长。
结合上述第二方面可能的实现方式,在第二方面第十种可能的实现方式中,所述宕机检测节点还包括:重置模块,用于在所述预测值的有效期届满时重置所述预测值的有效期,并根据重置后的有效期重置所述误判最大时长。
结合上述第二方面可能的实现方式,在第二方面第十一种可能的实现方式中,所述重置模块据重置后的有效期重置所述误判最大时长包括:所述重置模块将所述误判最大时长的值设置为所述重置后的有效期的时长、预设的高可用率和误判率的乘积,所述误判率的值为统计获得的一段时间内的所有误判造成的业务中断时长之和在所有业务中断时长之和中所占的比例,所述预设的高可用率为预设的一段时间内的所有业务中断时长之和占所述一段时间的时长的比例。
结合上述第二方面可能的实现方式,在第二方面第十二种可能的实现方式中,所述预测值的有效期的时间范围通过有效期的起始时刻和所述有效期的终止时刻来表示,所述有效期的起始时刻与当前时刻同步。
结合上述第二方面可能的实现方式,在第二方面第十三种可能的实现方式中,所述宕机检测节点还包括:时长计算触发模块,用于在预设的探测心跳超时时长内未收到来自所述被检测节点的心跳消息时,通知所述时长计算模块根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
使用本发明实施例提供的技术方案,能够根据误判概率上限值以及心跳时间间隔的概率分布来计算被检测节点的心跳超时时长,并且只在心跳超时时长内未收到来自所述被检测节点的心跳消息时,才判定所述被检测节点宕机,由于计算出的的心跳超时时长对被检测节点进行心跳检测的误判概率不会超过误判概率上限,因此可以满足系统对误判概率的要求,从而保证系统的高可用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是依据本发明某些实施例的实施场景的示意图;
图2是依据本发明某些实施例的实施场景的示意图;
图3是依据本发明某些实施例的宕机检测方法的流程示意图;
图4是依据本发明某些实施例的宕机检测方法的流程示意图;
图5是依据本发明某些实施例的宕机检测节点的逻辑结构示意图;
图6是依据本发明某些实施例的计算机设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1提供了本发明实施例的一种实施场景,该实施场景中的具有心跳检测机制的系统为主从(master/slave)模式的系统。在图1中,slave节点101、slave节点102、slave节点103、slave节点104、slave节点105为互相等同的slave节点,slave节点作为被检测节点每隔一定的时间向master节点106发送心跳消息,其中,slave节点只能向master节点106发送心跳消息,slave节点之间不能发送心跳消息。以slave节点101为例,master节点106作为宕机检测节点对slave节点进行心跳检测从而判断slave节点101是否宕机,在master节点106判定slave节点101为宕机后,master节点106可以向slave节点101发送重启命令或是故障切换消息进行故障恢复。应注意,本领域的技术人员应当明白,在该实施场景中从属于同一master节点的slave节点的数量不受限制。
图2提供了本发明实施例的另一种实施场景,该实施场景中的具有心跳检测机制的系统可以为从从(slave/slave)模式的系统。在图2中,不存在master节点,slave节点之间可以互发心跳消息,slave节点201、slave节点202、slave节点203、slave节点204、slave节点205为互相等同的slave节点,在从从模式的系统中,一个slave节点可以同时作为宕机检测节点和备检测节点。以slave节点201为例,一方面,slave节点201可以作为宕机检测节点接收来自slave节点202的心跳消息,并对发送心跳消息的slave节点202作为被检测节点进行心跳检测,在slave节点201判定slave节点202为宕机后,slave节点201可以向slave节点202发送重启命令或是故障切换消息进行故障恢复。另一方面,slave节点201还可以作为被检测节点向slave节点205发送心跳消息,以使得接收心跳消息的slave节点205作为宕机检测节点对被检测节点slave节点201进行心跳检测。在slave节点205判定slave节点201为宕机后,slave节点205可以向slave节点201发送重启命令或是故障切换消息进行故障恢复。应注意,本领域的技术人员应当明白,在该实施场景中的从从模式的系统中的slave节点的数量不受限制。
在本发明实施例的实施场景中,可以由宕机检测节点根据获得的心跳超时时长对被检测节点进行心跳检测。宕机检测节点可以是具有心跳检测机制的系统中的能够接收心跳消息的节点,被检测节点可以是具有心跳检测机制的系统中的能够发送心跳消息的节点,其中,具有心跳检测机制的系统可以是具有心跳检测机制的分布式系统、具有心跳检测机制的负载均衡系统或具有心跳检测机制的集群系统,也可以是可以收发心跳消息的由互相通信的服务器和客户端组成的系统。
在本发明实施例的实施场景中,可以由被检测节点每隔一定的时间间隔就向宕机检测节点发送心跳消息。从宕机检测节点收到来自被检测节点的一条心跳消息为开始时刻,如果宕机检测节点在心跳超时时长之内收到来自被检测节点的下一条心跳消息,则判定被检测节点处于正常工作状态,如果宕机检测节点未在心跳超时时长之内收到来自被检测节点的下一条心跳消息,则判定被检测节点宕机,其中被检测节点宕机可以被认为是被检测节点已经停止工作,也可以被认为是被检测节点工作效率明显低于正常工作效率,因为这种情况与被检测节点停止工作的情况可以认为是同一情况作相同处理。
在本发明实施例的实施场景中,也可以由宕机检测节点向被检测节点发送探测消息,被检测节点在没有宕机时会在接收探测消息后向宕机检测节点发送心跳消息。从宕机检测节点发送探测消息为开始时刻,如果宕机检测节点在心跳超时时长之内收到来自被检测节点的心跳消息,则判定被检测节点处于正常工作状态,如果宕机检测节点未在心跳超时时长之内收到来自被检测节点的心跳消息,则判定被检测节点宕机。
在本发明实施例的实施场景中,在判定被检测节点宕机后,宕机检测节点对被检测节点进行宕机恢复,宕机检测节202可以向被检测节点发送重启命令,宕机检测节202也可以将被检测节点的业务切换到其它执行业务的节点,宕机检测节202也可以将被检测节点的宕机结果上报管理设备或是报警设备等待恢复。
应注意,本领域的技术人员应当明白,虽然本发明可以应用于上述实施场景中,但是本发明的保护范围不受上述场景的限制。
如图3所述是本发明实施例提供的一种宕机检测方法的流程示意图。在具体的实现过程中,应用程序编程接口的调用方法可以由例如宕机检测节点来执行。该方法具体步骤如下:
步骤302,获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为所述宕机检测节点接收到所述被检测节点的相邻心跳消息的接收时刻的时间间隔。
可选的,具体来说,宕机检测节点可以通过接收到的被检测节点的相邻心跳消息的接收时刻的时间间隔作为历史心跳时间间隔,其中,心跳时间间隔为收到被检测节点的相邻心跳消息的接收时刻的时间间隔,被检测节点的历史心跳时间间隔可以是过去所有被检测节点的心跳消息中相邻的心跳消息的接收时刻间的时间间隔。被检测节点的历史心跳时间间隔也可以是最近一段时间范围内所有被检测节点的心跳消息中相邻的心跳消息的接收时刻间的时间间隔。
步骤304,获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值。所述误判为将所述被检测节点在所述被检测节点没有宕机时误判为宕机。其中,误判概率上限值表示将被检测节点误判为宕机的概率不能超出的上限值。
可选的,具体来说,作为宕机检测节点获得误判概率上限值的可能的实现方式,宕机检测节点可以接收被检测节点的误判概率上限值,宕机检测节点也可以计算被检测节点的误判概率上限值,宕机检测节点也可以提前计算被检测节点的误判概率上限值,以便宕机检测节点可以直接获得被检测节点的误判概率上限值。
其中,作为宕机检测节点计算被检测节点的误判概率上限值的可能的实现方式,宕机检测节点可以获得接收到所述被检测节点的心跳消息的次数的预测值。然后获得所述被检测节点的与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值。最后根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值。在具体实现过程中,宕机检测节点可以将所述被检测节点的误判概率上限值设置为所述将所述被检测节点误判为宕机的次数的上限值与所述预测值的比值。使用将所述被检测节点误判为宕机的次数的上限值与被检测节点的接收到所述被检测节点的心跳消息的次数的预测值的比值可以有效的量化误判概率上限值,使得通过获得的误判概率上限值获得的心跳超时时长对误判的限制更有针对性。其中,预测值对应的将所述被检测节点误判为宕机的次数的上限值为在接收预测值所对应的心跳消息的过程中因为其中的相邻心跳消息的接收时刻间的时间间隔大于心跳超时时长而被判定为宕机的次数的上限值,其中,预测值可以是一段有效期内的所述被检测节点的接收到所述被检测节点的心跳消息的次数的预测值,那么相应的,将所述被检测节点误判为宕机的次数的上限值也是一段有效期内将所述被检测节点误判为宕机的次数的上限值,其中,有效期可以是系统预设的时间范围,如果在有效期的时间范围内将所述被检测节点误判为宕机的次数超过了将所述被检测节点误判为宕机的次数的上限值,则判定有效期内的将所述被检测节点误判为宕机的次数过大从而导致宕机检测节点所在的具有心跳检测机制的系统未满足高可用性的要求。
可选的,在具体实现过程中,作为宕机检测节点获得将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值的可能的实现方式,宕机检测节点可以接收将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值,宕机检测节点也可以计算将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值,宕机检测节点也可以提前计算将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值,以便宕机检测节点可以直接获得将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值。
其中,作为宕机检测节点计算被检测节点的接收到所述被检测节点的心跳消息的次数的预测值的可能的实现方式,宕机检测节点可以获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期的时长。并根据所述有效期的时长与所述单次心跳时间间隔的比值获得所述预测值。以便可以基于当前有效期以及心跳时间间隔规律实时更新接收到所述被检测节点的心跳消息的次数的预测值。其中,单次心跳时间间隔可以作为预设值由宕机检测节点直接获得;宕机检测节点也可以将最近一次获得的心跳时间间隔作为单次心跳时间间隔,使得获得的接收到所述被检测节点的心跳消息的次数的预测值可以更好的反应当前的心跳时间间隔规律。宕机检测节点也可以将历史上获得的心跳时间间隔的均值作为单次心跳时间间隔,以便降低对单次心跳时间间隔估计的不稳定性。
其中,作为宕机检测节点计算将所述被检测节点误判为宕机的次数的上限值的可能的实现方式,宕机检测节点可以获得所述被检测节点的误判最大时长和所述被检测节点的单次中断时长,所述误判最大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和的上限,所述单次中断时长为所述被检测节点单次宕机造成的业务中断时长;将所述将所述被检测节点误判为宕机的次数的上限值设置为所述误判最大时长与所述单次中断时长的比值。以便可以基于当前误判最大时长实时更新将所述被检测节点误判为宕机的次数的上限值。其中,被检测节点的误判最大时长为在有效期的时间范围内允许的所有由误判造成的业务中断时长之和,如果在有效期的时间范围内所有由误判造成的业务中断时长之和超过了误判最大时长,则判定宕机检测节点所在的具有心跳检测机制的系统未满足高可用性的要求。宕机检测节点的误判最大时长可以存储在存储器由宕机检测节点直接获取,也可以由宕机检测节点计算获得。其中,单次中断时长可以是被检测节点单次宕机造成的业务中断时长,单次中断时长也可以是单次被检测节点202被误判为宕机造成的业务中断时长,这使得在被检测节点宕机与被检测节点被误判为宕机的业务中断时间不同时,增加单次中断时长的精确度。其中,单次中断时长可以作为预设值由宕机检测节点直接获得,宕机检测节点也可以将最近一次宕机造成的业务中断时长作为单次中断时长,使得获得的单次中断时长可以更好的反应当前的中断时长的规律。宕机检测节点也可以将历史上获得的宕机造成的业务中断时长的均值作为单次中断时长,以便降低对单次中断时长估计的不稳定性。
可选的,在具体的实现过程中,有效期的时间范围可以通过有效期的起始时刻和有效期的终止时刻来表示,其中,有效期的时间范围对应的时长以及有效期的起始时刻可以是不变的,也可以有效期的时间范围对应的时长保持不变但有效期的起始时刻与当前时刻同步,也可以有效期的终止时刻保持不变但有效期的起始时刻与当前时刻同步。
步骤306,根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长。
具体来说,宕机检测节点可以根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布,并根据所述误判概率上限值计算所述心跳超时时长。通过心跳时间间隔的概率分布可以更精确地确定误判概率上限值对应的心跳超时时长。在具体实现过程中,宕机检测节点可以根据如下数学方程计算所述心跳超时时长:
其中,Φ为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的概率分布的函数,x为所述心跳时间间隔。
可选的,具体来说,作为宕机检测节点计算心跳时间间隔的概率分布可能的实现方式,宕机检测节点可以计算被检测节点的心跳时间间隔的概率分布,宕机检测节点也可以提前计算被检测节点的心跳时间间隔的概率分布,以便宕机检测节点可以直接获得被检测节点的心跳时间间隔的概率分布。
其中,作为宕机检测节点使用被检测节点的历史心跳时间间隔计算被检测节点的心跳时间间隔的概率分布的可能的实现方式,宕机检测节点可以使用被检测节点的历史心跳时间间隔计算表示被检测节点的心跳时间间隔的概率分布的直方图;宕机检测节点也可以使用所述被检测节点的历史心跳时间间隔获得心跳时间间隔的概率分布的函数的系数的值,从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数,使用函数来表示心跳时间间隔的概率分布可以降低本发明在实现过程中的计算复杂度。在具体实现过程中,作为使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值的可能的实现方式,被检测节点的历史心跳时间间隔可以是被检测节点的最近n次心跳时间间隔的集合,f(x)的可以是:
其中,xj∈{x1,x2,……,xn}为f(x)的系数,hn∈(0,1],宕机检测节点可以设置{x1,x2,……,xn}的值分别为所述被检测节点的最近n次心跳时间间隔的值。
步骤308,如果在所述心跳超时时长内未收到来自所述被检测节点的心跳消息,判定所述被检测节点宕机。
作为补充的,本发明实施例的宕机检测方法还可以包括,在宕机检测节点判定被检测节点为宕机之后,宕机检测节点可以检测判定被检测节点宕机是否为误判,在判定被检测节点宕机为误判时,将将所述被检测节点误判为宕机的次数的上限值减1获得更新后的将所述被检测节点误判为宕机的次数的上限值;将更新后的将所述被检测节点误判为宕机的次数的上限值替换将所述被检测节点误判为宕机的次数的上限值,实现对将所述被检测节点误判为宕机的次数的上限值的实时更新。作为补充的,在更新后的将所述被检测节点误判为宕机的次数的上限值小于等于零时,可以将更新后的将所述被检测节点误判为宕机的次数的上限值置零。
作为补充的,本发明实施例的宕机检测方法还可以包括,在宕机检测节点判定被检测节点为宕机之后,可以执行被检测节点的宕机恢复策略,宕恢复机策略用于将被检测节点恢复为正常工作状态。宕机检测节点还可以检测判定被检测节点宕机是否为误判,在判定被检测节点宕机为误判时,进一步还可以获得由宕机恢复策略造成的业务中断时长,将误判最大时长减去由宕机恢复策略造成的业务中断时长获得更新后的误判最大时长;将更新后的误判最大时长替换误判最大时长,实现对误判最大时长的实时更新。作为补充的,在更新后的误判最大时长小于等于零时,可以将更新后的误判最大时长置零。
作为补充的,本发明实施例的宕机检测方法还可以包括,在有效期届满时,重置误判最大时长,重置有效期。在具体实现过程中,宕机检测节点可以通过获取预设的用于重置有效期的的数据来重置有效期使得宕机检测可以在非人为状况下持续进行,进一步的,还可以通过重置后的有效期和单次心跳时间间隔的比值重置接收到所述被检测节点的心跳消息的次数的预测值。例如,将有效期的时间范围重置为从重置时刻起一年内的时间范围。进一步的,还可以通过重置后的有效期和单次心跳时间间隔的比值重置接收到所述被检测节点的心跳消息的次数的预测值。在具体实现过程中,宕机检测节点可以将误判最大时长的值设置为重置后的有效期的终止时刻与重置后的有效期的起始时刻之间的时长、给定高可用率和误判率的乘积结果的值,误判率的值为统计获得的一段时间内的所有误判造成的业务中断时长之和在所有业务中断时长之和中所占的比例的值,给定高可用率为规定的有效期内的所有业务中断时长之所占有效期对应的时长的比例的值。进一步的,还可以通过重置后的误判最大时长与单次中断时长的比值重置将所述被检测节点误判为宕机的次数的上限值,该技术方案建立了预判概率阈值与系统的高可用要求的联系,更好的完成系统高可用的要求。
作为补充的,本发明实施例的宕机检测方法还可以包括,在计算被检测节点的心跳超时时长之前还包括:判断计时时长是否达到预设的探测心跳超时时长;在心跳超时时长已经达到探测心跳超时时长,并且未收到来自被检测节点的心跳消息时,才计算被检测节点的心跳超时时长,该技术方案使得不必每次宕机检测都计算心跳超时时长,降低了宕机检测节点的计算负担。
作为补充的,本发明实施例的宕机检测方法还可以包括,宕机检测节点在开始计时之后,将接收到所述被检测节点的心跳消息的次数的预测值减1获得更新后的接收到所述被检测节点的心跳消息的次数的预测值;将更新后的接收到所述被检测节点的心跳消息的次数的预测值替换接收到所述被检测节点的心跳消息的次数的预测值,该方案使得在有效期的起始时刻与当前时刻同步但有效期的终止时刻不变的情况下,通过接收到所述被检测节点的心跳消息的次数的预测值获得的误判概率上限值能更精确反映当前真实情况。作为补充的,在更新后的接收到所述被检测节点的心跳消息的次数的预测值小于等于零时,还可以将更新后的接收到所述被检测节点的心跳消息的次数的预测值置零。
有关本发明实施例与上文中相同内容的详细描述已经在上文进行了详细的描述,因此此处不再赘述。
根据本发明实施例提供的技术方案,根据本发明实施例提供的技术方案,由于本发明实施例根据误判概率上限值以及心跳时间间隔的概率分布来计算被检测节点的心跳超时时长,使得用计算出的的心跳超时时长对被检测节点进行心跳检测的误判概率不会超过误判概率上限,因此可以精确满足系统对误判概率的要求,从而保证系统的高可用性。
下面结合图3中提供的宕机检测方法对本发明实施例提供的宕机检测方法进行进一步的描述。
可选的,图4是本发明实施例提供的一种宕机检测方法的流程示意图。该方法步骤如下:
步骤401,接收来自被检测节点的心跳消息。
可选的,步骤402,获得被检测节点的历史心跳时间间隔,历史心跳时间间隔为所述宕机检测节点接收到所述被检测节点的相邻心跳消息的接收时刻的时间间隔,根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布。
可选的,具体来说,宕机检测节点可以通过接收到的被检测节点的相邻心跳消息的接收时刻的时间间隔作为历史心跳时间间隔,其中,被检测节点的历史心跳时间间隔可以是过去所有被检测节点的心跳消息中相邻的心跳消息的接收时刻间的时间间隔,使得获得的心跳时间间隔的概率分布可以反映被检测节点的心跳时间间隔的真实情况。被检测节点的历史心跳时间间隔也可以是最近一段时间范围内所有被检测节点的心跳消息中相邻的心跳消息的接收时刻间的时间间隔。这使得当网络状况随时间变化时,心跳时间间隔的概率分布可以更好的反映被检测节点当前的心跳时间间隔的真实情况。作为更新历史心跳时间间隔的可能的实现方式,将在心跳超时时长或是探测心跳超时时长内接收到来自被检测节点的心跳消息时的计时时长加入历史心跳时间间隔,还可以将历史心跳时间间隔不是最近一段时间范围内获得的计时时长从历史心跳时间间隔中删除。
其中,作为宕机检测节点使用被检测节点的历史心跳时间间隔计算被检测节点的心跳时间间隔的概率分布的可能的实现方式,宕机检测节点可以使用被检测节点的历史心跳时间间隔计算表示被检测节点的心跳时间间隔的概率分布的直方图;宕机检测节点也可以使用所述被检测节点的历史心跳时间间隔获得心跳时间间隔的概率分布的函数的系数的值,从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数,使用函数来表示心跳时间间隔的概率分布可以降低本发明在实现过程中的计算复杂度。在具体实现过程中,作为使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值的可能的实现方式,被检测节点的历史心跳时间间隔可以是被检测节点的最近n次心跳时间间隔的集合,f(x)的可以是:
其中,xj∈{x1,x2,……,xn}为f(x)的系数,hn∈(0,1],宕机检测节点可以设置{x1,x2,……,xn}的值分别为所述被检测节点的最近n次心跳时间间隔的值。
作为补充的,在没有历史心跳时间间隔时,或是历史心跳时间间隔中的心跳时间间隔数量小于预设的数量值时,可以使用预设的概率分布作为被检测节点的心跳时间间隔的概率分布,而不是通过历史心跳时间间隔计算心跳时间间隔的概率分布。
步骤403,判断在预设的探测心跳超时时长内是否收到来自被检测节点的下一次心跳消息时,在预设的探测心跳超时时长内未收到来自所述被检测节点的下一次心跳消息时,执行步骤404。该技术方案使得不必每次宕机检测都计算心跳超时时长,降低了宕机检测节点的计算负担。
作为补充的,本发明实施例的宕机检测方法还可以包括,在预设的探测心跳超时时长内收到来自所述被检测节点的下一次心跳消息时,则开始下一次的被检测节点的宕机检测。作为补充,也可以同时记录收到收到来自所述被检测节点的下一次心跳消息时的接收时刻与步骤401中收到来自被检测节点的心跳消息的接收时刻的时间间隔用于历史心跳时间间隔的更新。作为补充,还可以响应该下一次心跳消息。
步骤404,获得误判最大时长、单次中断时长以及接收到所述被检测节点的心跳消息的次数的预测值,根据误判最大时长、单次中断时长以及接收到所述被检测节点的心跳消息的次数的预测值获得所述被检测节点的误判概率上限值。
具体来说,宕机检测节点可以通过被检测节点的误判最大时长与被检测节点的单次中断时长的比值获得将所述被检测节点误判为宕机的次数的上限值。然后根据接收到所述被检测节点的心跳消息的次数的预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值。在具体实现过程中,宕机检测节点可以将所述被检测节点的误判概率上限值设置为所述将所述被检测节点误判为宕机的次数的上限值与预测值的比值。其中,误判最大时长、单次中断时长以及接收到所述被检测节点的心跳消息的次数的预测值对应同一有效期。
其中,作为宕机检测节点获得接收到所述被检测节点的心跳消息的次数的预测值的可能的实现方式,宕机检测节点可以接收被检测节点的接收到所述被检测节点的心跳消息的次数的预测值,宕机检测节点也可以计算被检测节点的接收到所述被检测节点的心跳消息的次数的预测值,宕机检测节点也可以提前计算被检测节点的接收到所述被检测节点的心跳消息的次数的预测值,在宕机检测节点获得被检测节点的接收到所述被检测节点的心跳消息的次数的预测值时可以直接获得。
其中,作为宕机检测节点计算被检测节点的接收到所述被检测节点的心跳消息的次数的预测值的可能的实现方式,宕机检测节点可以将被检测节点的接收到所述被检测节点的心跳消息的次数的预测值设置为有效期的时间范围对应的时长与被检测节点的单次心跳时间间隔的比值。以便可以基于当前有效期以及心跳时间间隔规律实时更新接收到所述被检测节点的心跳消息的次数的预测值。其中,单次心跳时间间隔可以作为预设值由宕机检测节点直接获得,宕机检测节点也可以将最近一次获得的心跳时间间隔作为单次心跳时间间隔,使得获得的接收到所述被检测节点的心跳消息的次数的预测值可以更好的反应当前的心跳时间间隔规律。宕机检测节点也可以将历史上获得的心跳时间间隔的均值作为单次心跳时间间隔,以便降低对单次心跳时间间隔估计的不稳定性。
其中,作为宕机检测节点获得被检测节点的单次中断时长的可能的实现方式,单次中断时长可以是被检测节点被检测节点202单次宕机造成的业务中断时长,作为另一种可能的实现方式,单次中断时长也可以是单次被检测节点202被误判为宕机造成的业务中断时长,这使得在被检测节点宕机与被检测节点被误判为宕机的业务中断时间不同时,增加单次中断时长的精确度。其中,单次中断时长可以作为预设值由宕机检测节点直接获得,宕机检测节点也可以将最近一次宕机造成的业务中断时长作为单次中断时长,使得获得的单次中断时长可以更好的反应当前的中断时长的规律。宕机检测节点也可以将历史上获得的宕机造成的业务中断时长的均值作为单次中断时长,以便降低对单次中断时长估计的不稳定性。其中,业务中断时长可以作为预设值由宕机检测节点直接获得,也可以是在判定被检测节点为宕机之前接收来自被检测节点心跳消息的时刻与判定被检测节点为宕机之后接收来自被检测节点心跳消息的时刻之间的时长,也可以是在被检测节点的系统日志中从故障报告的时刻到与宕机检测节点建立通信的时刻之间的时长。
可选的,在具体的实现过程中,有效期的时间范围可以通过有效期的起始时刻和有效期的终止时刻来表示,其中,有效期的时间范围对应的时长以及有效期的起始时刻可以是不变的,也可以有效期的时间范围对应的时长保持不变但有效期的起始时刻与当前时刻同步,也可以有效期的终止时刻保持不变但有效期的起始时刻与当前时刻同步。
步骤405,根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。通过心跳时间间隔的概率分布可以更精确地确定误判概率上限值对应的心跳超时时长。
可选的,具体来说,宕机检测节点可以使用误判概率上限值和被检测节点的心跳时间间隔的概率分布计算计算心跳超时时长。其中,被检测节点的心跳时间间隔为在收到来自被检测节点的心跳消息时获得的计时时长。
在具体实现过程中,宕机检测节点可以根据如下数学方程计算所述心跳超时时长:
其中,Φ为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的概率分布的函数,x为所述历史心跳时间间隔。
可选的,具体来说,作为宕机检测节点计算心跳时间间隔的概率分布可能的实现方式,宕机检测节点可以计算被检测节点的心跳时间间隔的概率分布,宕机检测节点也可以提前计算被检测节点的心跳时间间隔的概率分布,以便宕机检测节点可以直接获得被检测节点的心跳时间间隔的概率分布。
其中,作为宕机检测节点使用被检测节点的历史心跳时间间隔计算被检测节点的心跳时间间隔的概率分布的可能的实现方式,宕机检测节点可以使用被检测节点的历史心跳时间间隔计算表示被检测节点的心跳时间间隔的概率分布的直方图;宕机检测节点也可以使用所述被检测节点的历史心跳时间间隔获得心跳时间间隔的概率分布的函数的系数的值,从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数,使用函数来表示心跳时间间隔的概率分布可以降低本发明在实现过程中的计算复杂度。在具体实现过程中,作为使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值的可能的实现方式,被检测节点的历史心跳时间间隔可以是被检测节点的最近n次心跳时间间隔的集合,f(x)的可以是:
其中,xj∈{x1,x2,……,xn}为f(x)的系数,hn∈(0,1],宕机检测节点可以设置{x1,x2,……,xn}的值分别为所述被检测节点的最近n次心跳时间间隔的值。
作为补充的,本发明实施例的宕机检测方法还可以包括,如果获得的计时时长小于等于探测心跳超时时长,则判定被检测节点宕机。
步骤406,如果在所述心跳超时时长内未收到来自所述被检测节点的心跳消息,判定所述被检测节点宕机。
作为补充的,本发明实施例的宕机检测方法还可以包括,如果在所述心跳超时时长内收到来自所述被检测节点的下一次心跳消息,则可以开始下一次被检测节点的宕机检测,作为补充,作为补充,也可以同时记录收到收到来自所述被检测节点的下一次心跳消息时的接收时刻与步骤401中收到来自被检测节点的心跳消息的接收时刻的时间间隔用于历史心跳时间间隔的更新。作为补充,还可以响应该一下次心跳消息。
作为补充的,本发明实施例的宕机检测方法还可以包括,判定被检测节点宕机之后,宕机检测节点可以不将收到来自所述被检测节点的下一次心跳消息时的接收时刻与步骤401中收到来自被检测节点的心跳消息的接收时刻的时间间隔加入历史心跳时间间隔,以防止在判定被检测节点为宕机之后获得的心跳时间间隔影响了心跳时间间隔的概率分布的精确性。
步骤407,执行所述被检测节点的宕机恢复策略,所述宕恢复机策略用于将所述被检测节点恢复为正常工作状态。
具体来说,宕机检测节点执行被检测节点的宕机恢复策略可以是宕机检测节点向被检测检点发送重启命令,如果被检测节点在预设的规定时长内向宕机检测节点响应,则确定被检测节点恢复为正常工作状态,如果被检测节点没有在预设的规定时长内向宕机检测节点响应,则向管理设备或报警设备发送故障消息,等待被检测节点恢复正常工作状态。宕机检测节点执行被检测节点的宕机恢复策略也可以是将被检测节点的业务切换到其它节点,由其它节点来执行被检测节点的业务,在具体实现过程中,其它节点与被检测节点可以是双机热备的两台服务器,其它节点与被检测节点可也可以是多机热备的服务器中的两台。宕机检测节点执行被检测节点的宕机恢复策略也可以是直接向管理设备或报警设备发送故障消息,等待被检测节点恢复正常工作状态。
步骤408,检测所述判定所述被检测节点为宕机是否为所述误判,在所述判定所述被检测节点宕机为所述误判时,获得由误判导致所述宕机恢复策略的执行造成的业务中断时长,将所述误判最大时长减去所述宕机恢复策略造成的业务中断时长更新所述最大误判时长。
可选的,具体来说,作为宕机检测节点检测判定被检测节点为宕机是否为误判的可能的实现方式,宕机检测节点可以检测在待检测时段中,被检测节点的系统日志中是否有故障报告,如果被检测节点的系统日志在待检测时段中没有有故障报告,则确定判定被检测节点宕机为误判。待检测时段包括从判定被检测节点为宕机之前接收来自被检测节点心跳消息的时刻到判定被检测节点为宕机之后接收来自被检测节点心跳消息的时刻的时段。
可选的,具体来说,作为宕机检测节点检测判定被检测节点为宕机是否为误判的可能的实现方式,如果在判定为宕机之后,被检测节点的宕机恢复策略还未执行结束,宕机检测节点收到来自被检测节点的心跳消息,则确定判定被检测节点宕机为误判。
其中,业务中断时长可以作为预设值由宕机检测节点直接获得,也可以是在判定被检测节点为宕机之前接收来自被检测节点心跳消息的时刻与判定被检测节点为宕机之后接收来自被检测节点心跳消息的时刻之间的时长,也可以是在被检测节点的系统日志中从故障报告的时刻到与宕机检测节点建立通信的时刻之间的时长。
有关本发明实施例与上文中相同内容的详细描述已经在上文进行了详细的描述,因此此处不再赘述。
根据本发明实施例提供的技术方案,根据本发明实施例提供的技术方案,由于本发明实施例根据误判最大时长获得误判概率上限值,通过动态更新误判最大时长从而更新误判概率上限值,使得系统可以根据系统当前误判的状况合理改变心跳超时长,因此可以更加灵活地满足系统对误判概率的要求,从而保证系统的高可用性。
图5是依据本发明实施例的宕机检测节点的逻辑结构示意图。如图5所示,宕机检测节点包括间隔获得模块502、概率获得模块504、时长计算模块506和宕机判定模块508。
间隔获得模块502,用于获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为所述宕机检测节点接收到所述被检测节点的相邻心跳消息的接收时刻的时间间隔。
可选的,具体来说,间隔获得模块502可以用于通过接收到的被检测节点的相邻心跳消息的接收时刻的时间间隔作为历史心跳时间间隔获得历史心跳时间间隔,其中,心跳时间间隔为收到被检测节点的相邻心跳消息的接收时刻的时间间隔,间隔获得模块502可以用于将过去所有被检测节点的心跳消息中相邻的心跳消息的接收时刻间的时间间隔作为历史心跳时间间隔。使得获得的心跳时间间隔的概率分布可以反映被检测节点的心跳时间间隔的真实情况。间隔获得模块502也可以用于将最近一段时间范围内所有被检测节点的心跳消息中相邻的心跳消息的接收时刻间的时间间隔。这使得当网络状况随时间变化时,心跳时间间隔的概率分布可以更好的反映被检测节点当前的心跳时间间隔的真实情况。
概率获得模块504,用于获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值。
可选的,具体来说,作为概率获得模块504获得误判概率上限值的可能的实现方式,概率获得模块504可以接收被检测节点的误判概率上限值,概率获得模块504也可以计算被检测节点的误判概率上限值,概率获得模块504也可以提前计算被检测节点的误判概率上限值,以便概率获得模块504可以直接获得被检测节点的误判概率上限值。
其中,作为概率获得模块504计算被检测节点的误判概率上限值的可能的实现方式,概率获得模块504可以获得接收到所述被检测节点的心跳消息的次数的预测值。然后获得所述被检测节点的与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值;最后根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值。在具体实现过程中,被检测节点的误判概率上限值可以为将所述被检测节点误判为宕机的次数的上限值与接收到所述被检测节点的心跳消息的次数的预测值的比值,使用将所述被检测节点误判为宕机的次数的上限值与被检测节点的接收到所述被检测节点的心跳消息的次数的预测值的比值可以有效的量化误判概率上限值,使得通过获得的概率阈值获得的心跳超时时长对误判的限制更有针对性。其中,预测值对应的将所述被检测节点误判为宕机的次数的上限值为在接收预测值所对应的心跳消息的过程中因为其中的相邻心跳消息的接收时刻间的时间间隔大于心跳超时时长而被判定为宕机的次数的上限值,其中,预测值可以是一段有效期内的所述被检测节点的接收到所述被检测节点的心跳消息的次数的预测值,那么相应的,将所述被检测节点误判为宕机的次数的上限值也是一段有效期内将所述被检测节点误判为宕机的次数的上限值,其中,有效期可以是系统预设的时间范围,如果在有效期的时间范围内将所述被检测节点误判为宕机的次数超过了将所述被检测节点误判为宕机的次数的上限值,则判定有效期内的将所述被检测节点误判为宕机的次数过大从而导致宕机检测节点所在的具有心跳检测机制的系统未满足高可用性的要求。
可选的,在具体实现过程中,作为概率获得模块504获得将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值的可能的实现方式,概率获得模块504可以接收将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值,概率获得模块504也可以计算将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值,概率获得模块504也可以提前计算将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值,以便概率获得模块504可以直接获得将所述被检测节点误判为宕机的次数的上限值或接收到所述被检测节点的心跳消息的次数的预测值。
其中,作为概率获得模块504计算被检测节点的接收到所述被检测节点的心跳消息的次数的预测值的可能的实现方式,概率获得模块504可以获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期的时长。并根据所述有效期的时长与所述单次心跳时间间隔的比值获得所述预测值。以便可以基于当前有效期以及心跳时间间隔规律实时更新接收到所述被检测节点的心跳消息的次数的预测值。其中,单次心跳时间间隔可以作为预设值由概率获得模块504直接获得,概率获得模块504也可以将最近一次获得的心跳时间间隔作为单次心跳时间间隔,使得获得的接收到所述被检测节点的心跳消息的次数的预测值可以更好的反应当前的心跳时间间隔规律。概率获得模块504也可以将历史上获得的心跳时间间隔的均值作为单次心跳时间间隔,以便降低对单次心跳时间间隔估计的不稳定性。
其中,作为概率获得模块504计算将所述被检测节点误判为宕机的次数的上限值的可能的实现方式,概率获得模块504可以可以获得所述被检测节点的误判最大时长和所述被检测节点的单次中断时长,所述误判最大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和的上限,所述单次中断时长为所述被检测节点单次宕机造成的业务中断时长;将所述将所述被检测节点误判为宕机的次数的上限值设置为所述误判最大时长与所述单次中断时长的比值。以便可以基于当前误判最大时长实时更新接收到所述被检测节点的心跳消息的次数的预测值。其中,被检测节点的误判最大时长为在有效期的时间范围内允许的所有由误判造成的业务中断时长之和,如果在有效期的时间范围内所有由误判造成的业务中断时长之和超过了误判最大时长,则判定概率获得模块504所在的具有心跳检测机制的系统未满足高可用性的要求。概率获得模块504的误判最大时长可以存储在存储器由概率获得模块504直接获取,也可以由概率获得模块504计算获得。单次中断时长可以是被检测节点单次宕机造成的业务中断时长,单次中断时长也可以是被检测节点单次被误为当宕机判造成的业务中断时长,这使得在被检测节点宕机与被检测节点被误判为宕机的业务中断时间不同时,增加单次中断时长的准确度。其中,单次中断时长可以作为预设值由概率获得模块504直接获得,概率获得模块504也可以将最近一次宕机造成的业务中断时长作为单次中断时长,使得获得的单次中断时长可以更好的反应当前的中断时长的规律。概率获得模块504也可以将历史上获得的宕机造成的业务中断时长的均值作为单次中断时长,以便降低对单次中断时长估计的不稳定性。
可选的,在具体的实现过程中,宕机有效期的时间范围可以通过有效期的起始时刻和有效期的终止时刻来表示,有效期的时间范围对应的时长以及有效期的起始时刻可以是不变的,宕机检测节点还可以包括有效期更新模块。有效期更新模块可以用于将有效期的起始时刻与当前时刻同步,并将有效期的终止时刻与起始时刻以相同的时间增长速率增长,也可以用于将有效期的起始时刻与当前时刻同步。
时长计算模块506,用于根据所述概率获得模块504获得的所述误判概率上限值和所述间隔获得模块502获得的历史心跳时间间隔计算所述被检测节点的心跳超时时长。
具体来说,时长计算模块506可以具体用于根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布。根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。通过心跳时间间隔的概率分布可以更精确地确定误判概率上限值对应的心跳超时时长。其中,被检测节点的心跳时间间隔为在收到来自被检测节点的相邻心跳消息的接收时刻的时间间隔。在具体实现过程中,时长计算模块506可以根据如下数学方程计算所述心跳超时时长:
其中,Φ为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的概率分布的函数,x为心跳时间间隔。
可选的,具体来说,作为时长计算模块506计算心跳时间间隔的概率分布可能的实现方式,时长计算模块506可以计算被检测节点的心跳时间间隔的概率分布,时长计算模块506也可以提前计算被检测节点的心跳时间间隔的概率分布,以便时长计算模块506可以直接获得被检测节点的心跳时间间隔的概率分布。
其中,作为时长计算模块506使用被检测节点的历史心跳时间间隔计算被检测节点的心跳时间间隔的概率分布的可能的实现方式,时长计算模块506可以使用被检测节点的历史心跳时间间隔计算表示被检测节点的心跳时间间隔的概率分布的直方图;时长计算模块506也可以使用所述被检测节点的历史心跳时间间隔获得心跳时间间隔的概率分布的函数的系数的值,从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数,使用函数来表示心跳时间间隔的概率分布可以降低本发明在实现过程中的计算复杂度。在具体实现过程中,作为时长计算模块506使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值的可能的实现方式,被检测节点的历史心跳时间间隔可以是被检测节点的最近n次心跳时间间隔的集合,f(x)的可以是:
其中,xj∈{x1,x2,……,xn}为f(x)的系数,hn∈(0,1],时长计算模块506可以用于设置{x1,x2,……,xn}的值分别为所述被检测节点的最近n次心跳时间间隔的值。
宕机判定模块508,用于在所述时长计算模块506获得心跳超时时长内未收到来自所述被检测节点的心跳消息时,判定所述被检测节点宕机。
作为补充的,宕机检测节点还可以包括时长计算触发模块。时长计算触发模块用于在预设的探测心跳超时时长内未收到来自所述被检测节点的心跳消息时,通知所述时长计算模块506根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。使得不必每次宕机检测都计算心跳超时时长,降低了宕机检测节点的计算负担。
作为补充的,宕机检测节点还可以包括第一更新模块,用于接收来自宕机判定模块508的对被检测节点的判定结果,如果宕机判定模块508判定被检测节点为宕机,则第一更新模块检测宕机判定模块508判定被检测节点为宕机的判定是否为误判,在宕机判定模块508判定被检测节点为宕机的判定为误判时,将所述被检测节点误判为宕机的次数的上限值减1更新将所述被检测节点误判为宕机的次数的上限值,实现对将所述被检测节点误判为宕机的次数的上限值的实时更新。
作为补充的,宕机检测节点还可以包括宕机恢复模块和第二更新模块,宕机恢复模块用于接收来自宕机判定模块508的对被检测节点的判定结果,在宕机判定模块508判定被检测节点为宕机时,执行被检测节点的宕机恢复策略,宕恢复机策略用于将被检测节点恢复为正常工作状态。第二更新模块,用于接收来自宕机判定模块508的对被检测节点的判定结果,在宕机判定模块508判定被检测节点为宕机时,检测宕机判定模块508判定被检测节点为宕机的判定是否为误判,在宕机判定模块508判定被检测节点为宕机的判定为误判时,获得由宕机恢复模块的宕机恢复策略造成的业务中断时间,将误判最大时长减去宕机恢复策略造成的业务中断时间更新误判最大时长,实现对误判最大时长的实时更新。在具体实现过程中,宕机恢复模块执行被检测节点的宕机恢复策略可以是宕机恢复模块向被检测检点发送重启命令,如果被检测节点在预设的规定时长内向宕机检测节点响应,则确定被检测节点恢复为正常工作状态,如果被检测节点没有在预设的规定时长内向宕机检测节点响应,则向管理设备或报警设备发送故障消息,等待被检测节点恢复正常工作状态。宕机恢复模块执行被检测节点的宕机恢复策略也可以是将被检测节点的业务切换到其它节点,由其它节点来执行被检测节点的业务,在具体实现过程中,其它节点与被检测节点可以是双机热备的两台服务器,其它节点与被检测节点可也可以是多机热备的服务器中的两台。宕机恢复模块执行被检测节点的宕机恢复策略也可以是直接向管理设备或报警设备发送故障消息,等待被检测节点恢复正常工作状态。
作为补充的,宕机检测节点还可以包括重置模块,用于在有效期届满时,重置误判最大时长,重置有效期。在具体实现过程中,重置模块可以通过获取预设的用于重置有效期的的数据来重置有效期,例如,将有效期的时间范围重置为从重置时刻起一年内的时间范围。在具体实现过程中,作为重置模块重置误判最大时长可能的实现方式,重置模块将误判最大时长的值设置为重置后的有效期的终止时刻与重置后的有效期的起始时刻之间的时长、给定高可用率和误判率的乘积结果的值,误判率的值为统计获得的一段时间内的所有误判造成的业务中断时长之和在所有业务中断时长之和中所占的比例的值,给定高可用率为规定的有效期内的所有业务中断时长之所占有效期对应的时长的比例的值,从而建立了误判概率上限值与系统的高可用要求的联系,更好的完成系统高可用的要求。
作为补充的,宕机检测节点500还包括历史间隔更新模块,历史间隔更新模块用于在心跳超时时长内接收到来自被检测节点的心跳消息时,将当前接收的心跳消息的接收时刻与上一次接收心跳消息的接收时刻将的时间间隔加入历史心跳时间间隔。历史间隔更新模块还用于将对应的接收时刻不在最近一段预设时间范围内的心跳时间间隔从历史心跳时间间隔中删除。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
根据本发明实施例提供的技术方案,根据本发明实施例提供的技术方案,由于宕机检测节点500根据误判概率上限值以及心跳时间间隔的概率分布来计算被检测节点的心跳超时时长,使得用计算出的的心跳超时时长对被检测节点进行心跳检测的误判概率不会超过误判概率上限,因此可以精确满足系统对误判概率的要求,从而保证系统的高可用性。
图6是依据本发明一实施例的计算机设备600的硬件结构示意图。如图6所示,计算机设备600包括处理器602、存储器604、输入/输出接口606、通信接口608和总线610。其中,处理器602、存储器604、输入/输出接口606和通信接口608通过总线610实现彼此之间的通信连接。
处理器602可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器604可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器604可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器604中,并由处理器602来执行。
输入/输出接口606用于接收输入的数据和信息,输出操作结果等数据。
通信接口608使用例如但不限于收发器一类的收发装置,来实现计算机设备600与其他设备或通信网络之间的通信。
总线610可包括一通路,在计算机设备600各个部件(例如处理器602、存储器604、输入/输出接口606和通信接口608)之间传送信息。
应注意,尽管图6所示的计算机设备600仅仅示出了处理器602、存储器604、输入/输出接口606、通信接口608以及总线610,但是在具体实现过程中,本领域的技术人员应当明白,计算机设备600还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,计算机设备600还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,计算机设备600也可仅仅包含实现本发明实施例所必须的器件,而不必包含图6中所示的全部器件。
图6所示的设备以及上述描述可以是宕机检测节点,用于执行执行本发明实施例中的方法。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (24)
1.一种宕机检测方法,由宕机检测节点执行,其特征在于,所述方法包括:
获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为接收到的所述被检测节点的相邻心跳消息的接收时刻的时间间隔;
获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值;
根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长;
如果在所述心跳超时时长内未收到来自所述被检测节点的心跳消息,判定所述被检测节点宕机;
所述获得所述被检测节点的误判概率上限值包括:
获得接收到所述被检测节点的心跳消息的次数的预测值;
获得与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值;
根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值。
2.根据权利要求1所述的宕机检测方法,其特征在于,所述根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值包括:
将所述被检测节点的误判概率上限值设置为所述将所述被检测节点误判为宕机的次数的上限值与所述预测值的比值。
3.根据权利要求1或2所述的宕机检测方法,其特征在于,所述预测值为一段有效期内接收到所述被检测节点的心跳消息的次数的预测值,所述获得接收到所述被检测节点的心跳消息的次数的预测值包括:
获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期的时长;
根据所述有效期的时长与所述单次心跳时间间隔的比值获得所述预测值。
4.根据权利要求3所述的宕机检测方法,其特征在于,所述获得与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值包括:
获得所述被检测节点的误判最大时长和所述被检测节点的单次中断时长,所述误判最大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和的上限,所述单次中断时长为所述被检测节点单次宕机造成的业务中断时长;
将所述将所述被检测节点误判为宕机的次数的上限值设置为所述误判最大时长与所述单次中断时长的比值。
5.根据权利要求1或2或4所述的宕机检测方法,其特征在于,所述根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长包括:
根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布,所述心跳时间间隔为来自所述被检测节点的相邻心跳消息的接收时刻的时间间隔;
根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
6.根据权利要求5所述的宕机检测方法,其特征在于,所述根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长包括:
根据如下数学方程计算所述心跳超时时长:
其中,Φ为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的概率分布的函数,x为所述心跳时间间隔。
7.根据权利要求6所述的宕机检测方法,其特征在于,所述根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布包括:
使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值,从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数。
8.根据权利要求7所述的宕机检测方法,其特征在于,所述被检测节点的历史心跳时间间隔为所述被检测节点的最近n次心跳时间间隔的集合,
其中,xj∈{x1,x2,……,xn}为f(x)的系数,hn∈(0,1];
所述使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值包括:
设置{x1,x2,……,xn}的值分别为所述被检测节点的最近n次心跳时间间隔的值。
9.根据权利要求6至8任一所述的宕机检测方法,其特征在于,在所述判定所述被检测节点宕机之后,所述方法还包括:
执行所述被检测节点的宕机恢复策略,所述宕机恢复策略用于将所述被检测节点恢复为正常工作状态;
在所述被检测节点被误判为宕机时,获得由所述宕机恢复策略造成的业务中断时长,根据误判最大时长以及所述宕机恢复策略造成的业务中断时长更新所述误判最大时长。
10.根据权利要求6至8任一所述的宕机检测方法,其特征在于,当所述预测值的有效期届满时,所述方法还包括:
重置所述预测值的有效期;
根据重置后的有效期重置误判最大时长。
11.根据权利要求10所述的宕机检测方法,其特征在于,所述根据所述重置后的有效期重置所述误判最大时长包括:
将所述误判最大时长的值设置为所述重置后的有效期的时长、预设的高可用率和误判率的乘积,所述误判率的值为统计获得的一段时间内的所有误判造成的业务中断时长之和在所有业务中断时长之和中所占的比例,所述预设的高可用率为预设的一段时间内的所有业务中断时长之和占所述一段时间的时长的比例。
12.根据权利要求6至8任一所述的宕机检测方法,其特征在于,在所述根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长之前还包括:
在预设的探测心跳超时时长内未收到来自所述被检测节点的心跳消息时,才根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
13.一种宕机检测节点,其特征在于,所述宕机检测节点包括:
间隔获得模块,用于获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为接收到所述被检测节点的相邻心跳消息的接收时刻的时间间隔;
概率获得模块,用于获得接收到所述被检测节点的心跳消息的次数的预测值;获得与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值;根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值;
时长计算模块,用于根据所述概率获得模块获得的所述误判概率上限值和所述间隔获得模块获得的历史心跳时间间隔计算所述被检测节点的心跳超时时长;
宕机判定模块,用于在所述时长计算模块获得心跳超时时长内未收到来自所述被检测节点的心跳消息时,判定所述被检测节点宕机。
14.根据权利要求13所述的宕机检测节点,其特征在于,所述概率获得模块根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值包括:
所述概率获得模块将所述被检测节点的误判概率上限值设置为所述将所述被检测节点误判为宕机的次数的上限值与所述预测值的比值。
15.根据权利要求13或14所述的宕机检测节点,其特征在于,所述预测值为一段有效期内接收到所述被检测节点的心跳消息的次数的预测值,所述概率获得模块获得接收到所述被检测节点的心跳消息的次数的预测值包括:
所述概率获得模块获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期的时长;
所述概率获得模块根据所述有效期的时长与所述单次心跳时间间隔的比值获得所述预测值。
16.根据权利要求15所述的宕机检测节点,其特征在于,所述概率获得模块获得与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值包括:
所述概率获得模块获得所述被检测节点的误判最大时长和所述被检测节点的单次中断时长,所述误判最大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和的上限,所述单次中断时长为所述被检测节点单次宕机造成的业务中断时长;
根据所述误判最大时长与所述单次中断时长的比值获得所述将所述被检测节点误判为宕机的次数的上限值。
17.根据权利要求13或14或16所述的宕机检测节点,其特征在于,所述时长计算模块具体用于:
根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布,所述心跳时间间隔为来自所述被检测节点的相邻心跳消息的接收时刻的时间间隔;
根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
18.根据权利要求17所述的宕机检测节点,其特征在于,所述时长计算模块根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长包括:
所述时长计算模块根据如下数学方程计算所述心跳超时时长:
其中,Φ为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的概率分布的函数,x为所述心跳时间间隔。
19.根据权利要求18所述的宕机检测节点,其特征在于,所述时长计算模块根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布包括:
所述时长计算模块使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值,从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数。
20.根据权利要求19所述的宕机检测节点,其特征在于,所述被检测节点的历史心跳时间间隔为所述被检测节点的最近n次心跳时间间隔的集合,
其中,xj∈{x1,x2,……,xn}为f(x)的系数,hn∈(0,1];
所述时长计算模块使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值包括:
所述时长计算模块确定{x1,x2,……,xn}的值分别为所述被检测节点的最近n次心跳时间间隔的值。
21.根据权利要求18至20任一所述的宕机检测节点,其特征在于,所述宕机检测节点还包括:
宕机恢复模块,在所述被检测节点被所述宕机判定模块判定为宕机时,执行所述被检测节点的宕机恢复策略,所述宕机恢复策略用于将所述被检测节点恢复为正常工作状态;
第二更新模块,在所述被检测节点被所述宕机判定模块判定为宕机时,检测所述被检测节点是否被误判为宕机,在所述被检测节点被误判为宕机时,根据误判最大时长以及所述宕机恢复模块执行所述宕机恢复策略造成的业务中断时长更新所述误判最大时长。
22.根据权利要求18至20任一所述的宕机检测节点,其特征在于,所述宕机检测节点还包括:
重置模块,用于在所述预测值的有效期届满时重置所述预测值的有效期,并根据重置后的有效期重置误判最大时长。
23.根据权利要求22所述的宕机检测节点,其特征在于,所述重置模块根据重置后的有效期重置所述误判最大时长包括:
所述重置模块将所述误判最大时长的值设置为所述重置后的有效期的时长、预设的高可用率和误判率的乘积,所述误判率的值为统计获得的一段时间内的所有误判造成的业务中断时长之和在所有业务中断时长之和中所占的比例,所述预设的高可用率为预设的一段时间内的所有业务中断时长之和占所述一段时间的时长的比例。
24.根据权利要求18至20任一所述的宕机检测节点,其特征在于,所述宕机检测节点还包括:
时长计算触发模块,用于在预设的探测心跳超时时长内未收到来自所述被检测节点的心跳消息时,通知所述时长计算模块根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510003754.7A CN104506392B (zh) | 2015-01-04 | 2015-01-04 | 一种宕机检测方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510003754.7A CN104506392B (zh) | 2015-01-04 | 2015-01-04 | 一种宕机检测方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104506392A CN104506392A (zh) | 2015-04-08 |
CN104506392B true CN104506392B (zh) | 2018-10-30 |
Family
ID=52948107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510003754.7A Active CN104506392B (zh) | 2015-01-04 | 2015-01-04 | 一种宕机检测方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104506392B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117294B (zh) * | 2018-07-16 | 2022-04-19 | 上交所技术有限责任公司 | 适用于证券交易系统的故障检测方法及装置 |
CN109144700B (zh) * | 2018-09-03 | 2022-09-23 | 创新先进技术有限公司 | 超时时长的确定方法、装置、服务器和数据处理方法 |
CN109324834A (zh) * | 2018-09-19 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种分布式存储服务器自动重启的系统及方法 |
CN109218137B (zh) * | 2018-10-18 | 2021-04-30 | 郑州云海信息技术有限公司 | 一种分布式系统中的节点的状态检测方法和装置 |
CN111225224A (zh) * | 2018-11-27 | 2020-06-02 | 玲珑视界科技(北京)有限公司 | 一种网格节点状态的监控系统及方法 |
CN110336715B (zh) * | 2019-07-12 | 2021-09-21 | 广州虎牙科技有限公司 | 状态检测方法、主节点和集群管理系统 |
CN110677493B (zh) * | 2019-10-11 | 2022-04-01 | 深圳市网心科技有限公司 | 服务状态确定方法及装置、计算机装置及存储介质 |
CN112134645B (zh) * | 2020-08-04 | 2024-03-29 | 国电南瑞科技股份有限公司 | 一种分布式终端通信质量监控方法、存储介质和计算设备 |
CN112954413B (zh) * | 2021-02-02 | 2024-01-16 | 深圳市欢太科技有限公司 | 一种直播列表更新方法、装置、服务器及存储介质 |
CN118409908A (zh) * | 2023-01-29 | 2024-07-30 | 北京有竹居网络技术有限公司 | 协处理器、主处理器、宕机检测方法和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1661968A (zh) * | 2004-02-27 | 2005-08-31 | 联想(北京)有限公司 | 基于网络和主机负载的变速心跳机制的实现方法 |
CN104144159A (zh) * | 2014-06-26 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 智能心跳保活方法及智能心跳保活系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060100981A1 (en) * | 2004-11-04 | 2006-05-11 | International Business Machines Corporation | Apparatus and method for quorum-based power-down of unresponsive servers in a computer cluster |
-
2015
- 2015-01-04 CN CN201510003754.7A patent/CN104506392B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1661968A (zh) * | 2004-02-27 | 2005-08-31 | 联想(北京)有限公司 | 基于网络和主机负载的变速心跳机制的实现方法 |
CN104144159A (zh) * | 2014-06-26 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 智能心跳保活方法及智能心跳保活系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104506392A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104506392B (zh) | 一种宕机检测方法及设备 | |
US10491671B2 (en) | Method and apparatus for switching between servers in server cluster | |
US20210006484A1 (en) | Fault detection method, apparatus, and system | |
CN106330475B (zh) | 一种通信系统中管理主备节点的方法和装置及高可用集群 | |
TW201944236A (zh) | 任務處理方法、裝置及系統 | |
EP3340535A1 (en) | Failure recovery method and device | |
CN109274544B (zh) | 一种分布式存储系统的故障检测方法及装置 | |
CN106533805B (zh) | 一种微服务请求处理方法、微服务控制器及微服务架构 | |
US10972336B2 (en) | Technique for resolving a link failure | |
CN108737574B (zh) | 一种节点离线判断方法、装置、设备及可读存储介质 | |
CN106341270B (zh) | 一种故障处理方法及装置 | |
CN112769652B (zh) | 一种节点服务监控方法、装置、设备及介质 | |
CN110336715B (zh) | 状态检测方法、主节点和集群管理系统 | |
CN109245926B (zh) | 智能网卡、智能网卡系统及控制方法 | |
CN110933142A (zh) | 一种icfs集群网卡监控方法、装置和设备及介质 | |
CN106487612A (zh) | 一种服务器节点监控方法、监控服务器及系统 | |
CN105450469A (zh) | 一种工业设备中快速通信总线故障检测方法 | |
CN114168071B (zh) | 一种分布式集群扩容方法、分布式集群扩容装置及介质 | |
US20210067824A1 (en) | Video stream check method and system, computer device and storage medium | |
CN103731315A (zh) | 一种服务器故障检测方法 | |
CN105490837A (zh) | 一种网络监控处理方法以及装置 | |
CN110661599B (zh) | 一种主、备节点间的ha实现方法、装置及存储介质 | |
CN108512698B (zh) | 一种网络容灾方法、装置及电子设备 | |
CN112822283B (zh) | 边缘节点的控制方法、装置、控制节点及存储介质 | |
CN107800754B (zh) | 数据传输任务处理、数据传输任务监控方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |