本技術(shù)涉及數(shù)據(jù)處理,尤其涉及一種數(shù)據(jù)分析方法、裝置及電子設(shè)備。
背景技術(shù):
1、基板管理控制器(英文全稱:baseboardmanagement?controller,簡稱:bmc)是用于監(jiān)控和管理服務(wù)器的專用控制器,在服務(wù)器的bmc發(fā)生故障時(shí)(如,bmc的內(nèi)核代碼或應(yīng)用程序代碼錯(cuò)誤),向維護(hù)人員提供告警信息及相應(yīng)的恢復(fù)手段。
2、具體來講,bmc在啟動(dòng)和運(yùn)行過程中,當(dāng)bmc的內(nèi)核(kernel)代碼存在錯(cuò)誤或內(nèi)核崩潰時(shí),會(huì)觸發(fā)內(nèi)核恐慌(kernel?panic)機(jī)制,捕獲內(nèi)核故障產(chǎn)生的崩潰內(nèi)存信息,并將內(nèi)核故障的崩潰內(nèi)存信息存儲(chǔ)在kdump文件;當(dāng)bmc應(yīng)用層的代碼存在錯(cuò)誤時(shí),會(huì)將應(yīng)用程序代碼錯(cuò)誤產(chǎn)生的崩潰內(nèi)存信息(如,內(nèi)存布局、變量值、調(diào)用棧信息以及cpu寄存器值等)保存在核心轉(zhuǎn)儲(chǔ)文件(coredump文件),維護(hù)人員根據(jù)coredump文件能夠分析應(yīng)用程序崩潰的原因,從而修復(fù)相應(yīng)的故障。
3、目前,通常采用人工的方式分析bmc應(yīng)用程序代碼錯(cuò)誤產(chǎn)生的崩潰內(nèi)存信息。若在大規(guī)模的壓力測試場景下,發(fā)生故障的bmc數(shù)量多,且由bmc應(yīng)用程序代碼錯(cuò)誤產(chǎn)生的崩潰內(nèi)存信息量較大,仍采用人工分析應(yīng)用程序代碼錯(cuò)誤產(chǎn)生的崩潰內(nèi)存信息的方式,會(huì)降低對(duì)應(yīng)用程序代碼錯(cuò)誤產(chǎn)生的崩潰內(nèi)存信息分析的速率;另外,由于應(yīng)用程序代碼錯(cuò)誤產(chǎn)生的崩潰內(nèi)存信息中存在大量重復(fù)的信息,人工逐個(gè)的分析還會(huì)造成人力資源的浪費(fèi)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)分析方法、裝置及電子設(shè)備,用以提高對(duì)bmc故障產(chǎn)生的大量崩潰內(nèi)存信息進(jìn)行分析的速率。具體技術(shù)方案如下:
2、第一方面,本技術(shù)提供了一種數(shù)據(jù)分析方法,包括:
3、獲取對(duì)多個(gè)被測基板管理控制器bmc進(jìn)行壓力測試的崩潰測試數(shù)據(jù)集;
4、基于所述崩潰測試數(shù)據(jù)集中的每個(gè)崩潰測試數(shù)據(jù)所歸屬的數(shù)據(jù)層次,從解析規(guī)則集合中選取出與所述數(shù)據(jù)層次對(duì)應(yīng)的目標(biāo)解析規(guī)則,并基于所述目標(biāo)解析規(guī)則解析每個(gè)所述崩潰測試數(shù)據(jù),得到每個(gè)目標(biāo)解析數(shù)據(jù);
5、對(duì)每個(gè)所述目標(biāo)解析數(shù)據(jù)進(jìn)行迭代分析,輸出每個(gè)所述目標(biāo)解析數(shù)據(jù)各自對(duì)應(yīng)的分析結(jié)果。
6、基于上述的方法,能夠收集在壓力測試場景下,被測bmc故障產(chǎn)生的大量崩潰測試數(shù)據(jù),并對(duì)大量崩潰測試數(shù)據(jù)進(jìn)行更細(xì)致的、自動(dòng)化的分析,提高對(duì)崩潰測試數(shù)據(jù)的分析速率。
7、在一種可能的實(shí)現(xiàn)中,所述獲取對(duì)多個(gè)被測bmc進(jìn)行壓力測試的崩潰測試數(shù)據(jù)集,包括:
8、接入所述多個(gè)被測bmc中的任意一個(gè)目標(biāo)bmc;
9、判定所述目標(biāo)bmc的第一預(yù)設(shè)目錄中是否存在內(nèi)核故障產(chǎn)生的崩潰內(nèi)存信息;
10、若是,則將所述崩潰內(nèi)存信息轉(zhuǎn)存至所述崩潰測試數(shù)據(jù)集;
11、若否,則將所述目標(biāo)bmc的第二預(yù)設(shè)目錄中的核心轉(zhuǎn)儲(chǔ)文件轉(zhuǎn)存至所述崩潰測試數(shù)據(jù)集。
12、基于上述的方法,能夠收集目標(biāo)bmc的內(nèi)核故障產(chǎn)生的崩潰內(nèi)存信息。
13、在一種可能的實(shí)現(xiàn)中,所述將所述目標(biāo)bmc的第二預(yù)設(shè)目錄中的核心轉(zhuǎn)儲(chǔ)文件轉(zhuǎn)存至所述崩潰測試數(shù)據(jù)集,包括:
14、判定所述目標(biāo)bmc的第二預(yù)設(shè)目錄中是否存在所述核心轉(zhuǎn)儲(chǔ)文件;
15、若是,則將所述核心轉(zhuǎn)儲(chǔ)文件轉(zhuǎn)存至所述崩潰測試數(shù)據(jù)集;
16、若否,則接入所述多個(gè)被測bmc中的下一個(gè)目標(biāo)bmc,直至輪詢完所述多個(gè)被測bmc中的每個(gè)bmc。
17、基于上述的方法,能夠收集目標(biāo)bmc的應(yīng)用程序代碼錯(cuò)誤產(chǎn)生的核心轉(zhuǎn)儲(chǔ)文件,并將崩潰內(nèi)存信息和核心轉(zhuǎn)儲(chǔ)文件存放在崩潰測試數(shù)據(jù)集中。
18、在一種可能的實(shí)現(xiàn)中,若所述崩潰測試數(shù)據(jù)所歸屬的數(shù)據(jù)層次為內(nèi)核層,則通過以下目標(biāo)解析規(guī)則對(duì)所述崩潰測試數(shù)據(jù)進(jìn)行解析:
19、確定產(chǎn)生所述崩潰測試數(shù)據(jù)的目標(biāo)bmc的固件版本;
20、判定在預(yù)設(shè)的內(nèi)核鏡像版本集合中是否存在與所述固件版本對(duì)應(yīng)的目標(biāo)內(nèi)核鏡像版本,其中,所述內(nèi)核鏡像版本集合中的內(nèi)核鏡像版本表征對(duì)被測bmc的內(nèi)核編譯后未壓縮的版本;
21、若是,則獲取所述目標(biāo)內(nèi)核鏡像版本的鏡像版本時(shí)間和所述崩潰測試數(shù)據(jù)的固件版本時(shí)間,在確定所述鏡像版本時(shí)間與所述固件版本時(shí)間相同時(shí),調(diào)用內(nèi)核轉(zhuǎn)儲(chǔ)文件分析工具解析所述崩潰測試數(shù)據(jù);
22、若否,則輸出第一提示信息。
23、基于上述的方法,能夠?qū)崿F(xiàn)對(duì)內(nèi)核轉(zhuǎn)儲(chǔ)文件的自動(dòng)化解析。
24、在一種可能的實(shí)現(xiàn)中,若所述崩潰測試數(shù)據(jù)所歸屬的數(shù)據(jù)層次為應(yīng)用層,則通過以下目標(biāo)解析規(guī)則對(duì)所述崩潰測試數(shù)據(jù)進(jìn)行解析:
25、確定產(chǎn)生所述崩潰測試數(shù)據(jù)的目標(biāo)bmc的固件版本。
26、判定在符號(hào)表集合中是否存在與所述固件版本對(duì)應(yīng)的目標(biāo)符號(hào)表,其中,所述符號(hào)表集合是在編譯所述多個(gè)被測bmc的固件時(shí)生成的,且每個(gè)被測bmc的固件版本各自對(duì)應(yīng)一個(gè)符號(hào)表版本;
27、若是,則獲取所述崩潰測試數(shù)據(jù)中的崩潰指示信息,并基于所述崩潰指示信息對(duì)所述崩潰測試數(shù)據(jù)進(jìn)行解析;
28、若否,則輸出提示信息。
29、基于上述的方法,能夠?qū)崿F(xiàn)對(duì)核心轉(zhuǎn)儲(chǔ)文件的自動(dòng)化解析。
30、在一種可能的實(shí)現(xiàn)中,所述崩潰指示信息包括崩潰進(jìn)程名或崩潰線程名,若獲取所述崩潰測試數(shù)據(jù)中的崩潰線程名,則所述基于所述崩潰指示信息對(duì)所述崩潰測試數(shù)據(jù)進(jìn)行解析,包括:
31、在線程統(tǒng)計(jì)表中查找與所述崩潰線程名相關(guān)聯(lián)的崩潰進(jìn)程名;
32、基于所述崩潰進(jìn)程名,并調(diào)用程序調(diào)試工具gdb對(duì)所述崩潰測試數(shù)據(jù)進(jìn)行解析。
33、基于上述的方法,能夠?qū)崿F(xiàn)對(duì)核心轉(zhuǎn)儲(chǔ)文件的自動(dòng)化解析。
34、在一種可能的實(shí)現(xiàn)中,在輸出每個(gè)所述目標(biāo)解析數(shù)據(jù)各自對(duì)應(yīng)的分析結(jié)果之后,所述方法還包括:
35、將每個(gè)所述目標(biāo)解析數(shù)據(jù)各自對(duì)應(yīng)的分析結(jié)果推送至質(zhì)量監(jiān)測端;或者
36、基于被測bmc的運(yùn)行數(shù)據(jù),生成綜合分析報(bào)告,并將所述綜合分析報(bào)告推送至所述質(zhì)量監(jiān)測端或者運(yùn)維人員,以使運(yùn)維人員基于所述綜合分析報(bào)告,對(duì)異常bmc進(jìn)行故障修復(fù),其中,所述運(yùn)行數(shù)據(jù)至少包括所述被測bmc的內(nèi)存信息、cpu狀態(tài)信息和重啟信息。
37、通過將崩潰測試數(shù)據(jù)推送至質(zhì)量監(jiān)控端或運(yùn)維人員,能夠使運(yùn)維人員更直觀的確定是內(nèi)核故障還是應(yīng)用層代碼故障,及時(shí)的定位故障問題,對(duì)故障服務(wù)器進(jìn)行修復(fù)。
38、第二方面,本技術(shù)提供了一種數(shù)據(jù)分析裝置,包括:
39、數(shù)據(jù)獲取模塊,用于獲取對(duì)多個(gè)被測基板管理控制器bmc進(jìn)行壓力測試的崩潰測試數(shù)據(jù)集;
40、數(shù)據(jù)解析模塊,用于基于所述崩潰測試數(shù)據(jù)集中的每個(gè)崩潰測試數(shù)據(jù)所歸屬的數(shù)據(jù)層次,從解析規(guī)則集合中選取出與所述數(shù)據(jù)層次對(duì)應(yīng)的目標(biāo)解析規(guī)則,并基于所述目標(biāo)解析規(guī)則解析每個(gè)所述崩潰測試數(shù)據(jù),得到每個(gè)目標(biāo)解析數(shù)據(jù);
41、數(shù)據(jù)分析模塊,用于對(duì)每個(gè)所述目標(biāo)解析數(shù)據(jù)進(jìn)行迭代分析,輸出每個(gè)所述目標(biāo)解析數(shù)據(jù)各自對(duì)應(yīng)的分析結(jié)果。
42、第三方面,本技術(shù)提供了一種電子設(shè)備,包括:
43、存儲(chǔ)器,用于存放計(jì)算機(jī)程序;
44、處理器,用于執(zhí)行所述存儲(chǔ)器上所存放的計(jì)算機(jī)程序時(shí),實(shí)現(xiàn)上述的數(shù)據(jù)分析方法的步驟。
45、第四方面,本技術(shù)提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)內(nèi)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的數(shù)據(jù)分析方法的步驟。
46、上述第二方面至第四方面中的各個(gè)方面以及各個(gè)方面可能達(dá)到的技術(shù)效果請(qǐng)參照上述針對(duì)第一方面或第一方面中的各種可能方案可以達(dá)到的技術(shù)效果說明,這里不再重復(fù)贅述。