本發(fā)明涉及云計算領(lǐng)域,尤其涉及監(jiān)測應(yīng)用執(zhí)行性能的方法、裝置及高性能計算系統(tǒng)。
背景技術(shù):
在例如高性能計算等云計算領(lǐng)域中,用戶通常將待執(zhí)行的應(yīng)用(例如高性能計算的一項計算作業(yè))分配到服務(wù)器集群中一個或多個計算節(jié)點來執(zhí)行。目前,執(zhí)行計算應(yīng)用的硬件性能越來越高,這極大提高了對作業(yè)的執(zhí)行效率。另外,在一項作業(yè)被提交到服務(wù)器集群后,用戶還需要了解關(guān)于該作業(yè)的執(zhí)行情況。
現(xiàn)有的作業(yè)管理系統(tǒng)通常只能查詢關(guān)于應(yīng)用的總體運行狀態(tài)(即,退出、掛起、排隊和運行)。換言之,現(xiàn)有的作業(yè)管理系統(tǒng)并不能監(jiān)測應(yīng)用執(zhí)行性能。
因此,本發(fā)明提供一種新的監(jiān)測應(yīng)用執(zhí)行性能的技術(shù)方案。
技術(shù)實現(xiàn)要素:
為此,本發(fā)明提供一種新的監(jiān)測應(yīng)用執(zhí)行性能的方案,有效的解決了上面至少一個問題。
根據(jù)本發(fā)明的一個方面,提供一種監(jiān)測應(yīng)用執(zhí)行性能的方法,適于在計算設(shè)備中執(zhí)行。該應(yīng)用適于在服務(wù)器集群中執(zhí)行。該服務(wù)器集群包括多個計算節(jié)點。每個計算節(jié)點包括一個或多個適于被進(jìn)程占用的計算單元。該方法包括下述步驟。獲取與執(zhí)行應(yīng)用的計算節(jié)點對應(yīng)的節(jié)點列表?;谠摴?jié)點列表,獲取執(zhí)行應(yīng)用的每個計算節(jié)點對應(yīng)的進(jìn)程列表和函數(shù)列表?;谒@取的每個進(jìn)程列表,提取其中與應(yīng)用關(guān)聯(lián)的進(jìn)程項。從每個關(guān)聯(lián)的進(jìn)程對應(yīng)的函數(shù)列表中,提取與該進(jìn)程項關(guān)聯(lián)的函數(shù)項。根據(jù)所提取與應(yīng)用關(guān)聯(lián)的進(jìn)程項和與每個提取的進(jìn)程項關(guān)聯(lián)的函數(shù)項,監(jiān)測應(yīng)用的執(zhí)行性能。
可選地,在根據(jù)本發(fā)明的監(jiān)測應(yīng)用執(zhí)行性能的方法中,進(jìn)程項包括下述中至少一部分:進(jìn)程標(biāo)識、進(jìn)程名稱、進(jìn)程狀態(tài)、對所占用的計算單元的使用率、內(nèi)存使用量、內(nèi)存占用率、進(jìn)程持續(xù)時間、父進(jìn)程標(biāo)識、所占用的計算單元的標(biāo)識、交換區(qū)(swap)的使用量和進(jìn)程創(chuàng)建時間。函數(shù)項包括:函數(shù)名稱、該函數(shù)所屬的執(zhí)行模塊的名稱、單位時間內(nèi)對該函數(shù)累計的采樣次數(shù)、和該函數(shù)的采樣次數(shù)占執(zhí)行該函數(shù)的進(jìn)程所在的計算節(jié)點在該單位時間內(nèi)對函數(shù)采樣的總次數(shù)的比例。
可選地,根據(jù)本發(fā)明的監(jiān)測應(yīng)用執(zhí)行性能的方法還包括獲取執(zhí)行應(yīng)用的計算節(jié)點的異常運行狀態(tài),其中,每個計算節(jié)點的異常運行狀態(tài)包括下述中至少一種:內(nèi)存使用量超過第一閾值并使用交換區(qū)(swap),代碼向量化(VEC)比率低于第二閾值,指令集執(zhí)行(AVX)比率低于第三閾值,CPU使用率超過第四閾值且浮點運算速率(Gflops)低于第五閾值。
在獲取到執(zhí)行應(yīng)用的任一個計算節(jié)點的異常運行狀態(tài)時,根據(jù)本發(fā)明的監(jiān)測應(yīng)用執(zhí)行性能的方法還包括根據(jù)所提取與所述應(yīng)用關(guān)聯(lián)的進(jìn)程項和與每個提取的進(jìn)程項關(guān)聯(lián)的函數(shù)項,判斷引起該計算節(jié)點運行異常的進(jìn)程項和函數(shù)項,以便定位應(yīng)用的性能瓶頸。
可選地,在根據(jù)本發(fā)明的監(jiān)測應(yīng)用執(zhí)行性能的方法中,從每個關(guān)聯(lián)的進(jìn)程項所占用的計算單元所對應(yīng)的函數(shù)列表中,提取與該進(jìn)程項關(guān)聯(lián)的函數(shù)項的步驟包括:根據(jù)進(jìn)程項的進(jìn)程標(biāo)識,從所對應(yīng)的函數(shù)列表中提取與該進(jìn)程名稱相關(guān)聯(lián)的函數(shù)項。服務(wù)器集群為高性能計算集群。
根據(jù)本發(fā)明的又一個方面,提供一種監(jiān)測應(yīng)用執(zhí)行性能的裝置,適于駐留在計算設(shè)備中。該應(yīng)用適于在服務(wù)器集群中執(zhí)行。服務(wù)器集群例如為高性能計算集群。該服務(wù)器集群包括多個計算節(jié)點。每個計算節(jié)點包括一個或多個適于被進(jìn)程占用的計算單元。該裝置包括第一獲取單元、第二獲取單元、第一篩選單元、第二篩選單元和監(jiān)測單元。其中,第一獲取單元適于獲取與執(zhí)行應(yīng)用的計算節(jié)點對應(yīng)的節(jié)點列表。第二獲取單元基于該節(jié)點列表,適于獲取執(zhí)行應(yīng)用的每個計算節(jié)點對應(yīng)的進(jìn)程列表和函數(shù)列表。第一篩選單元基于所獲取的每個進(jìn)程列表,提取其中與應(yīng)用關(guān)聯(lián)的進(jìn)程項。第二篩選單元從每個關(guān)聯(lián)的進(jìn)程對應(yīng)的函數(shù)列表中,提取與該進(jìn)程項關(guān)聯(lián)的函數(shù)項。監(jiān)測單元適于根據(jù)所提取與應(yīng)用關(guān)聯(lián)的進(jìn)程項和與每個提取的進(jìn)程項關(guān)聯(lián)的函數(shù)項,監(jiān)測應(yīng)用的執(zhí)行性能。
根據(jù)本發(fā)明的又一個方面,提供一種高性能計算系統(tǒng),包括服務(wù)器集群、作業(yè)管理設(shè)備和駐留有根據(jù)本發(fā)明的監(jiān)測應(yīng)用執(zhí)行性能的裝置的計算設(shè)備。其中,服務(wù)器集群包括多個計算節(jié)點。每個計算節(jié)點中駐留有獲取計算節(jié)點中進(jìn)程信息和函數(shù)信息的性能收集器。作業(yè)管理設(shè)備適于接收應(yīng)用提交終端所提交的待執(zhí)行的應(yīng)用,并將該待執(zhí)行的應(yīng)用分配給至少一個計算節(jié)點。計算設(shè)備適于從性能收集器獲取進(jìn)程列表和函數(shù)列表。
綜上,根據(jù)本發(fā)明的監(jiān)測應(yīng)用(作業(yè))執(zhí)行性能的技術(shù)方案,能夠獲取多個執(zhí)行應(yīng)用的計算節(jié)點中每個計算單元的進(jìn)程列表和函數(shù)列表。進(jìn)而,本發(fā)明的技術(shù)方案,可以從進(jìn)程列表和函數(shù)列表中提取與本應(yīng)用相關(guān)的進(jìn)程項和函數(shù)項。在此基礎(chǔ)上,本發(fā)明的技術(shù)方案可以從執(zhí)行性能角度,監(jiān)測應(yīng)用的執(zhí)行過程。進(jìn)一步,本發(fā)明的技術(shù)方案還可以獲取執(zhí)行應(yīng)用的計算節(jié)點的異常運行狀態(tài),根據(jù)所提取的進(jìn)程項和函數(shù)項,確定引起計算節(jié)點運行異常的進(jìn)程項和函數(shù)項,以便定位應(yīng)用的性能瓶頸。
附圖說明
為了實現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。
圖1示出了根據(jù)本發(fā)明一些實施例的高性能計算系統(tǒng)100的示意圖;
圖2示出了根據(jù)本發(fā)明一些實施例的監(jiān)測應(yīng)用執(zhí)行性能的裝置200的示意圖;
圖3A示出了一個處于異常運行狀態(tài)的計算節(jié)點的性能指標(biāo)界面示意圖;
圖3B示出了又一個處于異常運行狀態(tài)的計算節(jié)點的性能指標(biāo)界面示意圖;
圖3C示出了又一個處于異常運行狀態(tài)的計算節(jié)點的性能指標(biāo)界面示意圖;
圖4示出了根據(jù)本發(fā)明一些實施例的監(jiān)測應(yīng)用執(zhí)行性能的方法400的流程圖;以及
圖5示出了根據(jù)本發(fā)明一些實施例的監(jiān)測應(yīng)用執(zhí)行性能的方法500的流程圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一些實施例的高性能計算系統(tǒng)100的示意圖。如圖1所示,系統(tǒng)100包括作業(yè)管理設(shè)備110、用于監(jiān)測應(yīng)用執(zhí)行性能的計算設(shè)備120和多個執(zhí)行計算任務(wù)的計算節(jié)點130-1、130-2...130-N。這里,每個計算節(jié)點可以是一個獨立的計算實體(例如一臺高性能計算機或者云網(wǎng)絡(luò)中一臺服務(wù)器實體)。總體而言,系統(tǒng)100可以將用戶提交的應(yīng)用(作業(yè)),分配給至少一個計算節(jié)點來執(zhí)行。
取決于期望的配置,每個計算節(jié)點可以包括一個或多個處理器。每個處理器可以是單核或多核配置。這里,處理器的每個核可以稱為一個計算單元。一個或多個進(jìn)程可以占用一個計算單元來執(zhí)行運算。本發(fā)明的計算節(jié)點可以駐留有性能收集器。這里,性能收集器可以收集關(guān)于計算節(jié)點的各種性能指標(biāo)特征。性能指標(biāo)特征例如包括處理器(或者以處理器每個核為單位)使用率、內(nèi)存使用率、網(wǎng)絡(luò)發(fā)送和接收速度、磁盤讀寫速度、代碼向量化比率和指令集執(zhí)行比率等,但不限于此。
在根據(jù)本發(fā)明一個實施例中,駐留在一個計算節(jié)點的性能收集器可以被配置為通過調(diào)用該計算節(jié)點的操作系統(tǒng)(例如Linux或Windows server等)提供的標(biāo)準(zhǔn)接口(API)來獲取性能指標(biāo)特征。另外,性能收集器還可以是公知的各種可以收集計算節(jié)點性能數(shù)據(jù)的應(yīng)用,這里不再贅述。
另外,根據(jù)本發(fā)明的性能收集器還可以收集進(jìn)程信息和函數(shù)信息。進(jìn)程是計算節(jié)點上操作系統(tǒng)進(jìn)行資源分配和調(diào)度的基本的單位。進(jìn)程是執(zhí)行程序的實體。程序是由源代碼組成的資源文件。源代碼由一系列的函數(shù)組成。一般而言,源代碼可以按照代碼模塊進(jìn)行劃分。一個源代碼文件可以包括一個或多個代碼模塊,即執(zhí)行模塊。每個代碼模塊可以包括一個或多個函數(shù)。每個進(jìn)程對應(yīng)一條進(jìn)程信息(即一個進(jìn)程項)。進(jìn)程信息例如可以包括進(jìn)程ID、進(jìn)程狀態(tài)、該進(jìn)程對其占用的計算單元的使用率、內(nèi)存占用率、進(jìn)程持續(xù)時間、父進(jìn)程標(biāo)識、所占用的計算單元的標(biāo)識、交換區(qū)(swap)的使用量,進(jìn)程創(chuàng)建時間等。這里,取決于計算節(jié)點中操作系統(tǒng)的版本,進(jìn)程狀態(tài)可以有不同的分類標(biāo)準(zhǔn)。以Linux為例,進(jìn)程狀態(tài)可以包括R、S、D、T、Z和X。其中,R表示TASK_RUNNING,即可執(zhí)行狀態(tài)。S表示TASK_INTERRUPTIBLE,即可中斷的睡眠狀態(tài)。D表示TASK_UNINTERRUPTIBLE,即不可中斷的睡眠狀態(tài)。T表示TASK_STOPPED,即暫停狀態(tài)。Z表示TASK_ZOMBIE,即僵死狀態(tài)。X表示TASK_DEAD,即退出狀態(tài)。
函數(shù)信息(即函數(shù)項)可以包括:函數(shù)名稱、名稱標(biāo)識。該函數(shù)所屬的執(zhí)行模塊的名稱、單位時間內(nèi)對該函數(shù)累計的采樣次數(shù)和該函數(shù)的采樣次數(shù)占執(zhí)行該函數(shù)的計算單元在該單位時間內(nèi)對函數(shù)采樣的總次數(shù)的比例等。需要說明的是,總的函數(shù)采樣次數(shù)是對單位時間(例如1分鐘)內(nèi)所采集到的所有函數(shù)的總數(shù)。
作業(yè)管理設(shè)備110或者其他的性能數(shù)據(jù)收集服務(wù)器(圖中未示出)可以從每個計算節(jié)點的性能收集器獲取到進(jìn)程信息和函數(shù)信息。用于監(jiān)測應(yīng)用執(zhí)行性能的計算設(shè)備120可以從作業(yè)管理設(shè)備110或者性能收集服務(wù)器獲取到進(jìn)程信息和函數(shù)信息。在此基礎(chǔ)上,計算設(shè)備120可以提取一個應(yīng)用相關(guān)的進(jìn)程信息和函數(shù)信息,以定位該應(yīng)用的性能瓶頸。下面結(jié)合圖2對監(jiān)測應(yīng)用執(zhí)行性能的裝置進(jìn)行示例性說明。
圖2示出了根據(jù)本發(fā)明一些實施例的監(jiān)測應(yīng)用執(zhí)行性能的裝置200的示意圖。裝置200適于駐留在計算設(shè)備(120)中。這里,計算設(shè)備例如可以被實現(xiàn)為桌面計算機或筆記本計算機配置的個人計算機。計算設(shè)備也可以被實現(xiàn)為服務(wù)器設(shè)備或者移動終端(例如手機、個人數(shù)字設(shè)備或者可穿戴智能設(shè)備等),這里不再贅述。待監(jiān)測的應(yīng)用可以在服務(wù)器集群(100)中執(zhí)行。
裝置200包括第一獲取單元210、第二獲取單元220、第三獲取單元230、第一篩選單元240和監(jiān)測單元250。
為了對一個應(yīng)用的執(zhí)行性能進(jìn)行監(jiān)測,第一獲取單元210可以獲取對應(yīng)執(zhí)行該應(yīng)用的計算節(jié)點的節(jié)點列表。這里,第一獲取單元210例如是從作業(yè)管理設(shè)備(110)獲取到該節(jié)點列表。在一個實施例中,應(yīng)用對應(yīng)的節(jié)點列表的數(shù)據(jù)示例如下:
上文示出了1個節(jié)點列表。該節(jié)點列表的第1個字段(13010)為應(yīng)用標(biāo)識。第2個字段(named2)為應(yīng)用名稱。第3個字段及以后的內(nèi)容為執(zhí)行應(yīng)用13010的計算節(jié)點的標(biāo)識(例如node023.pa)。
第二獲取單元220根據(jù)節(jié)點列表,獲取節(jié)點列表中每個計算節(jié)點對應(yīng)的進(jìn)程列表和函數(shù)列表。在根據(jù)本發(fā)明一個實施例中,第二獲取單元220可以獲取每個計算節(jié)點(其標(biāo)識例如node023.pa)對應(yīng)的性能指標(biāo)文件。該文件包括了這個計算節(jié)點中執(zhí)行的每個作業(yè)與相關(guān)聯(lián)的進(jìn)程項的對應(yīng)關(guān)系、每個計算節(jié)點對應(yīng)的進(jìn)程列表(即這個計算節(jié)點中執(zhí)行的所有進(jìn)程項組成的列表)和對應(yīng)的函數(shù)列表(即該計算節(jié)點中執(zhí)行的所有函數(shù)項組成的列表)。
根據(jù)本發(fā)明一個實施例,進(jìn)程列表的數(shù)據(jù)示例如下:
{55958wugh 2215744 D 0.3 3.8 0:15.72 55929 0 17 0.3 2265784 2015/10/29-21:24:4opa deea37eade087537f0e6499426957c5b}
{55960wugh 2174616 D 0.3 3.8 0:14.30 55929 0 19 0.3 2306908 2015/10/29-21:24:4opa deea37eade087537f0e6499426957c5b}
{55941wugh 2437192 D 0.2 4.2 0:12.65 55929 0 0 0.2 2042588 2015/10/29-21:24:4opa deea37eade087537f0e6499426957c5b}
上述進(jìn)程列表示出了進(jìn)程標(biāo)識分別為55958、55960和55941的進(jìn)程項。以標(biāo)識為55958的進(jìn)程項為例,進(jìn)程項包括進(jìn)程標(biāo)識(55958)、該進(jìn)程的內(nèi)存使用量(2215744字節(jié))、進(jìn)程狀態(tài)(D)、對所占用的計算單元的使用率(0.3%)、內(nèi)存使用率(3.8%)、進(jìn)程持續(xù)時間(0:15.72,即0分15.72秒)、父進(jìn)程標(biāo)識(55929)、所占用的計算單元的標(biāo)識(17)、交換區(qū)的使用量(2265784字節(jié))、進(jìn)程創(chuàng)建時間(2015/10/29-21:24:4)、進(jìn)程名稱(opa)和MD5校驗碼(deea37eade087537f0e6499426957c5b)。這里對進(jìn)程項的部分字段進(jìn)行了示例性說明。本發(fā)明對進(jìn)程項的字段數(shù)不做過多限制。
根據(jù)本發(fā)明一個實施例,函數(shù)列表的數(shù)據(jù)示例如下:
在上述函數(shù)列表中,第1行中451162131為本次所統(tǒng)計的總的函數(shù)采樣次數(shù)。第2-5行分別為函數(shù)名稱為tanh.L、scan_swap_map、scan_swap_map和intel_idle的4個函數(shù)項。以tanh.L的函數(shù)項為例,該函數(shù)在總的函數(shù)采樣次數(shù)中占比為23.222181%,采樣次數(shù)為451162131,所屬的執(zhí)行模塊名稱為nemo.exe。
上述對函數(shù)列表和進(jìn)程列表進(jìn)行了示例性說明。但不限于此,根據(jù)本發(fā)明的實施例可以使用其他格式的函數(shù)列表和進(jìn)程列表。總之,函數(shù)列表和進(jìn)程列表被配置為可以從其中提取與應(yīng)用相關(guān)的函數(shù)項和進(jìn)程項。
第一篩選單元230可以基于第二獲取單元220所獲取的每個進(jìn)程列表,提取與應(yīng)用(作業(yè))相關(guān)的進(jìn)程項。在一個實施例中,第一篩選單元230可以從對應(yīng)一個計算節(jié)點的性能指標(biāo)文件中提取與應(yīng)用相關(guān)的進(jìn)程項,但不限于此。
第二篩選單元240可以基于第一篩選單元230所提取的進(jìn)程項,從函數(shù)列表中提取與進(jìn)程項關(guān)聯(lián)的函數(shù)項。即,第二篩選單元240提取與應(yīng)用關(guān)聯(lián)的函數(shù)項。在一個實施例中,第二篩選單元240基于每個函數(shù)項中進(jìn)程標(biāo)識字段,從函數(shù)列表中提取與進(jìn)程名稱相關(guān)聯(lián)的函數(shù)項。
這樣,監(jiān)測單元250可以根據(jù)所提取的與應(yīng)用關(guān)聯(lián)的進(jìn)程項和函數(shù)項,監(jiān)測應(yīng)用的執(zhí)行性能。取決于具體的規(guī)則配置,監(jiān)測單元250可以通過詳細(xì)的進(jìn)程項和函數(shù)項內(nèi)容,從性能評價的角度來分析應(yīng)用的執(zhí)行過程,以便優(yōu)化應(yīng)用。
可選地,監(jiān)測單元250還可以獲取執(zhí)行應(yīng)用的計算節(jié)點的異常運行狀態(tài)。在一個例子中,監(jiān)測單元250可以直接根據(jù)來自計算節(jié)點的性能指標(biāo)(例如,性能收集器所提供的數(shù)據(jù))來確定是否處于異常運行狀態(tài)。在又一個例子中,監(jiān)測單元250可以接收異常判斷模塊(圖中未示出)在確定計算節(jié)點異常時所發(fā)出的關(guān)于異常運行狀態(tài)的報警消息。
這里,一個計算節(jié)點的異常運行狀態(tài)可以有多種。例如,一個計算節(jié)點的異常運行狀態(tài)可以是內(nèi)存使用量超過第一閾值并使用交換區(qū)(swap)。如圖3A示出了一個處于異常運行狀態(tài)的計算節(jié)點的性能指標(biāo)界面示意圖。
在又一個例子中,計算節(jié)點的異常運行狀態(tài)為代碼向量化(VEC)比率低于第二閾值和\或指令集執(zhí)行(AVX)比率低于第三閾值。圖3B示出了又一個處于異常運行狀態(tài)的計算節(jié)點的性能指標(biāo)界面示意圖。
在又一個例子中,計算節(jié)點的異常運行狀態(tài)為CPU使用率超過第四閾值且浮點運算速率(Gflops)低于第五閾值。圖3C示出了又一個處于異常運行狀態(tài)的計算節(jié)點的性能指標(biāo)界面示意圖。需要說明的是,上述僅僅是對異常運行狀態(tài)的示例性說明,本發(fā)明對異常運行狀態(tài)的種類和規(guī)則不作過多限制。
在獲取到一個計算節(jié)點處于異常運行狀態(tài)時,監(jiān)測單元250可以根據(jù)所提取的、對應(yīng)這個異常的計算節(jié)點的函數(shù)項和進(jìn)程項,判斷引起這個計算節(jié)點運行異常的進(jìn)程項和函數(shù)項,以定位應(yīng)用的性能瓶頸。
圖4示出了根據(jù)本發(fā)明一些實施例的監(jiān)測應(yīng)用執(zhí)行性能的方法400的流程圖。方法400適于在計算設(shè)備中執(zhí)行。待監(jiān)測的應(yīng)用適于在服務(wù)器集群中執(zhí)行。該服務(wù)器集群包括多個計算節(jié)點。該服務(wù)器集群例如為高性能計算集群。每個計算節(jié)點包括一個或多個適于被進(jìn)程占用的計算單元。
方法400始于步驟S410,獲取與執(zhí)行應(yīng)用的計算節(jié)點對應(yīng)的節(jié)點列表。步驟S410的具體實施方式與上文中第一獲取單元210一致,這里不再贅述。
基于步驟S410中獲取的節(jié)點列表,方法400執(zhí)行步驟S420。在步驟S420中,獲取執(zhí)行應(yīng)用的每個計算節(jié)點對應(yīng)的進(jìn)程列表和函數(shù)列表。步驟S420的具體實施方式與上文中第二獲取單元220一致,這里不再贅述。
基于步驟S420中獲取的每個進(jìn)程列表,方法400執(zhí)行步驟S430。在步驟S430中,提取每個進(jìn)程列表中與應(yīng)用關(guān)聯(lián)的進(jìn)程項。步驟S430的具體實施方式與上文中第一篩選單元230一致,這里不再贅述。在一個實施例中,每個進(jìn)程項包括下述中至少一部分:進(jìn)程標(biāo)識、進(jìn)程名稱、進(jìn)程狀態(tài)、對所占用的計算單元的使用率、內(nèi)存使用量、內(nèi)存占用率、進(jìn)程持續(xù)時間、父進(jìn)程標(biāo)識、所占用的計算單元的標(biāo)識、交換區(qū)(swap)的使用量和進(jìn)程創(chuàng)建時間。
基于步驟S430中每個關(guān)聯(lián)的進(jìn)程項,方法400進(jìn)入步驟S440。在步驟S440中,從相關(guān)聯(lián)的每個進(jìn)程項所對應(yīng)的函數(shù)列表中,提取與該進(jìn)程項關(guān)聯(lián)的函數(shù)項。根據(jù)一個實施例,在步驟S440中,根據(jù)進(jìn)程項的進(jìn)程標(biāo)識,從所對應(yīng)的函數(shù)列表中提取與該進(jìn)程標(biāo)識相關(guān)聯(lián)的函數(shù)項。步驟S440的更具體實施方式與上文中第二篩選單元240一致,這里不再贅述。在一個實施例中,每個函數(shù)項包括:函數(shù)名稱、該函數(shù)所屬的執(zhí)行模塊的名稱、單位時間內(nèi)對該函數(shù)累計的采樣次數(shù)、和該函數(shù)的采樣次數(shù)占執(zhí)行該函數(shù)的進(jìn)程所在的計算節(jié)點在該單位時間內(nèi)對函數(shù)采樣的總次數(shù)的比例。
根據(jù)步驟S430的到的進(jìn)程項和步驟S440得到的函數(shù)項,方法執(zhí)行步驟S450,監(jiān)測應(yīng)用的執(zhí)行性能。步驟S450的具體實施方式與上文中監(jiān)測單元250一致,這里不再贅述。
圖5示出了根據(jù)本發(fā)明一些實施例的監(jiān)測應(yīng)用執(zhí)行性能的方法500的流程圖。方法500適于在計算設(shè)備中執(zhí)行。
方法500包括步驟S510、S520、S530、S540和S550。步驟S510至S550分別對應(yīng)上文中步驟S410至S450,這里不再贅述。
方法500還包括步驟S560。在步驟S550中,獲取執(zhí)行應(yīng)用的計算節(jié)點的異常運行狀態(tài)。其中,每個計算節(jié)點的異常運行狀態(tài)包括下述中至少一種:內(nèi)存使用量超過第一閾值并使用交換區(qū)(swap),代碼向量化(VEC)比率低于第二閾值,指令集執(zhí)行(AVX)比率低于第三閾值,CPU使用率超過第四閾值且浮點運算速率(Gflops)低于第五閾值。步驟S550獲取計算節(jié)點的異常運行狀態(tài)的方式與上文中監(jiān)測單元250一致,這里不再贅述。
在步驟S560中獲取到一個計算節(jié)點的異常運行狀態(tài)時,方法500進(jìn)入步驟S570。在步驟S570中,根據(jù)所提取與應(yīng)用關(guān)聯(lián)的進(jìn)程項和函數(shù)項,判斷引起該計算節(jié)點運行異常的進(jìn)程項和函數(shù)項,以便定位應(yīng)用的性能瓶頸。
A10、如A8或A9所述的裝置,其中,所述函數(shù)項的函數(shù)信息包括:函數(shù)名稱、該函數(shù)所屬的執(zhí)行模塊的名稱、單位時間內(nèi)對該函數(shù)累計的采樣次數(shù)、和該函數(shù)的采樣次數(shù)占執(zhí)行該函數(shù)的進(jìn)程所在的計算節(jié)點在該單位時間內(nèi)對函數(shù)采樣的總次數(shù)的比例。A11、如A8-A10中任一項所述的裝置,其中,所述監(jiān)測單元還適于獲取所述執(zhí)行所述應(yīng)用的計算節(jié)點的異常運行狀態(tài),其中每個計算節(jié)點的異常運行狀態(tài)包括下述中至少一種:內(nèi)存使用量超過第一閾值并使用交換區(qū)(swap),代碼向量化(VEC)比率低于第二閾值,指令集執(zhí)行(AVX)比率低于第三閾值,CPU使用率超過第四閾值且浮點運算速率(Gflops)低于第五閾值。A12、如A11所述的裝置,在獲取到執(zhí)行所述應(yīng)用的任一個計算節(jié)點的異常運行狀態(tài)時,該監(jiān)測單元還適于:根據(jù)所述第一篩選單元所獲取的進(jìn)程項和第二篩選單元所獲取的函數(shù)項,判斷引起該計算節(jié)點運行異常的進(jìn)程項和函數(shù)項,以便定位所述應(yīng)用的性能瓶頸。A13、如A8-A12中任一項所述的裝置,其中,所述第二篩選單元適于根據(jù)下述方式從相關(guān)聯(lián)的每個進(jìn)程項所占用的計算單元所對應(yīng)的函數(shù)列表中,提取與該進(jìn)程項關(guān)聯(lián)的函數(shù)項:根據(jù)進(jìn)程項的進(jìn)程標(biāo)識,從所對應(yīng)的函數(shù)列表中提取與該進(jìn)程名稱相關(guān)聯(lián)的函數(shù)項。A14、如A8-A13中任一項所述的裝置,其中,所述服務(wù)器集群為高性能計算集群。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下被實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個或多個設(shè)備中。前述示例中的模塊可以組合為一個模塊或者此外可以分成多個子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。
此外,所述實施例中的一些在此被描述成可以由計算機系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實施的方法或方法元素的組合。因此,具有用于實施所述方法或方法元素的必要指令的處理器形成用于實施該方法或方法元素的裝置。此外,裝置實施例的在此所述的元素是如下裝置的例子:該裝置用于實施由為了實施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示涉及類似對象的不同實例,并且并不意圖暗示這樣被描述的對象必須具有時間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對于本發(fā)明的范圍,對本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。