一種服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法及裝置制造方法
【專(zhuān)利摘要】本申請(qǐng)?zhí)峁┝艘环N服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法及裝置,可以將其看作是定時(shí)器,該定時(shí)器持續(xù)記錄服務(wù)模塊處理請(qǐng)求進(jìn)程所用的時(shí)長(zhǎng),由于服務(wù)處理模塊在處理請(qǐng)求進(jìn)程時(shí)會(huì)生成函數(shù)調(diào)用數(shù)據(jù),并且函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在內(nèi)存棧中,若時(shí)長(zhǎng)達(dá)到第一時(shí)間閾值但服務(wù)模塊仍未處理完畢所述請(qǐng)求進(jìn)程,則認(rèn)為該服務(wù)模塊被阻塞,進(jìn)而輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù),以供相關(guān)人員分析阻塞問(wèn)題所在,若時(shí)長(zhǎng)達(dá)到第二時(shí)間閾值但阻塞情況仍未消除,則將函數(shù)調(diào)用數(shù)據(jù)進(jìn)行保存,并觸發(fā)服務(wù)模塊重啟,從而相關(guān)人員可以在服務(wù)模塊重啟后,仍能獲取到保存的函數(shù)調(diào)用數(shù)據(jù)進(jìn)行后續(xù)分析。
【專(zhuān)利說(shuō)明】一種服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法及裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及服務(wù)監(jiān)測(cè)【技術(shù)領(lǐng)域】,尤其是對(duì)服務(wù)長(zhǎng)時(shí)間無(wú)響應(yīng)狀況的監(jiān)測(cè)方法及裝置。
【背景技術(shù)】
[0002]終端設(shè)備如手機(jī)、PAD等,必須安裝有操作系統(tǒng)才能正常運(yùn)行。操作系統(tǒng)可以為各種應(yīng)用軟件、驅(qū)動(dòng)程序等提供基礎(chǔ)的服務(wù)。在終端設(shè)備發(fā)布前,常常需要進(jìn)行系統(tǒng)功能的測(cè)試,若系統(tǒng)提供服務(wù)的過(guò)程即服務(wù)響應(yīng)過(guò)程出現(xiàn)問(wèn)題,需要對(duì)提供服務(wù)的模塊進(jìn)行調(diào)試,以找到原因所在并進(jìn)行修改。
[0003]服務(wù)響應(yīng)過(guò)程中,常常出現(xiàn)的是服務(wù)阻塞情況,即系統(tǒng)服務(wù)長(zhǎng)時(shí)間不響應(yīng)接收到的請(qǐng)求。因此,亟需一種服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,以監(jiān)測(cè)服務(wù)的響應(yīng)過(guò)程,從而幫助開(kāi)發(fā)者找到阻塞原因。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供了一種服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法及裝置,用以實(shí)現(xiàn)對(duì)服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)。為實(shí)現(xiàn)所述目的,本發(fā)明提供的技術(shù)方案如下:
[0005]一種服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,包括:
[0006]當(dāng)服務(wù)模塊接收到請(qǐng)求進(jìn)程時(shí),獲取第一時(shí)間閾值及第二時(shí)間閾值;所述第二時(shí)間閾值大于所述第一時(shí)間閾值;
[0007]以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度;
[0008]當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第一時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù);其中,所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)生成函數(shù)調(diào)用數(shù)據(jù),且所述函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在所述內(nèi)存棧中;
[0009]當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),將所述函數(shù)調(diào)用數(shù)據(jù)保存至存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)模塊重啟。
[0010]上述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,優(yōu)選地,還包括:
[0011]以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)的函數(shù)傳入?yún)?shù)以及函數(shù)調(diào)用順序。
[0012]上述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,優(yōu)選地,在當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前還包括:
[0013]將記錄的所述函數(shù)傳入?yún)?shù)及所述函數(shù)調(diào)用順序保存至所述存儲(chǔ)設(shè)備。
[0014]上述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,優(yōu)選地,在所述當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前還包括:
[0015]獲取所述請(qǐng)求進(jìn)程的上下文信息,并將所述上下文信息保存至所述存儲(chǔ)設(shè)備。
[0016]上述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,優(yōu)選地,在所述以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度的同時(shí),還包括:
[0017]當(dāng)所述服務(wù)模塊處理完畢所述請(qǐng)求進(jìn)程且所述服務(wù)模塊未重啟時(shí),停止所述時(shí)間長(zhǎng)度的持續(xù)記錄,并將停止時(shí)的時(shí)間長(zhǎng)度確定為本次響應(yīng)時(shí)長(zhǎng);
[0018]當(dāng)存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取所述平均響應(yīng)時(shí)長(zhǎng),將所述平均響應(yīng)時(shí)長(zhǎng)與所述本次響應(yīng)時(shí)長(zhǎng)的平均值作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ);
[0019]當(dāng)未存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),將所述本次響應(yīng)時(shí)長(zhǎng)作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ)。
[0020]上述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,優(yōu)選地,所述獲取第一時(shí)間閾值包括:
[0021]當(dāng)存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取所述平均響應(yīng)時(shí)長(zhǎng)作為第一時(shí)間閾值;
[0022]當(dāng)未存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取預(yù)設(shè)時(shí)間閾值作為第一時(shí)間閾值。
[0023]本申請(qǐng)還提供了一種服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置,包括:
[0024]時(shí)間閾值獲取模塊,用于當(dāng)服務(wù)模塊接收到請(qǐng)求進(jìn)程時(shí),獲取第一時(shí)間閾值及第二時(shí)間閾值;所述第二時(shí)間閾值大于所述第一時(shí)間閾值;
[0025]處理時(shí)長(zhǎng)記錄模塊,用于以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度;
[0026]函數(shù)調(diào)用數(shù)據(jù)輸出模塊,用于當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第一時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù);其中,所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)生成函數(shù)調(diào)用數(shù)據(jù),且所述函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在所述內(nèi)存棧中;
[0027]函數(shù)調(diào)用數(shù)據(jù)保存模塊,用于當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),將所述函數(shù)調(diào)用數(shù)據(jù)保存至存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)豐吳塊重啟。
[0028]上述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置,優(yōu)選地,還包括:
[0029]函數(shù)參數(shù)及順序記錄模塊,用于以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)的函數(shù)傳入?yún)?shù)以及函數(shù)調(diào)用順序。
[0030]上述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置,優(yōu)選地,還包括:
[0031]函數(shù)參數(shù)及順序保存模塊,用于在當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前,將記錄的所述函數(shù)傳入?yún)?shù)及所述函數(shù)調(diào)用順序保存至所述存儲(chǔ)設(shè)備。
[0032]上述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置,優(yōu)選地,還包括:
[0033]上下文信息保存模塊,用于在所述當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前,獲取所述請(qǐng)求進(jìn)程的上下文信息,并將所述上下文信息保存至所述存儲(chǔ)設(shè)備。
[0034]綜合上述的技術(shù)方案來(lái)看,可以將本發(fā)明實(shí)施例提供的監(jiān)測(cè)方法及裝置看作是定時(shí)器進(jìn)程,該定時(shí)器進(jìn)程持續(xù)記錄服務(wù)模塊處理請(qǐng)求進(jìn)程所用的時(shí)長(zhǎng),由于服務(wù)處理模塊在處理請(qǐng)求進(jìn)程時(shí)會(huì)生成函數(shù)調(diào)用數(shù)據(jù),并且函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在內(nèi)存棧中,若時(shí)長(zhǎng)達(dá)到第一時(shí)間閾值但服務(wù)模塊仍未處理完畢所述請(qǐng)求進(jìn)程,則認(rèn)為該服務(wù)模塊被阻塞,進(jìn)而輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù),以供相關(guān)人員分析阻塞問(wèn)題所在,若時(shí)長(zhǎng)達(dá)到第二時(shí)間閾值但阻塞情況仍未消除,則將函數(shù)調(diào)用數(shù)據(jù)進(jìn)行保存,并觸發(fā)服務(wù)模塊重啟,從而相關(guān)人員可以在服務(wù)模塊重啟后,仍能獲取到保存的函數(shù)調(diào)用數(shù)據(jù)進(jìn)行后續(xù)分析。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0035]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0036]圖1為本發(fā)明實(shí)施例提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法的流程圖;
[0037]圖2為本發(fā)明另一實(shí)施例提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法的流程圖;
[0038]圖3為本發(fā)明又一實(shí)施例提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法的流程圖;
[0039]圖4為本發(fā)明實(shí)施例提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置的結(jié)構(gòu)示意圖;
[0040]圖5為本發(fā)明另一實(shí)施例提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0041]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0042]參見(jiàn)圖1,其示出了本發(fā)明實(shí)施例提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法的流程,具體包括以下步驟:
[0043]步驟SlOl:當(dāng)服務(wù)模塊接收到請(qǐng)求進(jìn)程時(shí),獲取第一時(shí)間閾值及第二時(shí)間閾值;所述第二時(shí)間閾值大于所述第一時(shí)間閾值。
[0044]其中,使用第一時(shí)間閾值及第二時(shí)間閾值監(jiān)測(cè)服務(wù)模塊處理請(qǐng)求進(jìn)程的時(shí)長(zhǎng)。需要說(shuō)明的是,第二時(shí)間閾值大于第一時(shí)間閾值,可選地,第二時(shí)間閾值是第一時(shí)間閾值的整數(shù)倍,如兩倍或三倍。
[0045]步驟S102:以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度。
[0046]其中,服務(wù)模塊接收到請(qǐng)求進(jìn)程后開(kāi)始處理該請(qǐng)求進(jìn)程,同時(shí),開(kāi)始記錄服務(wù)模塊處理該請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度。服務(wù)模塊處理請(qǐng)求進(jìn)程為現(xiàn)有技術(shù),且與請(qǐng)求進(jìn)程請(qǐng)求的內(nèi)容相對(duì)應(yīng)。例如,請(qǐng)求進(jìn)程為請(qǐng)求屏幕點(diǎn)亮的進(jìn)程,則服務(wù)模塊處理的是將屏幕點(diǎn)亮,又如請(qǐng)求進(jìn)程為請(qǐng)求調(diào)高音量的進(jìn)程,則服務(wù)模塊處理的是將音量調(diào)高。
[0047]需要說(shuō)明的是,本步驟是持續(xù)進(jìn)行的,直至所述服務(wù)模塊處理完畢所述請(qǐng)求進(jìn)程或者所述服務(wù)模塊重啟。但在持續(xù)記錄的過(guò)程中,如果出現(xiàn)某些情況,需要同時(shí)執(zhí)行下述步驟S103或步驟S104。即,若記錄的時(shí)間長(zhǎng)度達(dá)到了第一時(shí)間閾值但服務(wù)模塊并未處理完畢請(qǐng)求進(jìn)程時(shí),則執(zhí)行步驟S103中的輸出內(nèi)存棧中的函數(shù)調(diào)用關(guān)系;若記錄的時(shí)間長(zhǎng)度達(dá)到了第二時(shí)間閾值但服務(wù)模塊并未處理完畢請(qǐng)求進(jìn)程時(shí),則執(zhí)行步驟S104中的將所述函數(shù)調(diào)用關(guān)系保存至存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)模塊重啟。
[0048]步驟S103:當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第一時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù);其中,所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)生成函數(shù)調(diào)用數(shù)據(jù),且所述函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在所述內(nèi)存棧中。
[0049]我們可以知道的是,服務(wù)模塊處理該請(qǐng)求進(jìn)程時(shí),需要調(diào)用并執(zhí)行預(yù)先設(shè)置的多個(gè)函數(shù),且在調(diào)用并執(zhí)行函數(shù)時(shí)會(huì)生成函數(shù)調(diào)用數(shù)據(jù)。函數(shù)調(diào)用數(shù)據(jù)可以包括函數(shù)調(diào)用的開(kāi)始標(biāo)識(shí)及函數(shù)執(zhí)行的結(jié)束標(biāo)識(shí)。其中,函數(shù)調(diào)用的開(kāi)始標(biāo)識(shí)是在函數(shù)開(kāi)始被調(diào)用時(shí)生成的,表明開(kāi)始執(zhí)行該函數(shù);函數(shù)執(zhí)行的結(jié)束標(biāo)識(shí)是在函數(shù)被成功執(zhí)行完畢時(shí)生成的,表明成功執(zhí)行了調(diào)用的函數(shù)。
[0050]例如,服務(wù)模塊需要調(diào)用并執(zhí)行函數(shù)a,在調(diào)用函數(shù)a時(shí),在內(nèi)存棧中存儲(chǔ)函數(shù)a的開(kāi)始標(biāo)識(shí),在成功執(zhí)行完函數(shù)a時(shí),在內(nèi)存棧中存儲(chǔ)函數(shù)a的結(jié)束標(biāo)識(shí)。
[0051]需要說(shuō)明的是,各個(gè)函數(shù)之間具有預(yù)先設(shè)置的執(zhí)行順序,因此,函數(shù)調(diào)用數(shù)據(jù)是依次生成的,可以反映服務(wù)模塊處理請(qǐng)求進(jìn)程的實(shí)時(shí)流程。并且,函數(shù)調(diào)用數(shù)據(jù)按照生成順序被存儲(chǔ)在內(nèi)存棧中。若記錄的時(shí)間長(zhǎng)度達(dá)到第一時(shí)間閾值但服務(wù)模塊仍未處理完畢該請(qǐng)求進(jìn)程時(shí),則將內(nèi)存棧中存儲(chǔ)的函數(shù)調(diào)用數(shù)據(jù)輸出,供相關(guān)人員進(jìn)行數(shù)據(jù)分析,以確定服務(wù)模塊長(zhǎng)時(shí)間無(wú)響應(yīng)的問(wèn)題所在。
[0052]例如,服務(wù)模塊需要調(diào)用并執(zhí)行函數(shù)a、函數(shù)b及函數(shù)C,具體地,首先調(diào)用函數(shù)a,在執(zhí)行函數(shù)a的過(guò)程中,需要調(diào)用函數(shù)b,成功執(zhí)行函數(shù)b且結(jié)束執(zhí)行函數(shù)a后,調(diào)用并執(zhí)行函數(shù)C,若輸出的函數(shù)調(diào)用數(shù)據(jù)為函數(shù)a的開(kāi)始標(biāo)識(shí)及函數(shù)b的開(kāi)始標(biāo)識(shí)。由于未包含函數(shù)b的結(jié)束標(biāo)識(shí),則可以確定服務(wù)模塊在調(diào)用函數(shù)b時(shí)出現(xiàn)問(wèn)題。
[0053]步驟S104:當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),將所述函數(shù)調(diào)用數(shù)據(jù)保存至存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)模塊重啟。
[0054]若持續(xù)記錄的時(shí)間長(zhǎng)度超過(guò)了第一時(shí)間閾值并且達(dá)到了第二時(shí)間閾值,但服務(wù)模塊仍未處理完畢請(qǐng)求進(jìn)程,需要觸發(fā)服務(wù)模塊重啟。由于內(nèi)存棧中的數(shù)據(jù)在重啟后丟失,因此,在觸發(fā)服務(wù)模塊重啟前,需要將函數(shù)調(diào)用數(shù)據(jù)保存至存儲(chǔ)設(shè)備中,需要說(shuō)明的是,該存儲(chǔ)設(shè)備為非易失性存儲(chǔ)設(shè)備,以保證存儲(chǔ)的數(shù)據(jù)在重啟后不丟失,這樣,可以在重啟后仍能獲取到函數(shù)調(diào)用數(shù)據(jù),以進(jìn)行后續(xù)分析。
[0055]綜合上述的技術(shù)方案來(lái)看,可以將本發(fā)明實(shí)施例提供的監(jiān)測(cè)方法看作是定時(shí)器進(jìn)程,該定時(shí)器進(jìn)程持續(xù)記錄服務(wù)模塊處理請(qǐng)求進(jìn)程所用的時(shí)長(zhǎng),由于服務(wù)處理模塊在處理請(qǐng)求進(jìn)程時(shí)會(huì)生成函數(shù)調(diào)用數(shù)據(jù),并且函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在內(nèi)存棧中,若時(shí)長(zhǎng)達(dá)到第一時(shí)間閾值但服務(wù)模塊仍未處理完畢所述請(qǐng)求進(jìn)程,則認(rèn)為該服務(wù)模塊被阻塞,進(jìn)而輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù),以供相關(guān)人員分析阻塞問(wèn)題所在,若時(shí)長(zhǎng)達(dá)到第二時(shí)間閾值但阻塞情況仍未消除,則將函數(shù)調(diào)用數(shù)據(jù)進(jìn)行保存,并觸發(fā)服務(wù)模塊重啟,從而相關(guān)人員可以在服務(wù)模塊重啟后,仍能獲取到保存的函數(shù)調(diào)用數(shù)據(jù)進(jìn)行后續(xù)分析。
[0056]服務(wù)模塊處理請(qǐng)求進(jìn)程時(shí),可以是分為多線程同時(shí)處理,每個(gè)線程生成的函數(shù)調(diào)用數(shù)據(jù)均會(huì)保存在內(nèi)存棧中。上述的實(shí)施例中,輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù),可以是將每個(gè)線程的函數(shù)調(diào)用數(shù)據(jù)均輸出。進(jìn)一步地,還可以將每個(gè)線程的函數(shù)調(diào)用數(shù)據(jù)均保存。原因是,線程之間可能存在執(zhí)行順序,即線程I需要等待線程2執(zhí)行完畢才能執(zhí)行,若線程I出現(xiàn)阻塞情況,可能是由線程2導(dǎo)致的,即線程2并未成功執(zhí)行,則線程I會(huì)出現(xiàn)阻塞。因此,輸出每個(gè)線程的函數(shù)調(diào)用數(shù)據(jù)可以幫助開(kāi)發(fā)者進(jìn)行阻塞原因的分析。
[0057]需要說(shuō)明的是,為了向相關(guān)人員提供更多的阻塞情況分析數(shù)據(jù),除了上述實(shí)施例中的將內(nèi)存棧中記錄的數(shù)據(jù)保存外,還可以保存函數(shù)傳入?yún)?shù)及函數(shù)的調(diào)用順序。如圖2所示,包括:
[0058]步驟S202:以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)的函數(shù)傳入?yún)?shù)以及函數(shù)調(diào)用順序,并持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)的函數(shù)傳入?yún)?shù)以及函數(shù)調(diào)用順序。
[0059]也就是說(shuō),在內(nèi)存棧記錄函數(shù)調(diào)用數(shù)據(jù)的同時(shí),還可以記錄函數(shù)傳入?yún)?shù)及函數(shù)調(diào)用順序。其中:
[0060]服務(wù)模塊在處理請(qǐng)求進(jìn)程時(shí),可以調(diào)用函數(shù),調(diào)用函數(shù)時(shí)需要傳入?yún)?shù),該參數(shù)即函數(shù)傳入?yún)?shù)。通過(guò)函數(shù)傳入?yún)?shù)可知是否傳入錯(cuò)誤的函數(shù)參數(shù)。例如,需要傳入的函數(shù)參數(shù)為I,實(shí)際傳入的函數(shù)參數(shù)為O。
[0061]服務(wù)模塊在處理請(qǐng)求進(jìn)程時(shí),可能需要多次重復(fù)多個(gè)函數(shù)的調(diào)用,生成的函數(shù)調(diào)用順序可以反映調(diào)用的是哪個(gè)函數(shù)且是以怎樣的順序調(diào)用,進(jìn)而通過(guò)函數(shù)調(diào)用順序,可知函數(shù)調(diào)用是否錯(cuò)誤。
[0062]例如,記錄的函數(shù)調(diào)用順序?yàn)閍bc、abb、abc、abc,可知正確的函數(shù)調(diào)用順序應(yīng)該為abc,則兩次重復(fù)調(diào)用b的函數(shù)調(diào)用錯(cuò)誤。
[0063]步驟S204:當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),將所述函數(shù)調(diào)用數(shù)據(jù)、所述函數(shù)傳入?yún)?shù)及所述函數(shù)調(diào)用順序保存至所述存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)模塊重啟。
[0064]需要說(shuō)明,圖2中的步驟S201可以參見(jiàn)上述步驟S101,步驟S203可參照上述步驟S103,此處并不做贅述。
[0065]同理,將記錄的內(nèi)容保存至存儲(chǔ)設(shè)備中,以為了在重啟后可以進(jìn)行進(jìn)一步的問(wèn)題分析。需要說(shuō)明的是,本實(shí)施例中存儲(chǔ)的數(shù)據(jù)更豐富,從而更利于相關(guān)人員分析出阻塞原因。
[0066]當(dāng)然,進(jìn)一步地,在存儲(chǔ)函數(shù)調(diào)用數(shù)據(jù)、函數(shù)傳入?yún)?shù)及函數(shù)調(diào)用順序的任意一種或者多種的基礎(chǔ)上,還可以存儲(chǔ)請(qǐng)求進(jìn)程的上下文信息。如圖3所示,步驟S304:當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),獲取所述請(qǐng)求進(jìn)程的上下文信息,并將所述函數(shù)調(diào)用數(shù)據(jù)、所述函數(shù)傳入?yún)?shù)、所述函數(shù)調(diào)用順序及所述上下文信息保存至所述存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)模塊重啟。
[0067]其中,服務(wù)模塊在處理請(qǐng)求進(jìn)程的過(guò)程中,可以生成請(qǐng)求進(jìn)程的上下文信息。上下文信息可以包括請(qǐng)求進(jìn)程的入棧信息、初始化信息、變量信息、類(lèi)信息及結(jié)構(gòu)體等,這些信息可以為相關(guān)人員提供更詳細(xì)的分析內(nèi)容。
[0068]需要說(shuō)明,圖3中的步驟S301至步驟S303可以參見(jiàn)上述步驟S201至步驟S203,此處并不做贅述。
[0069]另外,持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度的同時(shí),需要同時(shí)判斷服務(wù)模塊是否處理完畢請(qǐng)求進(jìn)程。若當(dāng)所述服務(wù)模塊處理完畢所述請(qǐng)求進(jìn)程且所述服務(wù)模塊未重啟時(shí),停止所述時(shí)間長(zhǎng)度的持續(xù)記錄,并將停止時(shí)的時(shí)間長(zhǎng)度確定為本次響應(yīng)時(shí)長(zhǎng);當(dāng)存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取所述平均響應(yīng)時(shí)長(zhǎng),將所述平均響應(yīng)時(shí)長(zhǎng)與所述本次響應(yīng)時(shí)長(zhǎng)的平均值作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ);當(dāng)未存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),將所述本次響應(yīng)時(shí)長(zhǎng)作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ)。
[0070]具體來(lái)講,服務(wù)模塊處理完畢請(qǐng)求進(jìn)程時(shí)但服務(wù)模塊未重啟,說(shuō)明雖然耗時(shí)較長(zhǎng),但服務(wù)模塊能成功處理請(qǐng)求進(jìn)程。此時(shí),停止時(shí)間的持續(xù)記錄,并將停止時(shí)的時(shí)間長(zhǎng)度確定為服務(wù)模塊本次處理請(qǐng)求進(jìn)程時(shí)用的本次響應(yīng)時(shí)長(zhǎng)。
[0071]然后,判斷是否存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng),若未存儲(chǔ)有,說(shuō)明服務(wù)模塊首次接收到該請(qǐng)求進(jìn)程,即是首次處理該請(qǐng)求進(jìn)程,進(jìn)而直接將本次響應(yīng)時(shí)長(zhǎng)作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ),若存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng),所述服務(wù)模塊以前接收到過(guò)該請(qǐng)求進(jìn)程,則獲取存儲(chǔ)的平均響應(yīng)時(shí)長(zhǎng),并求解存儲(chǔ)的該平均響應(yīng)時(shí)長(zhǎng)與本次響應(yīng)時(shí)長(zhǎng)的平均值,將平均值作為新的平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ)。
[0072]可見(jiàn),平均響應(yīng)時(shí)長(zhǎng)用來(lái)反映服務(wù)模塊處理同一類(lèi)型的請(qǐng)求進(jìn)程所用的平均時(shí)長(zhǎng),該數(shù)據(jù)具有一定的實(shí)際參考價(jià)值,因而可以用來(lái)作為服務(wù)模塊處理下一次請(qǐng)求進(jìn)程時(shí)的參考數(shù)據(jù),即將其作為第一時(shí)間閾值。
[0073]也就是說(shuō),上述步驟SlOl中獲取第一時(shí)間閾值的具體實(shí)現(xiàn)方式可以是:
[0074]當(dāng)存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取所述平均響應(yīng)時(shí)長(zhǎng)作為第一時(shí)間閾值;當(dāng)未存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取預(yù)設(shè)時(shí)間閾值作為第一時(shí)間閾值。
[0075]當(dāng)然,在未存儲(chǔ)該平均響應(yīng)時(shí)長(zhǎng)時(shí),可以獲取預(yù)先設(shè)置的時(shí)間閾值,將該時(shí)間閾值作為第一時(shí)間閾值。
[0076]下面對(duì)本發(fā)明實(shí)施例提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置進(jìn)行介紹,需要說(shuō)明的是,有關(guān)服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置的說(shuō)明可參照上文提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,以下并不做贅述。
[0077]參照?qǐng)D4,其示出了本發(fā)明實(shí)施例提供的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置的結(jié)構(gòu),具體包括:時(shí)間閾值獲取模塊100、處理時(shí)長(zhǎng)記錄模塊200、函數(shù)調(diào)用數(shù)據(jù)輸出模塊300及函數(shù)調(diào)用數(shù)據(jù)保存模塊400。其中:
[0078]時(shí)間閾值獲取模塊100,用于當(dāng)服務(wù)模塊接收到請(qǐng)求進(jìn)程時(shí),獲取第一時(shí)間閾值及第二時(shí)間閾值;所述第二時(shí)間閾值大于所述第一時(shí)間閾值;
[0079]處理時(shí)長(zhǎng)記錄模塊200,用于以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度;
[0080]函數(shù)調(diào)用數(shù)據(jù)輸出模塊300,用于當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第一時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù);其中,所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)生成函數(shù)調(diào)用數(shù)據(jù),且所述函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在所述內(nèi)存棧中;
[0081]函數(shù)調(diào)用數(shù)據(jù)保存模塊400,用于當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),將所述函數(shù)調(diào)用數(shù)據(jù)保存至存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)t吳塊重啟。
[0082]由以上的技術(shù)方案可知,時(shí)間閾值獲取模塊100可以獲取到第一時(shí)間閾值及第二時(shí)間閾值,處理時(shí)長(zhǎng)記錄模塊200記錄服務(wù)模塊的處理時(shí)間,當(dāng)處理時(shí)間達(dá)到第一時(shí)間閾值且處理未結(jié)束時(shí),函數(shù)調(diào)用數(shù)據(jù)輸出模塊300輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù),當(dāng)處理時(shí)間達(dá)到第二時(shí)間閾值且處理未結(jié)束時(shí),函數(shù)調(diào)用數(shù)據(jù)保存模塊400存儲(chǔ)該函數(shù)調(diào)用數(shù)據(jù),并觸發(fā)服務(wù)模塊重啟。
[0083]可選地,如圖5所示,在上述實(shí)施例的基礎(chǔ)上,還可以包括:函數(shù)參數(shù)及順序記錄模塊500、函數(shù)參數(shù)及順序存儲(chǔ)模塊600及上下文信息存儲(chǔ)模塊700。
[0084]函數(shù)參數(shù)及順序記錄模塊500,用于以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)的函數(shù)傳入?yún)?shù)以及函數(shù)調(diào)用順序。
[0085]函數(shù)參數(shù)及順序保存模塊600,用于在當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前,將記錄的所述函數(shù)傳入?yún)?shù)及所述函數(shù)調(diào)用順序保存至所述存儲(chǔ)設(shè)備。
[0086]上下文信息保存模塊700,用于在所述當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前,獲取所述請(qǐng)求進(jìn)程的上下文信息,并將所述上下文信息保存至所述存儲(chǔ)設(shè)備。
[0087]可選地,在上述各個(gè)實(shí)施例的基礎(chǔ)上,還包括:響應(yīng)時(shí)長(zhǎng)統(tǒng)計(jì)模塊,用于當(dāng)所述服務(wù)模塊處理完畢所述請(qǐng)求進(jìn)程且所述服務(wù)模塊未重啟時(shí),停止所述時(shí)間長(zhǎng)度的持續(xù)記錄,并將停止時(shí)的時(shí)間長(zhǎng)度確定為本次響應(yīng)時(shí)長(zhǎng);當(dāng)存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取所述平均響應(yīng)時(shí)長(zhǎng),將所述平均響應(yīng)時(shí)長(zhǎng)與所述本次響應(yīng)時(shí)長(zhǎng)的平均值作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ);當(dāng)未存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),將所述本次響應(yīng)時(shí)長(zhǎng)作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ)。
[0088]可選地,所述時(shí)間閾值獲取模塊獲取第一時(shí)間閾值的方式是:
[0089]當(dāng)存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取所述平均響應(yīng)時(shí)長(zhǎng)作為第一時(shí)間閾值;當(dāng)未存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取預(yù)設(shè)時(shí)間閾值作為第一時(shí)間閾值。
[0090]需要說(shuō)明的是,本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
[0091]還需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括上述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0092]對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專(zhuān)業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。
【權(quán)利要求】
1.一種服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,其特征在于,包括: 當(dāng)服務(wù)模塊接收到請(qǐng)求進(jìn)程時(shí),獲取第一時(shí)間閾值及第二時(shí)間閾值;所述第二時(shí)間閾值大于所述第一時(shí)間閾值; 以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度; 當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第一時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù);其中,所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)生成函數(shù)調(diào)用數(shù)據(jù),且所述函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在所述內(nèi)存棧中; 當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),將所述函數(shù)調(diào)用數(shù)據(jù)保存至存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)模塊重啟。
2.根據(jù)權(quán)利要求1所述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,其特征在于,還包括: 以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)的函數(shù)傳入?yún)?shù)以及函數(shù)調(diào)用順序。
3.根據(jù)權(quán)利要求2所述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,其特征在于,在當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前還包括: 將記錄的所述函數(shù)傳入?yún)?shù)及所述函數(shù)調(diào)用順序保存至所述存儲(chǔ)設(shè)備。
4.根據(jù)權(quán)利要求1或3所述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,其特征在于,在所述當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前還包括: 獲取所述請(qǐng)求進(jìn)程的上下文信息,并將所述上下文信息保存至所述存儲(chǔ)設(shè)備。
5.根據(jù)權(quán)利要求1所述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,其特征在于,在所述以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度的同時(shí),還包括: 當(dāng)所述服務(wù)模塊處理完畢所述請(qǐng)求進(jìn)程且所述服務(wù)模塊未重啟時(shí),停止所述時(shí)間長(zhǎng)度的持續(xù)記錄,并將停止時(shí)的時(shí)間長(zhǎng)度確定為本次響應(yīng)時(shí)長(zhǎng); 當(dāng)存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取所述平均響應(yīng)時(shí)長(zhǎng),將所述平均響應(yīng)時(shí)長(zhǎng)與所述本次響應(yīng)時(shí)長(zhǎng)的平均值作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ); 當(dāng)未存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),將所述本次響應(yīng)時(shí)長(zhǎng)作為平均響應(yīng)時(shí)長(zhǎng)進(jìn)行存儲(chǔ)。
6.根據(jù)權(quán)利要求5所述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)方法,其特征在于,所述獲取第一時(shí)間閾值包括: 當(dāng)存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取所述平均響應(yīng)時(shí)長(zhǎng)作為第一時(shí)間閾值; 當(dāng)未存儲(chǔ)有平均響應(yīng)時(shí)長(zhǎng)時(shí),獲取預(yù)設(shè)時(shí)間閾值作為第一時(shí)間閾值。
7.一種服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置,其特征在于,包括: 時(shí)間閾值獲取模塊,用于當(dāng)服務(wù)模塊接收到請(qǐng)求進(jìn)程時(shí),獲取第一時(shí)間閾值及第二時(shí)間閾值;所述第二時(shí)間閾值大于所述第一時(shí)間閾值; 處理時(shí)長(zhǎng)記錄模塊,用于以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程所用的時(shí)間長(zhǎng)度; 函數(shù)調(diào)用數(shù)據(jù)輸出模塊,用于當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第一時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),輸出內(nèi)存棧中的函數(shù)調(diào)用數(shù)據(jù);其中,所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)生成函數(shù)調(diào)用數(shù)據(jù),且所述函數(shù)調(diào)用數(shù)據(jù)按照生成順序依次存儲(chǔ)在所述內(nèi)存棧中; 函數(shù)調(diào)用數(shù)據(jù)保存模塊,用于當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),將所述函數(shù)調(diào)用數(shù)據(jù)保存至存儲(chǔ)設(shè)備,并觸發(fā)所述服務(wù)模塊重啟。
8.根據(jù)權(quán)利要求7所述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置,其特征在于,還包括: 函數(shù)參數(shù)及順序記錄模塊,用于以所述服務(wù)模塊接收到所述請(qǐng)求進(jìn)程的時(shí)間點(diǎn)為起點(diǎn),持續(xù)記錄所述服務(wù)模塊處理所述請(qǐng)求進(jìn)程時(shí)的函數(shù)傳入?yún)?shù)以及函數(shù)調(diào)用順序。
9.根據(jù)權(quán)利要求8所述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置,其特征在于,還包括: 函數(shù)參數(shù)及順序保存模塊,用于在當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前,將記錄的所述函數(shù)傳入?yún)?shù)及所述函數(shù)調(diào)用順序保存至所述存儲(chǔ)設(shè)備。
10.根據(jù)權(quán)利要求7或9所述的服務(wù)響應(yīng)過(guò)程的監(jiān)測(cè)裝置,其特征在于,還包括: 上下文信息保存模塊,用于在所述當(dāng)所述時(shí)間長(zhǎng)度達(dá)到所述第二時(shí)間閾值且所述服務(wù)模塊未處理完畢所述請(qǐng)求進(jìn)程時(shí),且觸發(fā)所述服務(wù)模塊重啟之前,獲取所述請(qǐng)求進(jìn)程的上下文信息,并將所述上下文信息保存至所述存儲(chǔ)設(shè)備。
【文檔編號(hào)】G06F11/36GK104503912SQ201410817816
【公開(kāi)日】2015年4月8日 申請(qǐng)日期:2014年12月24日 優(yōu)先權(quán)日:2014年12月24日
【發(fā)明者】安超, 汪亮 申請(qǐng)人:中科創(chuàng)達(dá)軟件股份有限公司