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