云計(jì)算系統(tǒng)的性能數(shù)據(jù)的采集與存儲(chǔ)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及云計(jì)算領(lǐng)域,特別涉及一種云計(jì)算系統(tǒng)的性能數(shù)據(jù)的采集與存儲(chǔ)方法及裝置,還有一種云計(jì)算系統(tǒng)的性能檢測方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]云計(jì)算系統(tǒng)包括服務(wù)器、存儲(chǔ)、網(wǎng)絡(luò)等海量基礎(chǔ)硬件資源和單機(jī)操作系統(tǒng)、中間件、數(shù)據(jù)庫等海量基礎(chǔ)軟件資源。云計(jì)算系統(tǒng)的硬件構(gòu)成可以看為計(jì)算機(jī)集群,涉及到的機(jī)器可能會(huì)有數(shù)千臺(tái)之多。對(duì)于云計(jì)算系統(tǒng)的使用者來說,付出的費(fèi)用通常與應(yīng)用占有的硬件資源成正比。使用的硬件資源越多,所需付出的成本就越高。因此,提供面向云計(jì)算系統(tǒng)的性能分析工具,幫助云計(jì)算系統(tǒng)的開發(fā)者與用戶對(duì)云計(jì)算系統(tǒng)軟件與應(yīng)用軟件進(jìn)行性能優(yōu)化,減少系統(tǒng)軟件與應(yīng)用軟件的資源開銷,具有節(jié)約成本的現(xiàn)實(shí)意義。
[0003]運(yùn)行在云計(jì)算系統(tǒng)上的應(yīng)用程序多為分布式應(yīng)用,這些應(yīng)用部署在不同機(jī)器上的模塊可能是同構(gòu)的,也可能是異構(gòu)的。因此面向云計(jì)算系統(tǒng)的性能分析工具,必須支持分布式軟件的性能分析。
[0004]進(jìn)一步的,由于云計(jì)算系統(tǒng)的規(guī)模龐大,運(yùn)行在該系統(tǒng)之上的系統(tǒng)軟件與應(yīng)用軟件每天都會(huì)發(fā)生很多性能異常。特別是這些軟件系統(tǒng)還沒有趨于穩(wěn)定時(shí)。為了能夠快速排查性能異常的原因,有必要在云計(jì)算系統(tǒng)中保存軟件的性能數(shù)據(jù)。
[0005]在現(xiàn)有技術(shù)中,因?yàn)樵朴?jì)算系統(tǒng)存在上述特性,所以在采集或者存儲(chǔ)云計(jì)算系統(tǒng)的性能數(shù)據(jù)時(shí),尚沒有一種能夠準(zhǔn)確采集、存儲(chǔ)、分析分布式應(yīng)用性能數(shù)據(jù)的有效的方案。
【發(fā)明內(nèi)容】
[0006]本申請(qǐng)所要解決的技術(shù)問題是提供一種云計(jì)算系統(tǒng)的性能數(shù)據(jù)的采集與存儲(chǔ)方法,用以解決現(xiàn)有技術(shù)中沒有能夠準(zhǔn)確采集并存儲(chǔ)云計(jì)算系統(tǒng)的性能數(shù)據(jù)方案的問題,進(jìn)一步的,還能基于采集并存儲(chǔ)的性能數(shù)據(jù)對(duì)云計(jì)算系統(tǒng)的進(jìn)行性能分析。
[0007]本申請(qǐng)還提供了一種云計(jì)算系統(tǒng)的性能數(shù)據(jù)的采集與存儲(chǔ)裝置,以及一種云計(jì)算系統(tǒng)的性能檢測方法、裝置及系統(tǒng),用以保證上述方法在實(shí)際中的實(shí)現(xiàn)及應(yīng)用。
[0008]為了解決上述問題,本申請(qǐng)公開了一種云計(jì)算系統(tǒng)的性能數(shù)據(jù)的采集與存儲(chǔ)方法,應(yīng)用于云計(jì)算系統(tǒng)中的各臺(tái)主機(jī)上,包括:
[0009]按照預(yù)設(shè)的采樣周期采集本機(jī)的性能數(shù)據(jù),所述性能數(shù)據(jù)包括:本機(jī)CPU的寄存器值、正在運(yùn)行的進(jìn)程標(biāo)示符PID、該進(jìn)程的名稱和該進(jìn)程的用戶棧;
[0010]利用所述本機(jī)CPU的寄存器值解析該進(jìn)程的用戶棧以得到該進(jìn)程在采集時(shí)刻的函數(shù)調(diào)用鏈和所述函數(shù)調(diào)用鏈中各個(gè)函數(shù)對(duì)應(yīng)的DS0文件;
[0011]將所述采集時(shí)刻作為關(guān)鍵字,所述采樣周期、PID、名稱、函數(shù)調(diào)用鏈地址以及所述各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼作為鍵值對(duì)應(yīng)保存至第一數(shù)據(jù)庫中,并將所述各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼作為關(guān)鍵字,所述DS0文件中的函數(shù)地址表在磁盤上的存放位置作為鍵值對(duì)應(yīng)保存至第二數(shù)據(jù)庫中,所述函數(shù)地址表中對(duì)應(yīng)保存有函數(shù)名稱以及函數(shù)的起始和結(jié)束地址。
[0012]本申請(qǐng)公開了一種云計(jì)算系統(tǒng)的性能數(shù)據(jù)的采集與存儲(chǔ)裝置,包括:
[0013]采集單元,用于按照預(yù)設(shè)的采樣周期采集本機(jī)的性能數(shù)據(jù),所述性能數(shù)據(jù)包括:本機(jī)CPU的寄存器值、正在運(yùn)行的進(jìn)程標(biāo)示符PID、該進(jìn)程的名稱和該進(jìn)程的用戶棧;
[0014]第一解析單元,用于利用所述本機(jī)CPU的寄存器值解析該進(jìn)程的用戶棧以得到該進(jìn)程在采集時(shí)刻的函數(shù)調(diào)用鏈和所述函數(shù)調(diào)用鏈中各個(gè)函數(shù)對(duì)應(yīng)的DS0文件;
[0015]第一保存單元,用于將所述采集時(shí)刻作為關(guān)鍵字,所述采樣周期、PID、進(jìn)程名稱、函數(shù)調(diào)用鏈地址以及所述各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼作為鍵值對(duì)應(yīng)保存至第一數(shù)據(jù)庫中;
[0016]第二保存單元,用于將所述各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼作為關(guān)鍵字,所述DS0文件中的函數(shù)地址表在磁盤上的存放位置作為鍵值對(duì)應(yīng)保存至第二數(shù)據(jù)庫中,所述函數(shù)地址表中對(duì)應(yīng)保存有函數(shù)名稱以及函數(shù)的起始和結(jié)束地址。
[0017]本申請(qǐng)公開了一種云計(jì)算系統(tǒng)的性能檢測方法,包括:
[0018]接收用戶關(guān)于云計(jì)算系統(tǒng)的性能檢測請(qǐng)求,所述性能檢測請(qǐng)求中包括:性能檢測目標(biāo)主機(jī)、所述目標(biāo)主機(jī)上運(yùn)行的目標(biāo)進(jìn)程的名稱、所述目標(biāo)進(jìn)程所涉及的DS0文件和時(shí)間范圍;
[0019]將所述性能檢測請(qǐng)求發(fā)送給所述性能檢測目標(biāo)主機(jī),并接收所述性能檢測目標(biāo)主機(jī)返回的目標(biāo)數(shù)據(jù);所述目標(biāo)數(shù)據(jù)為所述性能檢測目標(biāo)主機(jī)依據(jù)所述目標(biāo)進(jìn)程的名稱、所述目標(biāo)進(jìn)程所涉及的DS0文件和時(shí)間范圍在預(yù)置的第一數(shù)據(jù)庫中檢索出的數(shù)據(jù),所述目標(biāo)數(shù)據(jù)包括:采樣周期、函數(shù)調(diào)用鏈地址以及所述函數(shù)調(diào)用鏈中各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼;在所述第一數(shù)據(jù)庫中,采集時(shí)刻作為關(guān)鍵字,采樣周期、PID、名稱、函數(shù)調(diào)用鏈地址以及所述各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼作為鍵值對(duì)應(yīng)保存;
[0020]依據(jù)所述目標(biāo)數(shù)據(jù)中的SHA1編碼從預(yù)置的第二數(shù)據(jù)庫中匹配出對(duì)應(yīng)的函數(shù)地址表;在所述第二數(shù)據(jù)庫中,所述各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼作為關(guān)鍵字,所述DS0文件中的函數(shù)地址表在磁盤上的存放位置作為鍵值對(duì)應(yīng)保存;
[0021]利用所述函數(shù)地址表對(duì)所述目標(biāo)數(shù)據(jù)中的函數(shù)調(diào)用鏈地址進(jìn)行解析,以得到所述當(dāng)前進(jìn)程中調(diào)用的各個(gè)函數(shù)名稱;
[0022]利用所述采樣周期計(jì)算各個(gè)函數(shù)名稱對(duì)應(yīng)的各個(gè)函數(shù)的執(zhí)行時(shí)間占比。
[0023]本申請(qǐng)公開了一種云計(jì)算系統(tǒng)的性能檢測裝置,包括:
[0024]接收請(qǐng)求單元,用于接收用戶關(guān)于云計(jì)算系統(tǒng)的性能檢測請(qǐng)求,所述性能檢測請(qǐng)求中包括:性能檢測目標(biāo)主機(jī)、所述目標(biāo)主機(jī)上運(yùn)行的目標(biāo)進(jìn)程的名稱、所述目標(biāo)進(jìn)程所涉及的DS0文件和時(shí)間范圍;
[0025]發(fā)送單元,用于將所述性能檢測請(qǐng)求發(fā)送給所述性能檢測目標(biāo)主機(jī);
[0026]接收數(shù)據(jù)單元,用于接收所述性能檢測目標(biāo)主機(jī)返回的目標(biāo)數(shù)據(jù);所述目標(biāo)數(shù)據(jù)為所述性能檢測目標(biāo)主機(jī)依據(jù)所述目標(biāo)進(jìn)程的名稱、所述目標(biāo)進(jìn)程所涉及的DS0文件和時(shí)間范圍在預(yù)置的第一數(shù)據(jù)庫中檢索出的數(shù)據(jù),所述目標(biāo)數(shù)據(jù)包括:采樣周期、函數(shù)調(diào)用鏈地址以及所述函數(shù)調(diào)用鏈中各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼;在所述第一數(shù)據(jù)庫中,采集時(shí)刻作為關(guān)鍵字,采樣周期、PID、名稱、函數(shù)調(diào)用鏈地址以及所述各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼作為鍵值對(duì)應(yīng)保存;
[0027]匹配單元,用于依據(jù)所述目標(biāo)數(shù)據(jù)中的SHA1編碼從預(yù)置的第二數(shù)據(jù)庫中匹配出對(duì)應(yīng)的函數(shù)地址表;在所述第二數(shù)據(jù)庫中,所述各個(gè)函數(shù)對(duì)應(yīng)的DS0文件的SHA1編碼作為關(guān)鍵字,所述DS0文件中的函數(shù)地址表在磁盤上的存放位置作為鍵值對(duì)應(yīng)保存;
[0028]第二解析單元,用于利用所述函數(shù)地址表對(duì)所述目標(biāo)數(shù)據(jù)中的函數(shù)調(diào)用鏈地址進(jìn)行解析,以得到所述當(dāng)前進(jìn)程中調(diào)用的各個(gè)函數(shù)名稱;
[0029]計(jì)算單元,用于利用所述采樣周期計(jì)算各個(gè)函數(shù)名稱對(duì)應(yīng)的各個(gè)函數(shù)的執(zhí)行時(shí)間& t匕。
[0030]與現(xiàn)有技術(shù)相比,本申請(qǐng)包括以下優(yōu)點(diǎn):
[0031]在本申請(qǐng)中,可以將云計(jì)算系統(tǒng)中各臺(tái)主機(jī)的性能數(shù)據(jù)分別進(jìn)行采集與存儲(chǔ),并分別保存在兩個(gè)Key-Value型數(shù)據(jù)庫中,就可以使各臺(tái)主機(jī)上都保存有自己的性能數(shù)據(jù),并且根據(jù)關(guān)鍵字Key即可方便高效的檢索出對(duì)應(yīng)的Value,這樣實(shí)現(xiàn)了簡易的分布式數(shù)據(jù)存儲(chǔ),避免了數(shù)據(jù)集中存儲(chǔ)帶來的不必要的網(wǎng)絡(luò)開銷。并且充分利用了各臺(tái)主機(jī)上的存儲(chǔ)資源。并且,對(duì)來自多臺(tái)機(jī)器的性能數(shù)據(jù)進(jìn)行聚合、分析還有利于根據(jù)數(shù)據(jù)庫中的性能數(shù)據(jù)對(duì)云計(jì)算系統(tǒng)的性能進(jìn)行分析,從而實(shí)現(xiàn)對(duì)云計(jì)算系統(tǒng)的性能數(shù)據(jù)的分析。進(jìn)一步的,還可以接觸性能分析結(jié)果有針對(duì)性的對(duì)主機(jī)中的各個(gè)軟件進(jìn)行性能優(yōu)化。
[0032]此外,通過對(duì)第一數(shù)據(jù)庫和第二數(shù)據(jù)庫進(jìn)行上述方式的生命周期管理,可以更有效的存儲(chǔ)更有價(jià)值的數(shù)據(jù),同時(shí)也節(jié)省了云計(jì)算系統(tǒng)中各臺(tái)主機(jī)的存儲(chǔ)空間。并且,本申請(qǐng)實(shí)施例可以對(duì)來自多臺(tái)主機(jī)的性能數(shù)據(jù)進(jìn)行聚合和分析等,實(shí)現(xiàn)了針對(duì)大規(guī)模計(jì)算機(jī)集群及分布式應(yīng)用程序的性能分析。
[0033]當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
【附圖說明】
[0034]為了更清楚地說明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1是本申請(qǐng)的一種云計(jì)算系統(tǒng)的性能數(shù)據(jù)的采集與存儲(chǔ)方法實(shí)施例的流程圖;
[0036]圖2為本申請(qǐng)的一種云計(jì)算系統(tǒng)的性能數(shù)據(jù)的采集與存儲(chǔ)裝置實(shí)施例的結(jié)構(gòu)框圖;
[0037]圖3是本申請(qǐng)的一種云計(jì)算系統(tǒng)的性能檢測方法實(shí)施例的流程圖;
[0038]圖4是本申請(qǐng)的一種云計(jì)算系統(tǒng)的性能檢測裝置實(shí)施例的結(jié)構(gòu)框圖;
[0039]圖5是本申請(qǐng)的一種云計(jì)算系統(tǒng)的性能檢測系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方