務(wù)服務(wù)器集群,即使單臺(tái)業(yè)務(wù)服務(wù)器也可同機(jī)部署多個(gè)進(jìn)程;其中,多個(gè)進(jìn)程之間可使用共享內(nèi)存、TCP鏈接等介質(zhì)進(jìn)行進(jìn)程間通信。
[0141]以消息緩存服務(wù)為例,其服務(wù)可由10個(gè)進(jìn)程協(xié)同配合完成,假設(shè)10個(gè)進(jìn)程同機(jī)部署。
[0142]其中,ccd進(jìn)程,主要用于管理監(jiān)聽端口,接受處理建立TCP鏈接,接收TCP鏈接上的數(shù)據(jù),將完整請(qǐng)求包寫入ccd進(jìn)程與mcd進(jìn)程(可表示為ccd->mcd)之間的共享內(nèi)存,通知mcd進(jìn)程來(lái)讀取。
[0143]mcd進(jìn)程,主要用于ccd進(jìn)程的新請(qǐng)求通知,并讀取共享內(nèi)存數(shù)據(jù),生成請(qǐng)求任務(wù),選擇某個(gè)submcd進(jìn)程(如submcd-N),將任務(wù)寫入mcd進(jìn)程與submcd-N進(jìn)程(可表示為mcd->submcd-N)之間的共享內(nèi)存,并通知其來(lái)讀取。
[0144]submcd進(jìn)程I?7 (submcd-1?submcd-7),總共7個(gè)進(jìn)程,各自獨(dú)立,且功能相同。接受mcd進(jìn)程的新任務(wù)通知,并讀取共享內(nèi)存數(shù)據(jù),執(zhí)行任務(wù)。如果有子任務(wù),則找到子任務(wù)的服務(wù)地址,將子任務(wù)寫入submcd-N進(jìn)程與dcc進(jìn)程(可表示為submcd_N->dcc)之間的共享內(nèi)存,通知dcc進(jìn)程來(lái)讀?。蝗绻蝿?wù)執(zhí)行完畢,將回復(fù)包寫入submcd-N進(jìn)程與ccd進(jìn)程(表示為submcd-N_>ccd)之間的共享內(nèi)存,并通知ccd進(jìn)程來(lái)讀取。
[0145]dcc進(jìn)程,主要用于建立與子任務(wù)服務(wù)地址之間的TCP鏈接,然后將子任務(wù)發(fā)送出去。
[0146]具體的服務(wù)進(jìn)程的監(jiān)控方式可如下:
[0147]在業(yè)務(wù)服務(wù)器接收到服務(wù)請(qǐng)求的情況下,監(jiān)控裝置確定提供所述服務(wù)請(qǐng)求所請(qǐng)求的服務(wù)所需要的10個(gè)進(jìn)程;基于所述10個(gè)進(jìn)程之間的訪問關(guān)系計(jì)算得到所述10個(gè)進(jìn)程所形成的數(shù)據(jù)處理路徑,所述10個(gè)進(jìn)程與所述數(shù)據(jù)處理路徑中的10個(gè)節(jié)點(diǎn)之間一一對(duì)應(yīng),數(shù)據(jù)處理路徑中的所述10個(gè)節(jié)點(diǎn)通過(guò)有向線段連接;展示所述數(shù)據(jù)處理路徑。向數(shù)據(jù)處理路徑的起始節(jié)點(diǎn)所對(duì)應(yīng)的submcd進(jìn)程周期性的發(fā)送心跳請(qǐng)求包,數(shù)據(jù)處理路徑中的各非結(jié)束節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程沿著規(guī)劃數(shù)據(jù)處理路徑向下一跳進(jìn)程轉(zhuǎn)發(fā)接收到的心跳請(qǐng)求包,直到數(shù)據(jù)處理路徑的結(jié)束節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程。監(jiān)控裝置接收數(shù)據(jù)處理路徑的每個(gè)節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程上報(bào)的心跳請(qǐng)求包的實(shí)際轉(zhuǎn)發(fā)量或?qū)嶋H接收量;監(jiān)控裝置匯聚每個(gè)節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程上報(bào)的跳請(qǐng)求包的實(shí)際轉(zhuǎn)發(fā)量或?qū)嶋H接收量,監(jiān)控裝置比較出所述數(shù)據(jù)處理路徑上的各節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程上報(bào)的心跳請(qǐng)求包的實(shí)際接收量與所述數(shù)據(jù)處理路徑上的各節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程的心跳請(qǐng)求包的理論接收量的差異。監(jiān)控裝置在比較出所述數(shù)據(jù)處理路徑上的某節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程上報(bào)的心跳請(qǐng)求包的實(shí)際接收量與該進(jìn)程的心跳請(qǐng)求包的理論接收量之間的差異超出預(yù)設(shè)范圍的情況下進(jìn)行異常告警。
[0148]其中,假設(shè)數(shù)據(jù)處理路徑的文字描述如下:
[0149]Submcd 進(jìn)程->dcc 進(jìn)程->ccd 進(jìn)程->mcd 進(jìn)程->submcd 進(jìn)程->ccd 進(jìn)程->dcc進(jìn)程_>submcd進(jìn)程。
[0150]可視化的數(shù)據(jù)處理路徑可如圖4-a舉例所示,其中,在圖4-a舉例所示的數(shù)據(jù)處理路徑中,10個(gè)進(jìn)程中的每個(gè)進(jìn)程抽象為I個(gè)節(jié)點(diǎn),進(jìn)程間通信的介質(zhì)以及方向被抽象為有向線段。數(shù)據(jù)處理路徑遍歷所有節(jié)點(diǎn)和有向線段。有向線段L2和L6表示TCP鏈接,其余有向線段表示共享內(nèi)存介質(zhì)。
[0151]例如,如果ccd進(jìn)程不可用或者網(wǎng)絡(luò)不可用,則ccd進(jìn)程上報(bào)的TCP鏈接L2的實(shí)際接收量就會(huì)降低,這就觸發(fā)監(jiān)控裝置進(jìn)行響應(yīng)告警。例如圖4-b中ccd進(jìn)程所對(duì)應(yīng)節(jié)點(diǎn)被突出顯示(被氣泡籠罩),以提示ccd進(jìn)程可能存在異常。例如圖4-c中ccd進(jìn)程和dcc進(jìn)程所對(duì)應(yīng)節(jié)點(diǎn)被突出顯示(被氣泡籠罩),以提示ccd進(jìn)程和dcc進(jìn)程可能存在異常。
[0152]又例如,在submcd進(jìn)程不可用或者mcd進(jìn)程與submcd進(jìn)程之間的共享內(nèi)存異常的情況下,submcd進(jìn)程上報(bào)的鏈路L4的實(shí)際接收量會(huì)降低,這就觸發(fā)監(jiān)控裝置進(jìn)行響應(yīng)告警。例如圖4-d中submcd進(jìn)程所對(duì)應(yīng)節(jié)點(diǎn)被突出顯示(被氣泡籠罩),以提示submcd進(jìn)程可能存在異常。例如圖4-e中submcd進(jìn)程和mcd進(jìn)程所對(duì)應(yīng)節(jié)點(diǎn)被突出顯示(被氣泡籠罩),以提示submcd進(jìn)程和mcd進(jìn)程可能存在異常。
[0153]其中,監(jiān)控裝置通過(guò)匯總數(shù)據(jù)處理路徑上的各節(jié)點(diǎn)所對(duì)應(yīng)進(jìn)程的心跳請(qǐng)求包的實(shí)際轉(zhuǎn)發(fā)量,并且比較進(jìn)程的心跳請(qǐng)求包的實(shí)際轉(zhuǎn)發(fā)量和理論轉(zhuǎn)發(fā)量之間的差異,有利于較為清晰的了解各個(gè)進(jìn)程的工作狀態(tài),進(jìn)而可以較為清晰的了解各個(gè)進(jìn)程的服務(wù)質(zhì)量,這樣就有利于較大的提高服務(wù)進(jìn)程的工作狀態(tài)的可監(jiān)控性。
[0154]其中,監(jiān)控裝置通過(guò)發(fā)出提示異常進(jìn)程和/或異常進(jìn)程的上游進(jìn)程(例如上一跳進(jìn)程或上上一跳進(jìn)程等)存在異常的告警,有利于較為快速的進(jìn)行異常進(jìn)程的定位,進(jìn)而有利于快速的排除異常故障。
[0155]本發(fā)明實(shí)施例還提供用于實(shí)施上述方案的相關(guān)裝置。
[0156]參見圖5,本發(fā)明實(shí)施例提供的一種服務(wù)進(jìn)程的監(jiān)控裝置500,可包括:
[0157]確定單元510,用于當(dāng)業(yè)務(wù)服務(wù)器接收到服務(wù)請(qǐng)求的情況下,確定提供所述服務(wù)請(qǐng)求所請(qǐng)求的服務(wù)所需要的K個(gè)進(jìn)程;
[0158]計(jì)算單元520,用于基于所述K個(gè)進(jìn)程之間的訪問關(guān)系計(jì)算得到所述K個(gè)進(jìn)程所形成的數(shù)據(jù)處理路徑,其中,所述K為大于I的整數(shù),其中,所述K個(gè)進(jìn)程與所述數(shù)據(jù)處理路徑中的K個(gè)節(jié)點(diǎn)之間一一對(duì)應(yīng),所述數(shù)據(jù)處理路徑中的所述K個(gè)節(jié)點(diǎn)通過(guò)有向線段連接;
[0159]展示單元530,用于展示所述數(shù)據(jù)處理路徑。
[0160]可選的,在本發(fā)明一些可能的實(shí)施方式中,所述監(jiān)控裝置500還包括:
[0161]發(fā)送單元540,用于向所述數(shù)據(jù)處理路徑的起始節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程周期性的發(fā)送測(cè)試包,其中,所述數(shù)據(jù)處理路徑上的各非結(jié)束節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程向下一跳節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程轉(zhuǎn)發(fā)接收到的測(cè)試包。
[0162]可選的,在本發(fā)明一些可能的實(shí)施方式中,所述監(jiān)控裝置還可包括匯總告警單元550。
[0163]其中,所述匯總告警單元550,用于接收所述數(shù)據(jù)處理路徑上的各節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程上報(bào)的測(cè)試包的實(shí)際接收量;在所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程ci上報(bào)的測(cè)試包的實(shí)際接收量與所述進(jìn)程ci的測(cè)試包的理論接收量之間的差異超出預(yù)設(shè)范圍的情況下進(jìn)行異常告警。
[0164]或者,
[0165]所述匯總告警單元550,用于接收所述數(shù)據(jù)處理路徑上的各節(jié)點(diǎn)所對(duì)應(yīng)的進(jìn)程上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量;在所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量與所述進(jìn)程ci的測(cè)試包的理論轉(zhuǎn)發(fā)量的差異超出預(yù)設(shè)范圍的情況下進(jìn)行異常告警。
[0166]可選的,在本發(fā)明一些可能的實(shí)施方式中,所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程ci上報(bào)的測(cè)試包的實(shí)際接收量與所述進(jìn)程ci的測(cè)試包的理論接收量的差異超出預(yù)設(shè)范圍,包括:
[0167]所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際接收量與所述進(jìn)程ci的測(cè)試包的理論接收量之間的差值的絕對(duì)值大于第一閾值;
[0168]或者,在所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際接收量大于所述進(jìn)程Ci的測(cè)試包的理論接收量的情況下,所述進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際接收量除以所述進(jìn)程Ci的測(cè)試包的理論接收量得到的商大于第二閾值;
[0169]或者,在所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際接收量小于所述進(jìn)程Ci的測(cè)試包的理論接收量的情況下,所述進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際接收量除以所述進(jìn)程Ci的測(cè)試包的理論接收量得到的商小于第三閾值;
[0170]或者,所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際接收量與所述進(jìn)程Ci的測(cè)試包的理論接收量之間的差值的絕對(duì)值,除以所述進(jìn)程Ci的測(cè)試包的理論接收量而得到的商大于第四閾值;
[0171]或者,所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際接收量與所述進(jìn)程Ci的測(cè)試包的理論接收量之間的差值的絕對(duì)值,除以所述進(jìn)程Ci的測(cè)試包的實(shí)際接收量而得到的商大于第五閾值。
[0172]可選的,在本發(fā)明一些可能的實(shí)施方式中,所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量與所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量的差異超出預(yù)設(shè)范圍,包括:所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量與所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量之間的差值的絕對(duì)值大于第六閾值;或者,在所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量大于所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量的情況下,所述進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量除以所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量得到的商大于第七閾值;或者,在所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量小于所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量的情況下,所述進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量除以所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量得到的商小于第八閾值;或者,所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量與所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量之間的差值的絕對(duì)值,除以所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量而得到的商大于第九閾值;或者,所述數(shù)據(jù)處理路徑上的節(jié)點(diǎn)i所對(duì)應(yīng)的進(jìn)程Ci上報(bào)的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量與所述進(jìn)程Ci的測(cè)試包的理論轉(zhuǎn)發(fā)量之間的差值的絕對(duì)值,除以所述進(jìn)程Ci的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量而得到的商大于第十閾值。
[0173]可選的,在本發(fā)明一些可能的實(shí)施方式中,在進(jìn)行異常告警的方面,所述匯總告警單元530可具體用于,發(fā)出提示所述進(jìn)程ci和/或所述進(jìn)程ci的上游進(jìn)程存在異常的告靈目ο
[0174]可以理解的是,本實(shí)施例的服務(wù)進(jìn)程的監(jiān)控裝置500的各功能模塊的功能可根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過(guò)程可以參照上述方法實(shí)施例的相關(guān)描述,此處不再贅述。服務(wù)進(jìn)程的監(jiān)控裝置500可部署于業(yè)務(wù)服務(wù)器中或獨(dú)立于業(yè)務(wù)服務(wù)器。
[0175]可以看出,本實(shí)施例的技術(shù)方案中,在業(yè)務(wù)服務(wù)器接收到了服務(wù)請(qǐng)求的情況下,服務(wù)進(jìn)程的監(jiān)控裝置500可確定提供所述服務(wù)請(qǐng)求所請(qǐng)求的服務(wù)所需要的K個(gè)進(jìn)程;基于所述K個(gè)進(jìn)程之間的訪問關(guān)系計(jì)算得到所述K個(gè)進(jìn)程所形成的數(shù)據(jù)處理路徑并展示所述數(shù)據(jù)處理路徑,由于形成了可視化的數(shù)據(jù)處理路徑來(lái)展示,K個(gè)進(jìn)程與所述數(shù)據(jù)處理路徑中的K個(gè)節(jié)點(diǎn)之間一一對(duì)應(yīng),所述數(shù)據(jù)處理路徑中的K個(gè)節(jié)點(diǎn)通過(guò)有向線段連接,基于可視化的數(shù)據(jù)處理路徑有利于較為清晰呈現(xiàn)服務(wù)進(jìn)程之間的訪問關(guān)系,有利于較為清晰的呈現(xiàn)服務(wù)數(shù)據(jù)在進(jìn)程之間的流轉(zhuǎn)關(guān)系,這就有利于提高服務(wù)進(jìn)程的工作狀態(tài)的可監(jiān)控性,進(jìn)而使得在業(yè)務(wù)服務(wù)的提供出現(xiàn)異常時(shí)快速進(jìn)行異常定位變得可能。
[0176]其中,通過(guò)匯總所述數(shù)據(jù)處理路徑上的各節(jié)點(diǎn)所對(duì)應(yīng)進(jìn)程的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量/實(shí)際接收量,比較進(jìn)程的測(cè)試包的實(shí)際轉(zhuǎn)發(fā)量/實(shí)際接收量和理論轉(zhuǎn)發(fā)量/理論接收量之間的差異,有利于較清晰的了解各個(gè)進(jìn)程的工作狀態(tài),進(jìn)而可以較為清晰的了解各個(gè)進(jìn)程的服務(wù)質(zhì)量,這樣就有利于較大的提高服務(wù)進(jìn)程的工作狀態(tài)的可監(jiān)控性。
[0177]其中,通過(guò)發(fā)出提示所述進(jìn)程Ci和/或所述進(jìn)程Ci的上游進(jìn)程(例如上一跳進(jìn)程或上上一跳進(jìn)程等)存在異常的告警,有利于較為快速的進(jìn)行異常進(jìn)程的定位,進(jìn)而有利于快速的排除異常故障。
[0178]參見圖6,圖6是本發(fā)明的另一實(shí)施例提供的服務(wù)進(jìn)程的監(jiān)控裝置600的結(jié)構(gòu)框圖。其中,服務(wù)進(jìn)程的監(jiān)控裝置600可包括:至少I個(gè)處理器601,存儲(chǔ)器605和至少I個(gè)通信總線602。其中,通信總線602用于實(shí)現(xiàn)這些組件之間的連接通信。
[0179]其中,該服務(wù)進(jìn)程的監(jiān)控裝置600可選的可以包含至少I個(gè)網(wǎng)絡(luò)接口 604和/或用戶接口 603,用戶接口 603可以包括顯示器(例如觸摸屏、IXD、全息成像(Holographic)、CRT或者投影(Projector)等)、點(diǎn)擊設(shè)備(例如鼠標(biāo)或軌跡球(trackball)觸感板或觸摸屏等)、攝像頭和/或拾音裝置等。
[0180]其中,存儲(chǔ)器605可以包括只讀存儲(chǔ)器和隨機(jī)存取存儲(chǔ)器,并向處理器601提供指令和數(shù)據(jù)。存儲(chǔ)器605中的一部分還可以包括非易失性隨機(jī)存取存儲(chǔ)器。
[0181]在一些實(shí)施方式中,存儲(chǔ)器605存儲(chǔ)了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴(kuò)展集:
[0182]操作系統(tǒng)6051,包含各種系