一種健康探測裝置及方法
【專利摘要】本發(fā)明提供一種健康探測裝置及方法,應(yīng)用在負(fù)載分擔(dān)設(shè)備上,所述設(shè)備與若干個服務(wù)器相連,所述裝置包括:查詢單元,用于周期性發(fā)送狀態(tài)查詢指令至各服務(wù)器,以便獲取某一服務(wù)進(jìn)程在各服務(wù)器上的狀態(tài)參數(shù);判斷單元,用于在獲取各服務(wù)器的狀態(tài)參數(shù)后,根據(jù)狀態(tài)參數(shù),判斷各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)為正常、異?;驋炱?。本發(fā)明可以避免服務(wù)器負(fù)載過重。
【專利說明】一種健康探測裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,尤其涉及一種健康探測裝置及方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的飛速發(fā)展,大量報文需要服務(wù)器進(jìn)行處理,為了有效的處理這些報文,通常會使用負(fù)載分擔(dān)的方法,也就是用負(fù)載分擔(dān)設(shè)備將大量報文分發(fā)給多個服務(wù)器進(jìn)行處理。但在對多個服務(wù)器進(jìn)行負(fù)載分擔(dān)之前,要對各服務(wù)器進(jìn)行健康探測,用以判斷該服務(wù)器是否正常以及是否可以提供相應(yīng)的服務(wù),以確保通過負(fù)載分擔(dān)設(shè)備發(fā)送來的業(yè)務(wù)報文可以得到有效處理。
[0003]目前對服務(wù)器進(jìn)行健康探測的算法主要有ICMP(網(wǎng)絡(luò)控制報文)、FTP (文件傳輸協(xié)議)、HTTP (超文本傳送協(xié)議)等,這些算法實現(xiàn)主要是基于服務(wù)器是否能提供某種服務(wù)為參考依據(jù)。此外,現(xiàn)有技術(shù)在進(jìn)行負(fù)載分擔(dān)處理時,只知道服務(wù)器是否能夠處理報文,無法知道服務(wù)器進(jìn)行服務(wù)處理的性能。例如,現(xiàn)在有服務(wù)器1、服務(wù)器2和服務(wù)器3,其中,服務(wù)器I工作狀態(tài)異常,已無法正常處理報文,服務(wù)器2和3可以正常處理報文,但服務(wù)器2的CPU占用率為80%,而服務(wù)器3的CPU占用率為30%?,F(xiàn)有技術(shù)可以獲知服務(wù)器I工作狀態(tài)異常,服務(wù)器2和服務(wù)器3工作狀態(tài)正常,從而停止向服務(wù)器I分發(fā)報文,但會繼續(xù)向服務(wù)器2和服務(wù)器3分發(fā)報文。由于服務(wù)器2的CPU占用率已經(jīng)很高,如果繼續(xù)向其分發(fā)報文,極易負(fù)載過重,最終導(dǎo)致服務(wù)器癱瘓。因此,如何真實的獲取到服務(wù)器的處理報文的能力,是一個急需解決的問題。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供一種健康探測裝置,應(yīng)用在負(fù)載分擔(dān)設(shè)備上,所述設(shè)備與若干個服務(wù)器相連,所述裝置包括:
[0005]查詢單元,用于周期性發(fā)送狀態(tài)查詢指令至各服務(wù)器,以便獲取某一服務(wù)進(jìn)程在各服務(wù)器上的狀態(tài)參數(shù),所述狀態(tài)參數(shù)包括所述服務(wù)進(jìn)程在服務(wù)器上的CPU占用率;
[0006]判斷單元,用于在獲取各服務(wù)器的狀態(tài)參數(shù)后,根據(jù)狀態(tài)參數(shù),判斷各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)為正常、異?;驋炱?。
[0007]本發(fā)明還一種健康探測方法,應(yīng)用在負(fù)載分擔(dān)設(shè)備上,所述設(shè)備與若干個服務(wù)器相連,所述方法包括:
[0008]周期性發(fā)送狀態(tài)查詢指令至各服務(wù)器,以便獲取某一服務(wù)進(jìn)程在各服務(wù)器上的狀態(tài)參數(shù),所述狀態(tài)參數(shù)包括所述服務(wù)進(jìn)程在服務(wù)器上的CPU占用率;
[0009]在獲取各服務(wù)器的狀態(tài)參數(shù)后,根據(jù)狀態(tài)參數(shù),判斷各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)為正常、異?;驋炱?。
[0010]本發(fā)明提供的技術(shù)方案,可獲得各服務(wù)器針對各某一個服務(wù)進(jìn)程的處理能力,避免服務(wù)器服務(wù)負(fù)載過重?!緦@綀D】
【附圖說明】
[0011]圖1是本發(fā)明實施例提供的一種裝置的結(jié)構(gòu)示意圖。
[0012]圖2是本發(fā)明實施例提供的一種裝置的結(jié)構(gòu)示意圖。
[0013]圖3是本發(fā)明實施例提供的一種方法的流程示意圖。
[0014]圖4是本發(fā)明實施例提供的一種負(fù)載分擔(dān)的方法流程示意圖。
【具體實施方式】
[0015]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明所述方案進(jìn)一步的詳細(xì)說明。
[0016]實施例一
[0017]本發(fā)明實施例提供一種健康探測裝置,應(yīng)用在負(fù)載分擔(dān)設(shè)備上,所述設(shè)備與若干個服務(wù)器相連,各服務(wù)器上可運行若干個服務(wù)進(jìn)程。請參考圖1,該裝置運行的基本硬件包括CPU、內(nèi)存、非易失性存儲器件以及其他硬件,CPU可通過執(zhí)行存儲器中存儲的相關(guān)指令來執(zhí)行相關(guān)操作,進(jìn)而實現(xiàn)健康探測,其他硬件可以包括通信接口等。
[0018]具體的,CPU可通過執(zhí)行相關(guān)指令,周期性發(fā)送狀態(tài)查詢指令至各服務(wù)器,以便獲取某一服務(wù)進(jìn)程在各服務(wù)器上的狀態(tài)參數(shù),所述狀態(tài)參數(shù)具體可包括該服務(wù)進(jìn)程在服務(wù)器上的CPU占有率,所述的某一服務(wù)進(jìn)程可以是系統(tǒng)中針對某一服務(wù)的進(jìn)程;在獲取各服務(wù)器的狀態(tài)參數(shù)后,根據(jù)狀態(tài)參數(shù),判斷各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)為正常、異?;驋炱?,也就是獲得各服務(wù)器針對該某一服務(wù)是正常、異?;驋炱?。這樣,該健康探測裝置就可以判斷出哪一臺服務(wù)器可以為該服務(wù)提供正常的處理能力,來正常處理報文,從而可在利用服務(wù)器進(jìn)行負(fù)載分擔(dān)時,獲取各服務(wù)器針對某一服務(wù)的處理能力為正常、異常或掛起,以便對該服務(wù)進(jìn)行負(fù)載分擔(dān)的處理,這樣,對正常的服務(wù)器可正常進(jìn)行報文的負(fù)載分擔(dān),對異常的服務(wù)器則不再進(jìn)行負(fù)載分擔(dān),對掛起的服務(wù)器可繼續(xù)負(fù)擔(dān)舊有連接的服務(wù),這樣,負(fù)載分擔(dān)設(shè)備在進(jìn)行負(fù)載分擔(dān)時,可根據(jù)不同服務(wù)器針對不同服務(wù)的狀態(tài),進(jìn)行負(fù)載分擔(dān)處理,避免服務(wù)器處理能力有限或不能提供該服務(wù)的處理而導(dǎo)致服務(wù)無法及時處理的問題;同時,也可避免了服務(wù)器由于過載而導(dǎo)致癱瘓的問題。
[0019]實施例二
[0020]本發(fā)明實施例提供一種健康探測裝置,應(yīng)用在負(fù)載分擔(dān)設(shè)備上,所述設(shè)備與若干服務(wù)器相連,各服務(wù)器上可運行若干個服務(wù)進(jìn)程。該裝置包括查詢單元01和判斷單元02,如圖2所示。
[0021]其中,查詢單元01用于周期性發(fā)送狀態(tài)查詢指令至各服務(wù)器,以便獲取某一服務(wù)進(jìn)程在各服務(wù)器上的狀態(tài)參數(shù),所述狀態(tài)參數(shù)包括所述服務(wù)進(jìn)程在服務(wù)器上的CPU占用率。由于所述裝置應(yīng)用在負(fù)載分擔(dān)設(shè)備上,而負(fù)載分擔(dān)設(shè)備通常會與若干個服務(wù)器相連,所以查詢單元01在發(fā)送狀態(tài)查詢指令的時候,會給每一個服務(wù)器發(fā)送狀態(tài)查詢指令,且該查詢指令是針對一個服務(wù)進(jìn)程的查詢,具體實現(xiàn)時可攜帶表示該服務(wù)進(jìn)程的標(biāo)識等信息。
[0022]另外,由于在每個服務(wù)器上,同一時間內(nèi)通常是會運行多個服務(wù)進(jìn)程的,例如ftpd(文件傳送協(xié)議駐留程序)、tftpd (文件傳送協(xié)議駐留服務(wù)程序)、httpd (超文本傳輸送協(xié)議守護(hù)程序)等,為了能夠準(zhǔn)確分析出各服務(wù)器真實的狀態(tài),查詢單元01—般會針對某一個服務(wù)進(jìn)程發(fā)送狀態(tài)查詢指令,也就是針對某一服務(wù)來進(jìn)行健康探測,這樣獲取到的服務(wù)器狀態(tài)參數(shù)通常是針對該服務(wù)進(jìn)程的,后續(xù)判斷單元02對于該服務(wù)器狀態(tài)參數(shù)的分析通常也是針對該服務(wù)進(jìn)程。
[0023]查詢單元01除了可以發(fā)送狀態(tài)查詢指令至各服務(wù)器,還可以向各服務(wù)器發(fā)送性能查詢指令。需要說明的是,為了能夠及時獲取到各服務(wù)器的狀態(tài),所以查詢單元01會周期性的發(fā)送狀態(tài)查詢指令,各服務(wù)器在接收到狀態(tài)查詢指令后,會反饋狀態(tài)參數(shù),這樣就能夠及時獲知該服務(wù)器當(dāng)前狀態(tài);而性能查詢指令,由于服務(wù)器的性能參數(shù)基本上不會改變,因此可以是有服務(wù)器新加入時發(fā)送,以便能夠獲取該服務(wù)器的性能,新加入的服務(wù)器接收到性能查詢指令后,就會反饋性能參數(shù),以便后續(xù)分析,當(dāng)然,本實施例也不限制按一定的周期發(fā)送,或者按需發(fā)送,例如需要進(jìn)行負(fù)載分擔(dān)時發(fā)送,以便負(fù)載分擔(dān)時可基于服務(wù)器反饋的性能參數(shù)進(jìn)行負(fù)載分擔(dān)。
[0024]由上可知,在通過查詢單元01的狀態(tài)查詢后,判斷單元02會獲取到各服務(wù)器反饋來的狀態(tài)參數(shù),判斷單元02可以根據(jù)所述狀態(tài)參數(shù),判斷該服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)為正常,或為異常,或為掛起。其中,所述判斷單元02根據(jù)狀態(tài)參數(shù)判斷該服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)的具體過程是:設(shè)定第一閾值和第二閾值,其中,第一閾值小于第二閾值;若狀態(tài)參數(shù)小于第一閾值,則判斷所述狀態(tài)為正常;若狀態(tài)參數(shù)大于第一閾值,小于第二閾值,則判斷所述狀態(tài)為掛起;若狀態(tài)參數(shù)大于第二閾值,則判斷所述狀態(tài)為異常。實際應(yīng)用中,該狀態(tài)參數(shù)也可包括多個不同的值,例如服務(wù)器CPU占用率等,這時,可針對不同的參數(shù)值設(shè)定有不同的閾值范圍,以將獲得的參數(shù)值與相應(yīng)設(shè)定的閾值比較,確定服務(wù)器的狀態(tài)。
[0025]這里需進(jìn)行說明,所述第一閾值和第二閾值,是針對每個服務(wù)器上所運行的某一個服務(wù)程序的一個狀態(tài)參數(shù)而設(shè)定的。也就是說,每一個狀態(tài)參數(shù)都會對應(yīng)設(shè)置第一閾值和第二閾值。而且,每個狀態(tài)參數(shù)之間是“或”的關(guān)系,也就是說,在若干個狀態(tài)參數(shù)中,只要有一個狀態(tài)參數(shù)大于第一閾值,小于第二閾值,則判斷所述狀態(tài)為掛起;或者是,在若干個狀態(tài)參數(shù)中,只要有一個狀態(tài)參數(shù)大于第二閾值,則判斷所述狀態(tài)為異常。
[0026]具體地,所述服務(wù)器的狀態(tài)參數(shù),除了可以包括服務(wù)進(jìn)程在服務(wù)器上的CPU占用率,還可以包括服務(wù)器CPU占用率和服務(wù)器內(nèi)存占用率等狀態(tài)參數(shù),判斷單元02可以根據(jù)以上狀態(tài)參數(shù)對服務(wù)器的狀態(tài)進(jìn)行判斷。當(dāng)然,所述狀態(tài)參數(shù)除了可以包括服務(wù)器CPU占用率、服務(wù)器內(nèi)存占用率以及進(jìn)程CPU占用率這三種上述狀態(tài)參數(shù),還可以根據(jù)其他的狀態(tài)參數(shù),但判斷的準(zhǔn)確性不如上述三個狀態(tài)參數(shù)高。這里需要說明的是,通常情況下,所述三個狀態(tài)參數(shù)之間是或的判斷關(guān)系,其具體判斷過程,后續(xù)部分會進(jìn)行詳細(xì)的說明。
[0027]舉例說明一下,現(xiàn)在有服務(wù)器1、服務(wù)器2和服務(wù)器3,這三臺服務(wù)器上均運行著服務(wù)進(jìn)程A和服務(wù)進(jìn)程B。查詢單元01可向服務(wù)器1、服務(wù)器2和服務(wù)器3分別發(fā)送針對服務(wù)進(jìn)程A和服務(wù)進(jìn)程B的狀態(tài)查詢指令,服務(wù)器1、服務(wù)器2和服務(wù)器3則會分別反饋各服務(wù)進(jìn)程相對應(yīng)的狀態(tài)參數(shù):服務(wù)器CPU占用率、服務(wù)器內(nèi)存占用率及進(jìn)程CPU占用率,各參數(shù)可見表I所示。
[0028]
【權(quán)利要求】
1.一種健康探測裝置,應(yīng)用在負(fù)載分擔(dān)設(shè)備上,所述設(shè)備與若干個服務(wù)器相連,其特征在于,所述裝置包括: 查詢單元,用于周期性發(fā)送狀態(tài)查詢指令至各服務(wù)器,以便獲取某一服務(wù)進(jìn)程在各服務(wù)器上的狀態(tài)參數(shù),所述狀態(tài)參數(shù)包括所述服務(wù)進(jìn)程在服務(wù)器上的CPU占用率; 判斷單元,用于在獲取各服務(wù)器的狀態(tài)參數(shù)后,根據(jù)狀態(tài)參數(shù),判斷各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)為正常、異常或掛起。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述判斷單元根據(jù)狀態(tài)參數(shù)判斷各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)的具體過程是:設(shè)定第一閾值和第二閾值,其中,第一閾值小于第二閾值;若狀態(tài)參數(shù)小于第一閾值,則判斷所述狀態(tài)為正常;若狀態(tài)參數(shù)大于第一閾值,小于第二閾值,則判斷所述狀態(tài)為掛起;若狀態(tài)參數(shù)大于第二閾值,則判斷所述狀態(tài)為異堂巾O
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,還包括分發(fā)單元,具體用于針對所述服務(wù)進(jìn)程的服務(wù)器的狀態(tài)為掛起的各服務(wù)器,停止發(fā)送新的連接的該服務(wù)進(jìn)程的報文,以及用于針對所述服務(wù)進(jìn)程的服務(wù)器的狀態(tài)為異常的各服務(wù)器,停止發(fā)送該服務(wù)進(jìn)程的所有報文,以及用于針對所述服務(wù)進(jìn)程的服務(wù)器的狀態(tài)為正常的各服務(wù)器,利用負(fù)載分擔(dān)將該服務(wù)進(jìn)程的報文分發(fā)至各服務(wù)器。
4.根據(jù)權(quán)利要求1或3所述的裝置,其特征在于,所述查詢單元還用于向狀態(tài)正常的各服務(wù)器發(fā)送性能查詢指令,以便獲取各服務(wù)器的性能參數(shù)。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述分發(fā)單元,具體用于根據(jù)各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài) 和性能參數(shù),利用負(fù)載分擔(dān)分發(fā)報文。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述分發(fā)單元,具體用于針對所述服務(wù)進(jìn)程的服務(wù)器的狀態(tài)為正常的服務(wù)器,根據(jù)各服務(wù)器的性能參數(shù),確定各服務(wù)器的權(quán)重,并基于各服務(wù)器的權(quán)重進(jìn)行負(fù)載分擔(dān),將該服務(wù)進(jìn)程的報文分發(fā)至各服務(wù)器。
7.一種健康探測方法,應(yīng)用在負(fù)載分擔(dān)設(shè)備上,所述設(shè)備與若干個服務(wù)器相連,其特征在于,所述方法包括: 周期性發(fā)送狀態(tài)查詢指令至各服務(wù)器,以便獲取某一服務(wù)進(jìn)程在各服務(wù)器上的狀態(tài)參數(shù),所述狀態(tài)參數(shù)包括所述服務(wù)進(jìn)程在服務(wù)器上的CPU占用率; 在獲取各服務(wù)器的狀態(tài)參數(shù)后,根據(jù)狀態(tài)參數(shù),判斷各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)為正常、異?;驋炱稹?br>
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述根據(jù)狀態(tài)參數(shù)判斷各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)的具體過程是: 設(shè)定第一閾值和第二閾值,其中,第一閾值小于第二閾值; 若狀態(tài)參數(shù)小于第一閾值,則判斷所述狀態(tài)為正常;若狀態(tài)參數(shù)大于第一閾值,小于第二閾值,則判斷所述狀態(tài)為掛起;若狀態(tài)參數(shù)大于第二閾值,則判斷所述狀態(tài)為異常。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括: 針對所述服務(wù)進(jìn)程的服務(wù)器的狀態(tài)為掛起的各服務(wù)器,停止發(fā)送新的連接的該服務(wù)進(jìn)程的報文; 針對所述服務(wù)進(jìn)程的服務(wù)器的狀態(tài)為異常的各服務(wù)器,停止發(fā)送該服務(wù)進(jìn)程的所有報 文;針對所述服務(wù)進(jìn)程的服務(wù)器的狀態(tài)為正常的各服務(wù)器,利用負(fù)載分擔(dān)將該服務(wù)進(jìn)程的報文發(fā)送至各服務(wù)器。
10.根據(jù)權(quán)利要求7或9所述的方法,其特征在于,所述方法還包括:向狀態(tài)正常的各服務(wù)器發(fā)送性能查詢指令,以便獲取各服務(wù)器的性能參數(shù)。
11.根據(jù)權(quán)利要求10所的述方法,其特征在于,所述方法還包括:根據(jù)各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)和性能參數(shù),利用負(fù)載分擔(dān)分發(fā)報文。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述根據(jù)各服務(wù)器針對所述服務(wù)進(jìn)程的狀態(tài)和性能參數(shù),利用負(fù)載分擔(dān)分發(fā)報文,具體包括: 針對所述服務(wù)進(jìn)程的服務(wù)器的狀態(tài)為正常的服務(wù)器,根據(jù)各服務(wù)器的性能參數(shù),確定各服務(wù)器的權(quán)重; 基于各服務(wù)器的權(quán)重進(jìn)行負(fù)載分`擔(dān),將該服務(wù)進(jìn)程的報文分發(fā)至各服務(wù)器。
【文檔編號】H04L12/26GK103873293SQ201410079007
【公開日】2014年6月18日 申請日期:2014年3月5日 優(yōu)先權(quán)日:2014年3月5日
【發(fā)明者】胡國華 申請人:杭州華三通信技術(shù)有限公司