專利名稱:應用于分布式系統(tǒng)的心跳檢測裝置和方法、網(wǎng)絡設備的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡通信技術,具體地,涉及一種應用于分布式系統(tǒng)的心跳檢測裝置和方法、網(wǎng)絡設備。
背景技術:
分布式系統(tǒng)是一種通信網(wǎng)絡互聯(lián)的多設備體系結構,各個設備通過協(xié)調交互來執(zhí)行任務。分布式系統(tǒng)中包括多個設備,這多個設備中包括一個主設備,其它設備為子設備。
主設備和子設備之間通過心跳檢測來監(jiān)測子設備的生存狀態(tài)。圖I示出了心跳檢測的原理示意,如圖I所示,子設備2啟動定時器(Timer),在定時器的定時周期到來時向主設備I發(fā)送心跳信息。主設備I接收到來自子設備2的心跳報文后更新對子設備2的心跳計數(shù)(counter),如果在規(guī)定的時間內(nèi),主設備I未接收到子設備2的心跳信息,認為子設備 2故障,執(zhí)行相應的故障處理。
心跳檢測分為軟件心跳檢測和硬件心跳檢測。軟件心跳檢測是通過軟件觸發(fā)定時器來發(fā)送心跳報文,硬件心跳是通過硬件觸發(fā)來發(fā)送心跳報文。
硬件心跳檢測通常采用硬件定時器對硬件心跳周期進行定時,在該定時器計時到時后,子設備向主設備發(fā)送硬件心跳報文,主設備在超過3個硬件心跳周期未接收到硬件心跳報文,認為子設備存在重啟故障。其中,硬件定時器是低級中斷定時器,不會因為中央處理器(CPU,Central Process Unit)繁忙而得不到調度,因而主設備通過硬件心跳報文只能檢測出子設備的重啟故障,無法檢測出子設備的其它故障。
軟件心跳檢測能夠彌補硬件心跳檢測的空白。軟件心跳由CPU觸發(fā),通常采用軟件定時器對軟件心跳周期進行定時,在該定時器計時到時后,子設備的CPU向主設備發(fā)送軟件心跳報文,主設備在超過3個軟件心跳周期未接收到硬件心跳報文,認為子設備過于繁忙,工作不正常,例如,子設備的程序陷入死循環(huán),該陷入死循環(huán)的程序百分之百地占用了子設備的CPU的處理資源,這種情況下主設備判斷子設備發(fā)生故障。
但是,在特定的條件下,子設備中的某些應用模塊在做大量運算時,也可能會百分之百地占用CPU的處理資源,并且所表現(xiàn)出來的現(xiàn)象也是CPU的處理資源被百分之百占用, 在這種情況下,CPU處于正常狀態(tài),子設備也沒有發(fā)生故障,但是CPU不能觸發(fā)軟件心跳,子設備也不能向主設備發(fā)出軟件心跳報文,主設備會對這種情況產(chǎn)生誤判,認為子設備存在故障。
可見,現(xiàn)有的分布式系統(tǒng)的軟件心跳檢測中,對于子設備處于正常的CPU處理資源被百分之百占用的情況,存在主設備誤判子設備存在故障的問題。
綜上,在現(xiàn)有的分布式系統(tǒng)的心跳檢測技術中,存在心跳檢測存在誤判、正確率低、可靠性低的問題。發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供了一種應用于分布式系統(tǒng)的心跳檢測裝置和方法、網(wǎng)絡設備,用以解決現(xiàn)有的分布式系統(tǒng)的心跳檢測技術中,所存在的心跳檢測存在誤判、正確率低、可靠性低的問題。
本發(fā)明實施例技術方案如下
一種應用于分布式系統(tǒng)的心跳檢測裝置,包括軟件定時器,用于對預定的軟件心跳周期進行計時;第一軟件心跳觸發(fā)器,用于在軟件定時器計時到時后,向主設備發(fā)送軟件心跳報文;監(jiān)測模塊,用于監(jiān)測應用模塊是否正常地占用中央處理器CPU的處理資源;第二軟件心跳觸發(fā)器,用于在監(jiān)測模塊監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、 軟件定時器無法計時軟件心跳周期的情況下,向主設備發(fā)送軟件心跳報文。
一種網(wǎng)絡設備,包括如上所述的應用于分布式系統(tǒng)的心跳檢測裝置。
一種應用于分布式系統(tǒng)的心跳檢測方法,包括子設備在計時預定的軟件心跳周期到時后,向主設備發(fā)送軟件心跳報文;子設備監(jiān)測自身上的應用模塊是否正常地占用中央處理器CPU的處理資源;在監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、無法計時軟件心跳周期的情況下,子設備向主設備發(fā)送軟件心跳報文。
根據(jù)本發(fā)明實施例的技術方案,通過子設備監(jiān)測子設備上應用模塊是否正常地占用CPU的處理資源,并在監(jiān)測到應用模塊正常地百分之百占用對CPU的處理資源,且軟件心跳周期無法計時的情況下,子設備向主設備發(fā)送軟件心跳報文,能夠在CPU的處理資源被正常地百分之百占用,軟件心跳周期無法計時的情況下,仍然向主設備發(fā)送軟件心跳報文, 從而能夠減少主設備對子設備的誤判、提高心跳檢測的正確率和可靠性,能夠解決現(xiàn)有技術中心跳檢測存在誤判、正確率低、可靠性低的問題。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現(xiàn)和獲得。
圖I為現(xiàn)有技術中分布式系統(tǒng)中心跳檢測的原理示意圖2為本發(fā)明實施例提供的應用于分布式系統(tǒng)的心跳檢測裝置的結構框圖3為本發(fā)明實施例提供的應用于分布式系統(tǒng)的心跳檢測方法的工作流程圖4為圖2所示裝置的優(yōu)選實施結構框圖5為本發(fā)明實施例提供的應用于分布式系統(tǒng)的心跳檢測方法的優(yōu)選工作流程圖6為本發(fā)明實施例提供的分布式系統(tǒng)的心跳檢測裝置具體應用的場景示意圖7為圖6所示的分布式系統(tǒng)的心跳檢測裝置中的軟件心跳輔助裝置的結構框圖。
具體實施方式
以下結合附圖對本發(fā)明的實施例進行說明,應當理解,此處所描述的實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
針對現(xiàn)有的分布式系統(tǒng)的心跳檢測技術中,存在心跳檢測存在誤判、正確率低、可靠性低的問題,本發(fā)明實施例提出了一種應用于分布式系統(tǒng)的心跳檢測方案,以解決該問題。在本發(fā)明實施例的技術方案中,子設備監(jiān)測子設備上應用模塊是否正常地占用CPU的處理資源,并在監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源,且軟件心跳周期無法計時的情況下,子設備向主設備發(fā)送軟件心跳報文,能夠在CPU的處理資源被正常地百分之百占用,軟件心跳周期無法計時的情況下,仍然向主設備發(fā)送軟件心跳報文,從而能夠減少主設備對子設備的誤判、提高心跳檢測的正確率和可靠性,能夠解決現(xiàn)有技術中心跳檢測存在誤判、正確率低、可靠性低的問題。
下面對本發(fā)明實施例的技術方案進行詳細說明。
圖2示出了本發(fā)明實施例提供的應用于分布式系統(tǒng)的心跳檢測裝置的結構框圖, 該裝置位于分布式系統(tǒng)的子設備上,如圖2所示,該裝置包括
軟件定時器201,用于對預定的軟件心跳周期進行計時;
第一軟件心跳觸發(fā)器202,連接至軟件定時器201,用于在軟件定時器201計時到時后,向主設備發(fā)送軟件心跳報文;
監(jiān)測模塊203,用于檢測應用模塊是否正常地占用CPU的處理資源;
第二軟件心跳觸發(fā)器204,連接至監(jiān)測模塊203和軟件定時器201,用于在監(jiān)測模塊203監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、軟件定時器201無法計時的情況下,向主設備發(fā)送軟件心跳報文。
圖2所示裝置的工作原理如圖3所示,也即圖3示出了本發(fā)明實施例提供的應用于分布式系統(tǒng)的心跳檢測方法的工作流程,如圖3所示,該工作原理包括如下處理過程
步驟301、子設備的軟件定時器201對預定的軟件心跳周期進行計時,在軟件定時器201計時軟件心跳周期到時后,子設備的第一軟件心跳觸發(fā)器202向主設備發(fā)送軟件心跳報文;子設備的監(jiān)測模塊203監(jiān)測子設備上的應用模塊是否正常地占用CPU的處理資源;
步驟302、子設備的第二軟件心跳觸發(fā)器204在監(jiān)測模塊203監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、軟件定時器無法計時軟件心跳周期的情況下,子設備向主設備發(fā)送軟件心跳報文。也即,在應用模塊正常地百分之百占用CPU的處理資源時,軟件定時器就無法得到CPU的調用、軟件定時器也就無法計時軟件心跳周期,則子設備無法向主設備發(fā)送軟件心跳報文,子設備一旦監(jiān)測到這種情況下,就向主設備發(fā)送軟件心跳報文。
根據(jù)上述的處理過程,子設備對其上的應用模塊是否正常地占用CPU的處理資源,并在監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源,且軟件心跳周期無法計時的情況下,子設備向主設備發(fā)送軟件心跳報文,能夠在CPU的處理資源被正常地百分之百占用,軟件心跳周期無法計時的情況下,仍然向主設備發(fā)送軟件心跳報文,從而能夠減少主設備對子設備的誤判、提高心跳檢測的正確率和可靠性,能夠解決現(xiàn)有技術中心跳檢測存在誤判、正確率低、可靠性低的問題。
圖4示出了圖2所示裝置的優(yōu)選實施結構框圖,如圖4所示,該裝置在圖2所示裝置的基礎上,還包括硬件定時器205和硬件心跳觸發(fā)器206。
硬件定時器205,用于對預定的硬件心跳周期進行計時;
硬件心跳觸發(fā)器206,用于在硬件定時器205計時到時后,向主設備發(fā)送硬件心跳報文;硬件心跳周期的長度通常短于軟件心跳周期的長度;
則,監(jiān)測模塊203還連接至硬件定時器205,具體用于在硬件定時器205計時到時后,檢測應用模塊是否正常地占用CPU的處理資源。
第二軟件心跳觸發(fā)器204,還連接至硬件定時器205,具體用于根據(jù)來自硬件定時器205的硬件心跳周期計時軟件心跳周期,在所計時的軟件心跳周期計時到時后,在監(jiān)測模塊203監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、軟件定時器201無法計時軟件心跳周期的情況下,向主設備發(fā)送軟件心跳報文。
優(yōu)選地,第二軟件心跳觸發(fā)器204根據(jù)硬件心跳周期計時軟件心跳周期的處理包括在軟件定時器201計時軟件心跳周期的時刻與硬件定時器計時硬件心跳周期的時刻不同步的情況下,確定軟件定時器201計時軟件心跳周期的時刻與硬件定時器205計時硬件心跳周期的時刻的差值,根據(jù)確定的差值和硬件定時器205計時硬件心跳周期的時刻確定軟件心跳周期計時時刻,根據(jù)確定的軟件心跳周期計時時刻計時軟件心跳周期。
圖4所示裝置的工作原理如圖5所示,即圖5示出了本發(fā)明實施例提供的圖3所示方法的優(yōu)選實施方式的工作流程,該工作原理包括如下處理過程
步驟501、子設備的軟件定時器201對預定的軟件心跳周期進行計時,在軟件定時器201計時軟件心跳周期到時后,子設備的第一軟件心跳觸發(fā)器202向主設備發(fā)送軟件心跳報文;子設備的硬件定時器205對預定的硬件心跳周期進行計時,在硬件定時器205計時硬件心跳周期到時后,子設備的硬件心跳觸發(fā)器206向主設備發(fā)送硬件心跳報文;
步驟502、子設備的第二軟件心跳觸發(fā)器204根據(jù)來自硬件定時器205的硬件心跳周期計時軟件心跳周期;
具體地,第二軟件心跳觸發(fā)器204根據(jù)硬件心跳周期計時軟件心跳周期的處理, 由于硬件心跳周期的長度短于軟件心跳周期的長度,可以是直接根據(jù)軟件心跳周期的計時時長與硬件心跳周期的計時時長的比例,在硬件心跳周期的基礎上計時軟件心跳周期;例如,硬件心跳周期為2秒鐘,軟件心跳周期為10秒鐘,則在硬件定時器205計時5次硬件心跳周期時第二軟件心跳觸發(fā)器204計時一次軟件心跳周期;
優(yōu)選地,根據(jù)硬件心跳周期計時軟件心跳周期的處理中,還可以進一步對硬件心跳周期和軟件心跳周期進行對齊處理;具體地,在軟件定時器201計時軟件心跳周期的時刻與硬件定時器205計時硬件心跳周期的時刻不同步的情況下,確定軟件定時器201計時軟件心跳周期的時刻與硬件定時器205計時硬件心跳周期的時刻的差值,根據(jù)確定的差值和硬件定時器205計時硬件心跳周期的時刻確定軟件心跳周期計時時刻,第二軟件心跳觸發(fā)器204根據(jù)確定的軟件心跳周期計時時刻計時軟件心跳周期;
延續(xù)上例,硬件心跳周期為2秒鐘,軟件心跳周期為10秒鐘,軟件定時器201計時軟件心跳周期的計時時刻是從第I秒開始計時,硬件定時器205計時硬件心跳周期的計時時刻是從第2秒開始,則根據(jù)硬件定時器205的硬件心跳周期、在第11秒才會計時一次軟件心跳周期,這樣,根據(jù)硬件定時器205的硬件心跳周期計時的軟件心跳周期會比軟件定時器201計時的軟件心跳周期晚一秒鐘;而對于主設備而言,主設備在通常情況下接收到的軟件心跳報文是由軟件定時器201觸發(fā)的,也即主設備通常是根據(jù)軟件定時器計時的軟件心跳周期來接收軟件心跳報文的,主設備接收來自第二軟件心跳觸發(fā)器204根據(jù)硬件心跳周期計時得到的軟件心跳報文,要比根據(jù)軟件定時器201計時的軟件心跳周期接收到的軟件心跳報文晚I秒鐘,也即要晚一個軟件定時器201計時的軟件心跳周期;則,第二軟件心跳觸發(fā)器204可以先對根據(jù)硬件心跳周期計時得到的軟件心跳周期進行對齊處理,再進行軟件心跳周期的計時處理,即,先確定軟件定時器201計時軟件心跳周期的時刻與硬件定時器205計時硬件心跳周期的時刻的差值為I秒,在硬件定時器205的計時時刻第2秒減去I秒的時刻為軟件心跳周期的計時時刻,從第I秒開始為軟件心跳周期的計時時刻,具體為2-1+10=9秒,也即硬件定時器205的計時第9秒的時刻第二軟件心跳觸發(fā)器204計時第一個軟件心跳周期;經(jīng)過上述對齊處理后,后續(xù)的計時周期可以直接根據(jù)軟件心跳周期的計時時長與硬件心跳周期的計時時長的比例來確定軟件心跳周期;
在步驟502中,上述對齊處理并不是必要的處理過程,只是優(yōu)選處理過程;由于硬件心跳周期的長度短于軟件心跳周期的長度,在實際的應用場景中,只要根據(jù)硬件心跳周期能夠計時軟件心跳周期即可,即使根據(jù)硬件定時器205的硬件心跳周期計時得到的軟件心跳周期晚一個周期,對于主設備側,通常會在連續(xù)多個軟件心跳周期(例如3個周期)接收不到軟件心跳報文,才會判斷子設備發(fā)生故障,因而,根據(jù)硬件定時器205的硬件心跳周期計時得到的軟件心跳周期比軟件定時器201計時的軟件心跳周期晚一個周期,不會對主設備判斷子設備是否存在故障造成誤判;在具體應用場景中,如果子設備的處理速度較快、處理能力較高的情況下,可以進行上述對齊處理,如果要求本實施例提供的方案能夠適用于多種應用場景的情況下,可以不進行上述對齊處理;
步驟503、子設備的監(jiān)測模塊203在硬件定時器205計時到時后,檢測應用模塊是否正常地占用CPU的處理資源,也即,監(jiān)測模塊203在每個硬件心跳周期到來時,檢測應用模塊是否正常地占用CPU的處理資源;
具體地,監(jiān)測模塊203檢測應用模塊是否正常地占用CPU的處理資源的處理可以包括如下過程
監(jiān)測模塊203包括若干個監(jiān)測子模塊(圖中未示出),每個監(jiān)測子模塊與一個應用模塊相對應,一個監(jiān)測子模塊用于檢測對應的應用模塊是否正常地占用CPU的處理資源。 例如,與打印處理模塊(Printjnodule)對應的監(jiān)測子模塊在每個硬件心跳周期到來時,調用操作系統(tǒng)函數(shù)來獲知CPU處理資源是否被打印處理模塊占用,如果CPU的處理資源被打印任務完全占用,并且打印隊列不為空,表示有日志(log)輸出,該監(jiān)測子模塊可以確定CPU的處理資源正常地被打印處理模塊完全占用,即打印處理模塊正常地百分之百占用 CPU的處理資源;可以理解的是,與不同的應用模塊相對應的監(jiān)測子模塊的處理邏輯不同, 具體與應用模塊的內(nèi)部邏輯相對應;
其中,需要檢測的應用模塊可以是通常情況下占用CPU處理資源較多的應用模塊,也可以是全部的應用模塊,應用模塊的選擇和確定根據(jù)具體應用場景的不同而不同;
監(jiān)測模塊203還包括激活模塊(圖中未示出),激活模塊用于在系統(tǒng)初始化過程中, 激活監(jiān)測子模塊,所激活的監(jiān)測子模塊可以是與需要檢測的應用模塊相對應的監(jiān)測子模塊;也可以在子設備系統(tǒng)初始化過程中,通過應用模塊向監(jiān)測模塊203注冊各應用模塊的標識,激活模塊根據(jù)注冊的標識激活(或使能)相應的監(jiān)測子模塊,從而使監(jiān)測子模塊處于工作狀態(tài),也即由激活模塊接收來自應用模塊的應用模塊標識,根據(jù)接收到的應用模塊標識激活與應用模塊相對應的監(jiān)測子模塊;
步驟504、第二軟件心跳觸發(fā)器204在所計時的軟件心跳周期計時到時后,在監(jiān)測模塊203監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、軟件定時器201無法計時軟件心跳周期的情況下,向主設備發(fā)送軟件心跳報文;
具體地,當監(jiān)測模塊203中存在監(jiān)測子模塊檢測到相應的應用模塊正常地百分之百占用CPU的處理資源時,軟件定時器201必然得不到CPU的調用、就無法計時軟件心跳周期,這種情況下,第一軟件心跳觸發(fā)器202就無法向主設備發(fā)送軟件心跳報文,此時,由第二軟件心跳觸發(fā)器204向主設備發(fā)送軟件心跳報文。
根據(jù)如圖4所示裝置及其工作原理,子設備的第二軟件觸發(fā)器204根據(jù)來自硬件定時器205的硬件心跳周期計時軟件心跳周期,監(jiān)測模塊203在每個硬件心跳周期到來時檢測應用模塊是否正常地占用CPU處理資源,在監(jiān)測模塊203監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、軟件定時器201無法計時軟件心跳周期的情況下,第二軟件觸發(fā)器204向主設備發(fā)送軟件心跳報文,能夠在CPU的處理資源被正常地百分之百占用,軟件心跳周期無法計時的情況下,仍然向主設備發(fā)送軟件心跳報文,從而能夠減少主設備對子設備的誤判、提高心跳檢測的正確率和可靠性,能夠解決現(xiàn)有技術中心跳檢測存在誤判、正確率低、可靠性低的問題。
基于相同的發(fā)明構思,本發(fā)明實施例還提供了一種網(wǎng)絡設備,該網(wǎng)絡設備包括如圖2或圖4所示的分布式系統(tǒng)的心跳檢測裝置;優(yōu)選地,該網(wǎng)絡設備可以是如圖I所示的分布式系統(tǒng)中的子設備,例如路由器或交換機。
下面對本發(fā)明實施例具體應用的場景進行說明。
圖6示出了本發(fā)明實施例提供的分布式系統(tǒng)的心跳檢測裝置具體應用的場景示意圖,圖6所示的分布式系統(tǒng)包括子設備6和主設備7,該分布式系統(tǒng)的心跳檢測裝置位于子設備6中。
該分布式系統(tǒng)的心跳檢測裝置包括軟件定時器(sw_timer) 601、軟件心跳觸發(fā)器602、硬件定時器(hwjimer) 603、硬件心跳觸發(fā)器604、軟件心跳輔助裝置605。如圖7 所示,軟件心跳輔助裝置605中包括若干個心跳輔助單元eoei......η。其中,軟件定時器601對應于上文中的軟件定時器201,軟件心跳觸發(fā)器602對應于上文中的第一軟件心跳觸發(fā)器202,硬件定時器603對應于上文中的硬件定時器205,硬件心跳觸發(fā)器604對應于上文中的硬件心跳觸發(fā)器206,軟件心跳輔助裝置605對應于上文中的監(jiān)測模塊203和第二軟件心跳觸發(fā)器204,心跳輔助單元Goe1...... 對應于上文中的監(jiān)測子模塊。
圖6所示的分布式系統(tǒng)的心跳檢測裝置的工作過程包括如下處理過程
步驟一、子設備6中的若干個應用模塊在系統(tǒng)初始化的過程中,向軟件心跳輔助裝置605注冊本模塊的心跳輔助單元,即應用模塊向軟件心跳輔助裝置注冊各自的標識, 與應用模塊的標識相對應的心跳輔助單元606得到激活;心跳輔助單元606中最重要的組成部分是回調函數(shù),回調函數(shù)用于調用操作系統(tǒng)函數(shù)來獲知應用模塊占用CPU處理資源的情況,以及對應于應用模塊的內(nèi)部處理邏輯,綜合判斷應用模塊是否正常地百分之百地占用了 CPU的處理資源,并根據(jù)判斷結果返回邏輯值,例如返回TRUE時表示應用模塊正常地百分之百占用CPU的處理資源,返回FALISE時表示應用模塊未百分之百占用CPU的處理資源;
步驟二、CPU調用軟件定時器601對預定的軟件心跳周期進行計時,在軟件定時器 601計時軟件心跳周期到時后,軟件定時器601觸發(fā)子設備6的軟件心跳觸發(fā)器602向主設備7發(fā)送軟件心跳報文,主設備7檢測(checkjask)在軟件心跳周期內(nèi)是否接收到軟件心跳報文,在未接收到的情況下,將軟件心跳計數(shù)器(sw_counter)計數(shù)I,在接收到的情況下,將軟件心跳計數(shù)器清零,如果軟件心跳計數(shù)器計數(shù)大于或等于3,判斷子設備6過于繁忙,存在故障;子設備6的硬件定時器603對預定的硬件心跳周期進行計時,在硬件定時器 603計時硬件心跳周期到時后,子設備的硬件心跳觸發(fā)器604向主設備發(fā)送硬件心跳報文, 主設備7檢測(checkjask)在硬件心跳周期內(nèi)是否接收到硬件心跳報文,在未接收到的情況下,將硬件心跳計數(shù)器(hw_COunter)計數(shù)1,在硬件心跳周期內(nèi)接收到硬件心跳報文,將硬件心跳計數(shù)器清零,如果硬件心跳計數(shù)器計數(shù)大于或等于3,判斷子設備存在重啟故障;
步驟三、軟件心跳輔助裝置605根據(jù)來自硬件定時器603的硬件心跳周期,直接根據(jù)軟件心跳周期的計時時長與硬件心跳周期的計時時長的比例,在硬件心跳周期的基礎上計時軟件心跳周期;
步驟四、各個心跳輔助單元GOei......η在每個硬件心跳周期到來時,調用操作系統(tǒng)函數(shù)來獲知CPU處理資源,并判斷應用模塊是否正常地百分之百占用CPU的處理資源;在判斷應用模塊正常地百分之百占用CPU的處理資源時返回邏輯值TRUE,在判斷應用模塊未百分之百占用CPU的處理資源時返回邏輯值FALISE ;
步驟五、軟件心跳輔助裝置605依次查詢心跳輔助單元SOei......n返回的邏輯值,存在一個邏輯值為TRUE時,表示有一個應用模塊正常地100%占用CPU,這種情況下,CPU 的處理資源被該應用模塊百分之百占用,CPU無法調用軟件定時器601,軟件定時器601也就無法觸發(fā)軟件心跳觸發(fā)器602向主設備7發(fā)送軟件心跳報文,則,在這種情況下,軟件心跳輔助裝置605向主設備7發(fā)送軟件心跳報文,以維持軟件心跳;如果全部的邏輯值均為 FALSE,表示各個應用模塊均未百分之百占用CPU的處理資源,此時軟件心跳輔助裝置605 不觸發(fā)軟件心跳,主設備根據(jù)硬件心跳觸發(fā)器604發(fā)送的硬件心跳報文和軟件心跳觸發(fā)器 602發(fā)送的軟件心跳報文進行故障判斷。
綜上所述,根據(jù)本發(fā)明實施例提供的技術方案,子設備監(jiān)測子設備上應用模塊是否正常地占用CPU的處理資源的情況,并在監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源,且軟件心跳周期無法計時的情況下,子設備向主設備發(fā)送軟件心跳報文,能夠在 CPU的處理資源被正常地百分之百占用,軟件心跳周期無法計時的情況下,仍然向主設備發(fā)送軟件心跳報文,從而能夠減少主設備對子設備的誤判、提高心跳檢測的正確率和可靠性, 能夠解決現(xiàn)有技術中心跳檢測存在誤判、正確率低、可靠性低的問題。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中, 該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權利要求
1.一種應用于分布式系統(tǒng)的心跳檢測裝置,其特征在于,包括 軟件定時器,用于對預定的軟件心跳周期進行計時; 第一軟件心跳觸發(fā)器,用于在軟件定時器計時到時后,向主設備發(fā)送軟件心跳報文; 監(jiān)測模塊,用于監(jiān)測應用模塊是否正常地占用中央處理器CPU的處理資源; 第二軟件心跳觸發(fā)器,用于在監(jiān)測模塊監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、軟件定時器無法計時軟件心跳周期的情況下,向主設備發(fā)送軟件心跳報文。
2.根據(jù)權利要求I所述的裝置,其特征在于,所述監(jiān)測模塊,具體包括 若干個監(jiān)測子模塊,一個所述監(jiān)測子模塊與一個應用模塊相對應,各個所述監(jiān)測子模塊用于檢測對應的應用模塊是否正常地占用CPU的處理資源; 激活模塊,用于在系統(tǒng)初始化過程中,激活所述監(jiān)測子模塊;或者,接收來自應用模塊的應用模塊標識,根據(jù)接收到的應用模塊標識激活與應用模塊相對應的監(jiān)測子模塊。
3.根據(jù)權利要求I所述的裝置,其特征在于,所述裝置還包括 硬件定時器,用于對預定的硬件心跳周期進行計時; 硬件心跳觸發(fā)器,用于在硬件定時器計時到時后,向主設備發(fā)送硬件心跳報文;硬件心跳周期的長度短于軟件心跳周期的長度; 所述監(jiān)測模塊,具體用于在硬件定時器計時到時后,檢測應用模塊是否正常地占用CPU的處理資源。
4.根據(jù)權利要求3所述的裝置,其特征在于,第二軟件心跳觸發(fā)器,具體用于 根據(jù)來自硬件定時器的硬件心跳周期計時軟件心跳周期,在所計時的軟件心跳周期計時到時后,在監(jiān)測模塊監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、軟件定時器無法計時軟件心跳周期的情況下,向主設備發(fā)送軟件心跳報文。
5.根據(jù)權利要求4所述的裝置,其特征在于,第二軟件心跳觸發(fā)器,具體用于 在軟件定時器計時軟件心跳周期的時刻與硬件定時器計時硬件心跳周期的時刻不同步的情況下,確定軟件定時器計時軟件心跳周期的時刻與硬件定時器計時硬件心跳周期的時刻的差值,根據(jù)確定的差值和硬件定時器計時硬件心跳周期的時刻確定軟件心跳周期計時時刻,根據(jù)確定的軟件心跳周期計時時刻計時軟件心跳周期。
6.一種網(wǎng)絡設備,其特征在于,包括如權利要求廣5中任一項所述的應用于分布式系統(tǒng)的心跳檢測裝置。
7.一種應用于分布式系統(tǒng)的心跳檢測方法,其特征在于,包括 子設備在計時預定的軟件心跳周期到時后,向主設備發(fā)送軟件心跳報文;子設備監(jiān)測自身的應用模塊是否正常地占用中央處理器CPU的處理資源; 在監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、無法計時軟件心跳周期的情況下,子設備向主設備發(fā)送軟件心跳報文。
8.根據(jù)權利要求7所述的方法,其特征在于,所述方法還包括 子設備在計時預定的硬件心跳周期到來時后,向主設備發(fā)送硬件心跳報文;硬件心跳周期的長度短于軟件心跳周期的長度; 子設備監(jiān)測自身的應用模塊是否正常地占用CPU的處理資源,具體包括 子設備在硬件心跳周期計時到時后,檢測應用模塊是否正常地占用CPU的處理資源。
9.根據(jù)權利要求8所述的方法,其特征在于,在監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、無法計時軟件心跳周期的情況下,子設備向主設備發(fā)送軟件心跳報文,具體包括 根據(jù)硬件心跳周期計時軟件心跳周期,在所計時的軟件心跳周期計時到時,在監(jiān)測到應用模塊正常地百分之百占用CPU的處理資源、無法計時軟件心跳周期的情況下,向主設備發(fā)送軟件心跳報文。
10.根據(jù)權利要求9所述的方法,其特征在于,根據(jù)硬件心跳周期計時軟件心跳周期,具體包括 在軟件心跳周期計時時刻與硬件心跳周期計時時刻不同步的情況下,確定軟件心跳周期計時時刻與硬件心跳周期計時時刻的差值,根據(jù)確定的差值和硬件心跳周期計時時刻確定軟件心跳周期計時時刻,根據(jù)確定的軟件心跳周期計時時刻計時軟件心跳周期。
全文摘要
本發(fā)明公開了一種應用于分布式系統(tǒng)的心跳檢測裝置和方法、網(wǎng)絡設備,該方法通過子設備監(jiān)測子設備上應用模塊是否正常地占用CPU的處理資源,并在監(jiān)測到應用模塊正常地百分之百占用對CPU的處理資源,且軟件心跳周期無法計時的情況下,子設備向主設備發(fā)送軟件心跳報文,能夠在CPU的處理資源被正常地百分之百占用,軟件心跳周期無法計時的情況下,仍然向主設備發(fā)送軟件心跳報文,從而能夠減少主設備對子設備的誤判、提高心跳檢測的正確率和可靠性,能夠解決現(xiàn)有技術中心跳檢測存在誤判、正確率低、可靠性低的問題。
文檔編號H04L1/00GK102984029SQ20121050730
公開日2013年3月20日 申請日期2012年11月30日 優(yōu)先權日2012年11月30日
發(fā)明者熊俊 申請人:福建星網(wǎng)銳捷網(wǎng)絡有限公司