CN102984029A - 应用于分布式系统的心跳检测装置和方法、网络设备 - Google Patents
应用于分布式系统的心跳检测装置和方法、网络设备 Download PDFInfo
- Publication number
- CN102984029A CN102984029A CN2012105073052A CN201210507305A CN102984029A CN 102984029 A CN102984029 A CN 102984029A CN 2012105073052 A CN2012105073052 A CN 2012105073052A CN 201210507305 A CN201210507305 A CN 201210507305A CN 102984029 A CN102984029 A CN 102984029A
- Authority
- CN
- China
- Prior art keywords
- timing
- iron core
- hardware
- soft iron
- software
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种应用于分布式系统的心跳检测装置和方法、网络设备,该方法通过子设备监测子设备上应用模块是否正常地占用CPU的处理资源,并在监测到应用模块正常地百分之百占用对CPU的处理资源,且软件心跳周期无法计时的情况下,子设备向主设备发送软件心跳报文,能够在CPU的处理资源被正常地百分之百占用,软件心跳周期无法计时的情况下,仍然向主设备发送软件心跳报文,从而能够减少主设备对子设备的误判、提高心跳检测的正确率和可靠性,能够解决现有技术中心跳检测存在误判、正确率低、可靠性低的问题。
Description
技术领域
本发明涉及网络通信技术,具体地,涉及一种应用于分布式系统的心跳检测装置和方法、网络设备。
背景技术
分布式系统是一种通信网络互联的多设备体系结构,各个设备通过协调交互来执行任务。分布式系统中包括多个设备,这多个设备中包括一个主设备,其它设备为子设备。
主设备和子设备之间通过心跳检测来监测子设备的生存状态。图1示出了心跳检测的原理示意,如图1所示,子设备2启动定时器(Timer),在定时器的定时周期到来时向主设备1发送心跳信息。主设备1接收到来自子设备2的心跳报文后更新对子设备2的心跳计数(counter),如果在规定的时间内,主设备1未接收到子设备2的心跳信息,认为子设备2故障,执行相应的故障处理。
心跳检测分为软件心跳检测和硬件心跳检测。软件心跳检测是通过软件触发定时器来发送心跳报文,硬件心跳是通过硬件触发来发送心跳报文。
硬件心跳检测通常采用硬件定时器对硬件心跳周期进行定时,在该定时器计时到时后,子设备向主设备发送硬件心跳报文,主设备在超过3个硬件心跳周期未接收到硬件心跳报文,认为子设备存在重启故障。其中,硬件定时器是低级中断定时器,不会因为中央处理器(CPU,Central Process Unit)繁忙而得不到调度,因而主设备通过硬件心跳报文只能检测出子设备的重启故障,无法检测出子设备的其它故障。
软件心跳检测能够弥补硬件心跳检测的空白。软件心跳由CPU触发,通常采用软件定时器对软件心跳周期进行定时,在该定时器计时到时后,子设备的CPU向主设备发送软件心跳报文,主设备在超过3个软件心跳周期未接收到硬件心跳报文,认为子设备过于繁忙,工作不正常,例如,子设备的程序陷入死循环,该陷入死循环的程序百分之百地占用了子设备的CPU的处理资源,这种情况下主设备判断子设备发生故障。
但是,在特定的条件下,子设备中的某些应用模块在做大量运算时,也可能会百分之百地占用CPU的处理资源,并且所表现出来的现象也是CPU的处理资源被百分之百占用,在这种情况下,CPU处于正常状态,子设备也没有发生故障,但是CPU不能触发软件心跳,子设备也不能向主设备发出软件心跳报文,主设备会对这种情况产生误判,认为子设备存在故障。
可见,现有的分布式系统的软件心跳检测中,对于子设备处于正常的CPU处理资源被百分之百占用的情况,存在主设备误判子设备存在故障的问题。
综上,在现有的分布式系统的心跳检测技术中,存在心跳检测存在误判、正确率低、可靠性低的问题。
发明内容
有鉴于此,本发明实施例提供了一种应用于分布式系统的心跳检测装置和方法、网络设备,用以解决现有的分布式系统的心跳检测技术中,所存在的心跳检测存在误判、正确率低、可靠性低的问题。
本发明实施例技术方案如下:
一种应用于分布式系统的心跳检测装置,包括:软件定时器,用于对预定的软件心跳周期进行计时;第一软件心跳触发器,用于在软件定时器计时到时后,向主设备发送软件心跳报文;监测模块,用于监测应用模块是否正常地占用中央处理器CPU的处理资源;第二软件心跳触发器,用于在监测模块监测到应用模块正常地百分之百占用CPU的处理资源、软件定时器无法计时软件心跳周期的情况下,向主设备发送软件心跳报文。
一种网络设备,包括如上所述的应用于分布式系统的心跳检测装置。
一种应用于分布式系统的心跳检测方法,包括:子设备在计时预定的软件心跳周期到时后,向主设备发送软件心跳报文;子设备监测自身上的应用模块是否正常地占用中央处理器CPU的处理资源;在监测到应用模块正常地百分之百占用CPU的处理资源、无法计时软件心跳周期的情况下,子设备向主设备发送软件心跳报文。
根据本发明实施例的技术方案,通过子设备监测子设备上应用模块是否正常地占用CPU的处理资源,并在监测到应用模块正常地百分之百占用对CPU的处理资源,且软件心跳周期无法计时的情况下,子设备向主设备发送软件心跳报文,能够在CPU的处理资源被正常地百分之百占用,软件心跳周期无法计时的情况下,仍然向主设备发送软件心跳报文,从而能够减少主设备对子设备的误判、提高心跳检测的正确率和可靠性,能够解决现有技术中心跳检测存在误判、正确率低、可靠性低的问题。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为现有技术中分布式系统中心跳检测的原理示意图;
图2为本发明实施例提供的应用于分布式系统的心跳检测装置的结构框图;
图3为本发明实施例提供的应用于分布式系统的心跳检测方法的工作流程图;
图4为图2所示装置的优选实施结构框图;
图5为本发明实施例提供的应用于分布式系统的心跳检测方法的优选工作流程图;
图6为本发明实施例提供的分布式系统的心跳检测装置具体应用的场景示意图;
图7为图6所示的分布式系统的心跳检测装置中的软件心跳辅助装置的结构框图。
具体实施方式
以下结合附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
针对现有的分布式系统的心跳检测技术中,存在心跳检测存在误判、正确率低、可靠性低的问题,本发明实施例提出了一种应用于分布式系统的心跳检测方案,以解决该问题。在本发明实施例的技术方案中,子设备监测子设备上应用模块是否正常地占用CPU的处理资源,并在监测到应用模块正常地百分之百占用CPU的处理资源,且软件心跳周期无法计时的情况下,子设备向主设备发送软件心跳报文,能够在CPU的处理资源被正常地百分之百占用,软件心跳周期无法计时的情况下,仍然向主设备发送软件心跳报文,从而能够减少主设备对子设备的误判、提高心跳检测的正确率和可靠性,能够解决现有技术中心跳检测存在误判、正确率低、可靠性低的问题。
下面对本发明实施例的技术方案进行详细说明。
图2示出了本发明实施例提供的应用于分布式系统的心跳检测装置的结构框图,该装置位于分布式系统的子设备上,如图2所示,该装置包括:
软件定时器201,用于对预定的软件心跳周期进行计时;
第一软件心跳触发器202,连接至软件定时器201,用于在软件定时器201计时到时后,向主设备发送软件心跳报文;
监测模块203,用于检测应用模块是否正常地占用CPU的处理资源;
第二软件心跳触发器204,连接至监测模块203和软件定时器201,用于在监测模块203监测到应用模块正常地百分之百占用CPU的处理资源、软件定时器201无法计时的情况下,向主设备发送软件心跳报文。
图2所示装置的工作原理如图3所示,也即图3示出了本发明实施例提供的应用于分布式系统的心跳检测方法的工作流程,如图3所示,该工作原理包括如下处理过程:
步骤301、子设备的软件定时器201对预定的软件心跳周期进行计时,在软件定时器201计时软件心跳周期到时后,子设备的第一软件心跳触发器202向主设备发送软件心跳报文;子设备的监测模块203监测子设备上的应用模块是否正常地占用CPU的处理资源;
步骤302、子设备的第二软件心跳触发器204在监测模块203监测到应用模块正常地百分之百占用CPU的处理资源、软件定时器无法计时软件心跳周期的情况下,子设备向主设备发送软件心跳报文。也即,在应用模块正常地百分之百占用CPU的处理资源时,软件定时器就无法得到CPU的调用、软件定时器也就无法计时软件心跳周期,则子设备无法向主设备发送软件心跳报文,子设备一旦监测到这种情况下,就向主设备发送软件心跳报文。
根据上述的处理过程,子设备对其上的应用模块是否正常地占用CPU的处理资源,并在监测到应用模块正常地百分之百占用CPU的处理资源,且软件心跳周期无法计时的情况下,子设备向主设备发送软件心跳报文,能够在CPU的处理资源被正常地百分之百占用,软件心跳周期无法计时的情况下,仍然向主设备发送软件心跳报文,从而能够减少主设备对子设备的误判、提高心跳检测的正确率和可靠性,能够解决现有技术中心跳检测存在误判、正确率低、可靠性低的问题。
图4示出了图2所示装置的优选实施结构框图,如图4所示,该装置在图2所示装置的基础上,还包括:硬件定时器205和硬件心跳触发器206。
硬件定时器205,用于对预定的硬件心跳周期进行计时;
硬件心跳触发器206,用于在硬件定时器205计时到时后,向主设备发送硬件心跳报文;硬件心跳周期的长度通常短于软件心跳周期的长度;
则,监测模块203还连接至硬件定时器205,具体用于在硬件定时器205计时到时后,检测应用模块是否正常地占用CPU的处理资源。
第二软件心跳触发器204,还连接至硬件定时器205,具体用于:根据来自硬件定时器205的硬件心跳周期计时软件心跳周期,在所计时的软件心跳周期计时到时后,在监测模块203监测到应用模块正常地百分之百占用CPU的处理资源、软件定时器201无法计时软件心跳周期的情况下,向主设备发送软件心跳报文。
优选地,第二软件心跳触发器204根据硬件心跳周期计时软件心跳周期的处理包括:在软件定时器201计时软件心跳周期的时刻与硬件定时器计时硬件心跳周期的时刻不同步的情况下,确定软件定时器201计时软件心跳周期的时刻与硬件定时器205计时硬件心跳周期的时刻的差值,根据确定的差值和硬件定时器205计时硬件心跳周期的时刻确定软件心跳周期计时时刻,根据确定的软件心跳周期计时时刻计时软件心跳周期。
图4所示装置的工作原理如图5所示,即图5示出了本发明实施例提供的图3所示方法的优选实施方式的工作流程,该工作原理包括如下处理过程:
步骤501、子设备的软件定时器201对预定的软件心跳周期进行计时,在软件定时器201计时软件心跳周期到时后,子设备的第一软件心跳触发器202向主设备发送软件心跳报文;子设备的硬件定时器205对预定的硬件心跳周期进行计时,在硬件定时器205计时硬件心跳周期到时后,子设备的硬件心跳触发器206向主设备发送硬件心跳报文;
步骤502、子设备的第二软件心跳触发器204根据来自硬件定时器205的硬件心跳周期计时软件心跳周期;
具体地,第二软件心跳触发器204根据硬件心跳周期计时软件心跳周期的处理,由于硬件心跳周期的长度短于软件心跳周期的长度,可以是直接根据软件心跳周期的计时时长与硬件心跳周期的计时时长的比例,在硬件心跳周期的基础上计时软件心跳周期;例如,硬件心跳周期为2秒钟,软件心跳周期为10秒钟,则在硬件定时器205计时5次硬件心跳周期时第二软件心跳触发器204计时一次软件心跳周期;
优选地,根据硬件心跳周期计时软件心跳周期的处理中,还可以进一步对硬件心跳周期和软件心跳周期进行对齐处理;具体地,在软件定时器201计时软件心跳周期的时刻与硬件定时器205计时硬件心跳周期的时刻不同步的情况下,确定软件定时器201计时软件心跳周期的时刻与硬件定时器205计时硬件心跳周期的时刻的差值,根据确定的差值和硬件定时器205计时硬件心跳周期的时刻确定软件心跳周期计时时刻,第二软件心跳触发器204根据确定的软件心跳周期计时时刻计时软件心跳周期;
延续上例,硬件心跳周期为2秒钟,软件心跳周期为10秒钟,软件定时器201计时软件心跳周期的计时时刻是从第1秒开始计时,硬件定时器205计时硬件心跳周期的计时时刻是从第2秒开始,则根据硬件定时器205的硬件心跳周期、在第11秒才会计时一次软件心跳周期,这样,根据硬件定时器205的硬件心跳周期计时的软件心跳周期会比软件定时器201计时的软件心跳周期晚一秒钟;而对于主设备而言,主设备在通常情况下接收到的软件心跳报文是由软件定时器201触发的,也即主设备通常是根据软件定时器计时的软件心跳周期来接收软件心跳报文的,主设备接收来自第二软件心跳触发器204根据硬件心跳周期计时得到的软件心跳报文,要比根据软件定时器201计时的软件心跳周期接收到的软件心跳报文晚1秒钟,也即要晚一个软件定时器201计时的软件心跳周期;则,第二软件心跳触发器204可以先对根据硬件心跳周期计时得到的软件心跳周期进行对齐处理,再进行软件心跳周期的计时处理,即,先确定软件定时器201计时软件心跳周期的时刻与硬件定时器205计时硬件心跳周期的时刻的差值为1秒,在硬件定时器205的计时时刻第2秒减去1秒的时刻为软件心跳周期的计时时刻,从第1秒开始为软件心跳周期的计时时刻,具体为2-1+10=9秒,也即硬件定时器205的计时第9秒的时刻第二软件心跳触发器204计时第一个软件心跳周期;经过上述对齐处理后,后续的计时周期可以直接根据软件心跳周期的计时时长与硬件心跳周期的计时时长的比例来确定软件心跳周期;
在步骤502中,上述对齐处理并不是必要的处理过程,只是优选处理过程;由于硬件心跳周期的长度短于软件心跳周期的长度,在实际的应用场景中,只要根据硬件心跳周期能够计时软件心跳周期即可,即使根据硬件定时器205的硬件心跳周期计时得到的软件心跳周期晚一个周期,对于主设备侧,通常会在连续多个软件心跳周期(例如3个周期)接收不到软件心跳报文,才会判断子设备发生故障,因而,根据硬件定时器205的硬件心跳周期计时得到的软件心跳周期比软件定时器201计时的软件心跳周期晚一个周期,不会对主设备判断子设备是否存在故障造成误判;在具体应用场景中,如果子设备的处理速度较快、处理能力较高的情况下,可以进行上述对齐处理,如果要求本实施例提供的方案能够适用于多种应用场景的情况下,可以不进行上述对齐处理;
步骤503、子设备的监测模块203在硬件定时器205计时到时后,检测应用模块是否正常地占用CPU的处理资源,也即,监测模块203在每个硬件心跳周期到来时,检测应用模块是否正常地占用CPU的处理资源;
具体地,监测模块203检测应用模块是否正常地占用CPU的处理资源的处理可以包括如下过程:
监测模块203包括若干个监测子模块(图中未示出),每个监测子模块与一个应用模块相对应,一个监测子模块用于检测对应的应用模块是否正常地占用CPU的处理资源。例如,与打印处理模块(Print_module)对应的监测子模块在每个硬件心跳周期到来时,调用操作系统函数来获知CPU处理资源是否被打印处理模块占用,如果CPU的处理资源被打印任务完全占用,并且打印队列不为空,表示有日志(log)输出,该监测子模块可以确定CPU的处理资源正常地被打印处理模块完全占用,即打印处理模块正常地百分之百占用CPU的处理资源;可以理解的是,与不同的应用模块相对应的监测子模块的处理逻辑不同,具体与应用模块的内部逻辑相对应;
其中,需要检测的应用模块可以是通常情况下占用CPU处理资源较多的应用模块,也可以是全部的应用模块,应用模块的选择和确定根据具体应用场景的不同而不同;
监测模块203还包括激活模块(图中未示出),激活模块用于在系统初始化过程中,激活监测子模块,所激活的监测子模块可以是与需要检测的应用模块相对应的监测子模块;也可以在子设备系统初始化过程中,通过应用模块向监测模块203注册各应用模块的标识,激活模块根据注册的标识激活(或使能)相应的监测子模块,从而使监测子模块处于工作状态,也即由激活模块接收来自应用模块的应用模块标识,根据接收到的应用模块标识激活与应用模块相对应的监测子模块;
步骤504、第二软件心跳触发器204在所计时的软件心跳周期计时到时后,在监测模块203监测到应用模块正常地百分之百占用CPU的处理资源、软件定时器201无法计时软件心跳周期的情况下,向主设备发送软件心跳报文;
具体地,当监测模块203中存在监测子模块检测到相应的应用模块正常地百分之百占用CPU的处理资源时,软件定时器201必然得不到CPU的调用、就无法计时软件心跳周期,这种情况下,第一软件心跳触发器202就无法向主设备发送软件心跳报文,此时,由第二软件心跳触发器204向主设备发送软件心跳报文。
根据如图4所示装置及其工作原理,子设备的第二软件触发器204根据来自硬件定时器205的硬件心跳周期计时软件心跳周期,监测模块203在每个硬件心跳周期到来时检测应用模块是否正常地占用CPU处理资源,在监测模块203监测到应用模块正常地百分之百占用CPU的处理资源、软件定时器201无法计时软件心跳周期的情况下,第二软件触发器204向主设备发送软件心跳报文,能够在CPU的处理资源被正常地百分之百占用,软件心跳周期无法计时的情况下,仍然向主设备发送软件心跳报文,从而能够减少主设备对子设备的误判、提高心跳检测的正确率和可靠性,能够解决现有技术中心跳检测存在误判、正确率低、可靠性低的问题。
基于相同的发明构思,本发明实施例还提供了一种网络设备,该网络设备包括如图2或图4所示的分布式系统的心跳检测装置;优选地,该网络设备可以是如图1所示的分布式系统中的子设备,例如路由器或交换机。
下面对本发明实施例具体应用的场景进行说明。
图6示出了本发明实施例提供的分布式系统的心跳检测装置具体应用的场景示意图,图6所示的分布式系统包括子设备6和主设备7,该分布式系统的心跳检测装置位于子设备6中。
该分布式系统的心跳检测装置包括:软件定时器(sw_timer)601、软件心跳触发器602、硬件定时器(hw_timer)603、硬件心跳触发器604、软件心跳辅助装置605。如图7所示,软件心跳辅助装置605中包括若干个心跳辅助单元6061......n。其中,软件定时器601对应于上文中的软件定时器201,软件心跳触发器602对应于上文中的第一软件心跳触发器202,硬件定时器603对应于上文中的硬件定时器205,硬件心跳触发器604对应于上文中的硬件心跳触发器206,软件心跳辅助装置605对应于上文中的监测模块203和第二软件心跳触发器204,心跳辅助单元6061......n对应于上文中的监测子模块。
图6所示的分布式系统的心跳检测装置的工作过程包括如下处理过程:
步骤一、子设备6中的若干个应用模块在系统初始化的过程中,向软件心跳辅助装置605注册本模块的心跳辅助单元,即应用模块向软件心跳辅助装置注册各自的标识,与应用模块的标识相对应的心跳辅助单元606得到激活;心跳辅助单元606中最重要的组成部分是回调函数,回调函数用于调用操作系统函数来获知应用模块占用CPU处理资源的情况,以及对应于应用模块的内部处理逻辑,综合判断应用模块是否正常地百分之百地占用了CPU的处理资源,并根据判断结果返回逻辑值,例如返回TRUE时表示应用模块正常地百分之百占用CPU的处理资源,返回FALISE时表示应用模块未百分之百占用CPU的处理资源;
步骤二、CPU调用软件定时器601对预定的软件心跳周期进行计时,在软件定时器601计时软件心跳周期到时后,软件定时器601触发子设备6的软件心跳触发器602向主设备7发送软件心跳报文,主设备7检测(check_task)在软件心跳周期内是否接收到软件心跳报文,在未接收到的情况下,将软件心跳计数器(sw_counter)计数1,在接收到的情况下,将软件心跳计数器清零,如果软件心跳计数器计数大于或等于3,判断子设备6过于繁忙,存在故障;子设备6的硬件定时器603对预定的硬件心跳周期进行计时,在硬件定时器603计时硬件心跳周期到时后,子设备的硬件心跳触发器604向主设备发送硬件心跳报文,主设备7检测(check_task)在硬件心跳周期内是否接收到硬件心跳报文,在未接收到的情况下,将硬件心跳计数器(hw_counter)计数1,在硬件心跳周期内接收到硬件心跳报文,将硬件心跳计数器清零,如果硬件心跳计数器计数大于或等于3,判断子设备存在重启故障;
步骤三、软件心跳辅助装置605根据来自硬件定时器603的硬件心跳周期,直接根据软件心跳周期的计时时长与硬件心跳周期的计时时长的比例,在硬件心跳周期的基础上计时软件心跳周期;
步骤四、各个心跳辅助单元6061......n在每个硬件心跳周期到来时,调用操作系统函数来获知CPU处理资源,并判断应用模块是否正常地百分之百占用CPU的处理资源;在判断应用模块正常地百分之百占用CPU的处理资源时返回逻辑值TRUE,在判断应用模块未百分之百占用CPU的处理资源时返回逻辑值FALISE;
步骤五、软件心跳辅助装置605依次查询心跳辅助单元6061......n返回的逻辑值,存在一个逻辑值为TRUE时,表示有一个应用模块正常地100%占用CPU,这种情况下,CPU的处理资源被该应用模块百分之百占用,CPU无法调用软件定时器601,软件定时器601也就无法触发软件心跳触发器602向主设备7发送软件心跳报文,则,在这种情况下,软件心跳辅助装置605向主设备7发送软件心跳报文,以维持软件心跳;如果全部的逻辑值均为FALSE,表示各个应用模块均未百分之百占用CPU的处理资源,此时软件心跳辅助装置605不触发软件心跳,主设备根据硬件心跳触发器604发送的硬件心跳报文和软件心跳触发器602发送的软件心跳报文进行故障判断。
综上所述,根据本发明实施例提供的技术方案,子设备监测子设备上应用模块是否正常地占用CPU的处理资源的情况,并在监测到应用模块正常地百分之百占用CPU的处理资源,且软件心跳周期无法计时的情况下,子设备向主设备发送软件心跳报文,能够在CPU的处理资源被正常地百分之百占用,软件心跳周期无法计时的情况下,仍然向主设备发送软件心跳报文,从而能够减少主设备对子设备的误判、提高心跳检测的正确率和可靠性,能够解决现有技术中心跳检测存在误判、正确率低、可靠性低的问题。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种应用于分布式系统的心跳检测装置,其特征在于,包括:
软件定时器,用于对预定的软件心跳周期进行计时;
第一软件心跳触发器,用于在软件定时器计时到时后,向主设备发送软件心跳报文;
监测模块,用于监测应用模块是否正常地占用中央处理器CPU的处理资源;
第二软件心跳触发器,用于在监测模块监测到应用模块正常地百分之百占用CPU的处理资源、软件定时器无法计时软件心跳周期的情况下,向主设备发送软件心跳报文。
2.根据权利要求1所述的装置,其特征在于,所述监测模块,具体包括:
若干个监测子模块,一个所述监测子模块与一个应用模块相对应,各个所述监测子模块用于检测对应的应用模块是否正常地占用CPU的处理资源;
激活模块,用于在系统初始化过程中,激活所述监测子模块;或者,接收来自应用模块的应用模块标识,根据接收到的应用模块标识激活与应用模块相对应的监测子模块。
3.根据权利要求1所述的装置,其特征在于,所述装置还包括:
硬件定时器,用于对预定的硬件心跳周期进行计时;
硬件心跳触发器,用于在硬件定时器计时到时后,向主设备发送硬件心跳报文;硬件心跳周期的长度短于软件心跳周期的长度;
所述监测模块,具体用于:在硬件定时器计时到时后,检测应用模块是否正常地占用CPU的处理资源。
4.根据权利要求3所述的装置,其特征在于,第二软件心跳触发器,具体用于:
根据来自硬件定时器的硬件心跳周期计时软件心跳周期,在所计时的软件心跳周期计时到时后,在监测模块监测到应用模块正常地百分之百占用CPU的处理资源、软件定时器无法计时软件心跳周期的情况下,向主设备发送软件心跳报文。
5.根据权利要求4所述的装置,其特征在于,第二软件心跳触发器,具体用于:
在软件定时器计时软件心跳周期的时刻与硬件定时器计时硬件心跳周期的时刻不同步的情况下,确定软件定时器计时软件心跳周期的时刻与硬件定时器计时硬件心跳周期的时刻的差值,根据确定的差值和硬件定时器计时硬件心跳周期的时刻确定软件心跳周期计时时刻,根据确定的软件心跳周期计时时刻计时软件心跳周期。
6.一种网络设备,其特征在于,包括如权利要求1~5中任一项所述的应用于分布式系统的心跳检测装置。
7.一种应用于分布式系统的心跳检测方法,其特征在于,包括:
子设备在计时预定的软件心跳周期到时后,向主设备发送软件心跳报文;子设备监测自身的应用模块是否正常地占用中央处理器CPU的处理资源;
在监测到应用模块正常地百分之百占用CPU的处理资源、无法计时软件心跳周期的情况下,子设备向主设备发送软件心跳报文。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
子设备在计时预定的硬件心跳周期到来时后,向主设备发送硬件心跳报文;硬件心跳周期的长度短于软件心跳周期的长度;
子设备监测自身的应用模块是否正常地占用CPU的处理资源,具体包括:
子设备在硬件心跳周期计时到时后,检测应用模块是否正常地占用CPU的处理资源。
9.根据权利要求8所述的方法,其特征在于,在监测到应用模块正常地百分之百占用CPU的处理资源、无法计时软件心跳周期的情况下,子设备向主设备发送软件心跳报文,具体包括:
根据硬件心跳周期计时软件心跳周期,在所计时的软件心跳周期计时到时,在监测到应用模块正常地百分之百占用CPU的处理资源、无法计时软件心跳周期的情况下,向主设备发送软件心跳报文。
10.根据权利要求9所述的方法,其特征在于,根据硬件心跳周期计时软件心跳周期,具体包括:
在软件心跳周期计时时刻与硬件心跳周期计时时刻不同步的情况下,确定软件心跳周期计时时刻与硬件心跳周期计时时刻的差值,根据确定的差值和硬件心跳周期计时时刻确定软件心跳周期计时时刻,根据确定的软件心跳周期计时时刻计时软件心跳周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210507305.2A CN102984029B (zh) | 2012-11-30 | 2012-11-30 | 应用于分布式系统的心跳检测装置和方法、网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210507305.2A CN102984029B (zh) | 2012-11-30 | 2012-11-30 | 应用于分布式系统的心跳检测装置和方法、网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102984029A true CN102984029A (zh) | 2013-03-20 |
CN102984029B CN102984029B (zh) | 2015-07-22 |
Family
ID=47857790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210507305.2A Active CN102984029B (zh) | 2012-11-30 | 2012-11-30 | 应用于分布式系统的心跳检测装置和方法、网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102984029B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103684929A (zh) * | 2013-12-27 | 2014-03-26 | 乐视网信息技术(北京)股份有限公司 | 服务器状态的监控系统及方法 |
CN103701667A (zh) * | 2013-12-27 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 服务器的心跳的监控方法、装置及系统 |
CN104539444A (zh) * | 2014-12-02 | 2015-04-22 | 重庆晴彩科技有限公司 | 一种网络物理链路切换心跳信号检测模块 |
WO2015184921A1 (zh) * | 2014-11-28 | 2015-12-10 | 中兴通讯股份有限公司 | 实现心跳通信的方法、注册中心、服务端和客户端 |
CN106330595A (zh) * | 2015-07-02 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式平台的心跳检测方法和装置 |
CN106502944A (zh) * | 2015-09-08 | 2017-03-15 | 杭州华为数字技术有限公司 | 计算机、pcie设备以及pcie设备的心跳检测方法 |
CN107590050A (zh) * | 2017-09-04 | 2018-01-16 | 杭州迪普科技股份有限公司 | 一种检查外部插件设备异常的方法及装置 |
CN108255646A (zh) * | 2018-01-17 | 2018-07-06 | 重庆大学 | 一种基于心跳检测的工控应用程序故障自恢复的方法 |
CN109379246A (zh) * | 2018-09-21 | 2019-02-22 | 锐捷网络股份有限公司 | 一种内存的检测方法及装置 |
CN110974204A (zh) * | 2019-12-25 | 2020-04-10 | 杭州涂鸦信息技术有限公司 | 一种实现双向心跳机制的方法及其系统和装置 |
CN112767600A (zh) * | 2021-01-19 | 2021-05-07 | 支付宝(杭州)信息技术有限公司 | 售卖柜及其控制方法 |
CN113183916A (zh) * | 2021-04-28 | 2021-07-30 | 安徽江淮汽车集团股份有限公司 | 远程锁车防拆方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060209676A1 (en) * | 2005-03-16 | 2006-09-21 | Kun-Pu Chen | Network link backup system |
CN101714991A (zh) * | 2009-10-30 | 2010-05-26 | 清华大学 | 心跳机制的实现方法 |
CN102185740A (zh) * | 2011-05-13 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | 心跳检测方法及网络设备 |
-
2012
- 2012-11-30 CN CN201210507305.2A patent/CN102984029B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060209676A1 (en) * | 2005-03-16 | 2006-09-21 | Kun-Pu Chen | Network link backup system |
CN101714991A (zh) * | 2009-10-30 | 2010-05-26 | 清华大学 | 心跳机制的实现方法 |
CN102185740A (zh) * | 2011-05-13 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | 心跳检测方法及网络设备 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701667A (zh) * | 2013-12-27 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 服务器的心跳的监控方法、装置及系统 |
CN103684929B (zh) * | 2013-12-27 | 2017-01-25 | 乐视云计算有限公司 | 服务器状态的监控系统及方法 |
CN103684929A (zh) * | 2013-12-27 | 2014-03-26 | 乐视网信息技术(北京)股份有限公司 | 服务器状态的监控系统及方法 |
WO2015184921A1 (zh) * | 2014-11-28 | 2015-12-10 | 中兴通讯股份有限公司 | 实现心跳通信的方法、注册中心、服务端和客户端 |
CN105704107A (zh) * | 2014-11-28 | 2016-06-22 | 中兴通讯股份有限公司 | 实现心跳通信的方法、注册中心、服务端和客户端 |
CN104539444A (zh) * | 2014-12-02 | 2015-04-22 | 重庆晴彩科技有限公司 | 一种网络物理链路切换心跳信号检测模块 |
CN106330595A (zh) * | 2015-07-02 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式平台的心跳检测方法和装置 |
CN106502944B (zh) * | 2015-09-08 | 2019-05-07 | 杭州华为数字技术有限公司 | 计算机、pcie设备以及pcie设备的心跳检测方法 |
CN106502944A (zh) * | 2015-09-08 | 2017-03-15 | 杭州华为数字技术有限公司 | 计算机、pcie设备以及pcie设备的心跳检测方法 |
CN107590050A (zh) * | 2017-09-04 | 2018-01-16 | 杭州迪普科技股份有限公司 | 一种检查外部插件设备异常的方法及装置 |
CN108255646A (zh) * | 2018-01-17 | 2018-07-06 | 重庆大学 | 一种基于心跳检测的工控应用程序故障自恢复的方法 |
CN109379246A (zh) * | 2018-09-21 | 2019-02-22 | 锐捷网络股份有限公司 | 一种内存的检测方法及装置 |
CN109379246B (zh) * | 2018-09-21 | 2021-03-05 | 锐捷网络股份有限公司 | 一种内存的检测方法及装置 |
CN110974204A (zh) * | 2019-12-25 | 2020-04-10 | 杭州涂鸦信息技术有限公司 | 一种实现双向心跳机制的方法及其系统和装置 |
CN112767600A (zh) * | 2021-01-19 | 2021-05-07 | 支付宝(杭州)信息技术有限公司 | 售卖柜及其控制方法 |
CN113183916A (zh) * | 2021-04-28 | 2021-07-30 | 安徽江淮汽车集团股份有限公司 | 远程锁车防拆方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102984029B (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102984029A (zh) | 应用于分布式系统的心跳检测装置和方法、网络设备 | |
CN104205109B (zh) | 持续性和弹性的工作者进程 | |
US10659316B1 (en) | State machine controlled dynamic distributed computing | |
CN107463357B (zh) | 任务调度系统、调度方法、制动仿真系统及仿真方法 | |
CN103455416B (zh) | 一种基于占用Android系统智能设备内存和CPU的压力测试方法 | |
CN110502294A (zh) | 数据处理的方法、装置及电子设备 | |
CN102521098B (zh) | Cpu死机监控的处理方法和装置 | |
CN111341445B (zh) | 微服务调用链的健康检测方法和健康检测系统 | |
US10782999B2 (en) | Method, device, and single-tasking system for implementing multi-tasking in single-tasking system | |
CN102819466B (zh) | 操作系统异常的处理方法及其装置 | |
CN101788949A (zh) | 一种实现嵌入式系统函数监控的方法及装置 | |
CN103246589A (zh) | 一种多线程的监控方法及装置 | |
CN101387971A (zh) | 一种嵌入式软件的任务调整方法和装置 | |
CN107491346A (zh) | 一种应用的任务处理方法、装置及系统 | |
CN106681802A (zh) | 虚拟机迁移方法、装置及系统 | |
CN103365741A (zh) | 用于虚拟机集群的快照和恢复的方法和设备 | |
CN112130923A (zh) | 容器的管理方法、装置、电子设备及计算机可读存储介质 | |
CN106775620B (zh) | 一种定时方法及装置 | |
CN101561778A (zh) | 一种检测多任务操作系统任务死循环的方法 | |
CN107624181A (zh) | 包括虚拟处理器的闲置和调度的虚拟机管理方法和装备 | |
CN116844443A (zh) | 显示故障检测方法、装置、电子设备及介质 | |
CN113692008B (zh) | 一种处理收发异常的方法、装置、设备和存储介质 | |
CN106980463A (zh) | 存储系统的服务质量控制方法和装置 | |
CN105589787A (zh) | 应用程序的健康检查方法及健康检查系统 | |
CN113687942B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park building 19# Patentee after: RUIJIE NETWORKS CO., LTD. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park building 19# Patentee before: Fujian Xingwangruijie Network Co., Ltd. |