本發(fā)明涉及任務(wù)處理技術(shù),尤其涉及一種任務(wù)處理方法及任務(wù)處理裝置。
背景技術(shù):
計算環(huán)境中,非統(tǒng)一內(nèi)存訪問架構(gòu)(numa,nonuniformmemoryaccessarchitecture)對性能帶來較大挑戰(zhàn),例如,常會出現(xiàn)跨處理器(也即numa節(jié)點(diǎn))之間的頻繁內(nèi)存訪問。實(shí)際應(yīng)用中,跨節(jié)點(diǎn)的內(nèi)存訪問會增大numa系統(tǒng)的開銷,常會出現(xiàn)numa系統(tǒng)大多numa節(jié)點(diǎn)中中央處理器(cpu)占用較多,進(jìn)而降低了系統(tǒng)性能。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實(shí)施例提供了一種任務(wù)處理方法及任務(wù)處理裝置,能至少解決現(xiàn)有技術(shù)中存在的上述問題。
本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例第一方面提供了一種任務(wù)處理方法,包括:
采集到至少一個目標(biāo)執(zhí)行任務(wù),獲取所述至少一個目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址;
基于每一所述目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址確定出每一所述目標(biāo)執(zhí)行任務(wù)的物理訪問地址;其中,所述目標(biāo)執(zhí)行任務(wù)由至少兩個不同的中央處理器運(yùn)行;所述物理訪問地址表征運(yùn)行所述目標(biāo)執(zhí)行任務(wù)的至少兩個中央處理器的處理器標(biāo)識;
至少利用物理訪問地址所表征的處理器標(biāo)識確定出所述目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例,基于數(shù)據(jù)分布比例確定是否對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理,以便于將所述至少一個目標(biāo)執(zhí)行任務(wù)的全部數(shù)據(jù)運(yùn)行于同一中央處理器中。
上述方案中,所述采集到至少一個目標(biāo)執(zhí)行任務(wù),包括:
采集到至少一個執(zhí)行任務(wù),對所述至少一個執(zhí)行任務(wù)進(jìn)行篩選,并篩選出滿足預(yù)設(shè)規(guī)則的至少一個目標(biāo)執(zhí)行任務(wù);其中,所述預(yù)設(shè)規(guī)則表征執(zhí)行任務(wù)的訪問延時數(shù)據(jù)大于第一閾值;或者,表征執(zhí)行任務(wù)的目標(biāo)參數(shù)滿足預(yù)設(shè)條件。
上述方案中,所述數(shù)據(jù)分布比例表征所述目標(biāo)執(zhí)行任務(wù)在所述至少兩個中央處理器中第一中央處理器運(yùn)行的總數(shù)據(jù)量與在所述至少兩個中央處理器中其他中央處理器運(yùn)行的總數(shù)據(jù)量的分布比例;對應(yīng)地,所述基于數(shù)據(jù)分布比例確定是否對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理,包括:
判斷數(shù)據(jù)分布比例是否小于第二閾值;
確定小于所述第二閾值時,對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理。
上述方案中,所述對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理,包括:
對所述至少一個目標(biāo)執(zhí)行任務(wù)中的至少部分?jǐn)?shù)據(jù)所運(yùn)行的內(nèi)存訪問地址進(jìn)行遷移;或者,
對所述至少一個目標(biāo)執(zhí)行任務(wù)對應(yīng)的進(jìn)程進(jìn)行遷移。
本發(fā)明實(shí)施例第二方面提供了一種任務(wù)處理裝置,包括:
處理器,用于采集到至少一個目標(biāo)執(zhí)行任務(wù),獲取所述至少一個目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址;基于每一所述目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址確定出每一所述目標(biāo)執(zhí)行任務(wù)的物理訪問地址;其中,所述目標(biāo)執(zhí)行任務(wù)由至少兩個不同的中央處理器運(yùn)行;所述物理訪問地址表征運(yùn)行所述目標(biāo)執(zhí)行任務(wù)的至少兩個中央處理器的處理器標(biāo)識;
計數(shù)器,用于至少利用物理訪問地址所表征的處理器標(biāo)識確定出所述目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例;
對應(yīng)地,所述處理器,還用于基于數(shù)據(jù)分布比例確定是否對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理,以便于將所述至少一個目標(biāo)執(zhí)行任務(wù)的全部數(shù)據(jù)運(yùn)行于同一中央處理器中。
上述方案中,所述處理器,還用于采集到至少一個執(zhí)行任務(wù),對所述至少一個執(zhí)行任務(wù)進(jìn)行篩選,并篩選出滿足預(yù)設(shè)規(guī)則的至少一個目標(biāo)執(zhí)行任務(wù);其中,所述預(yù)設(shè)規(guī)則表征執(zhí)行任務(wù)的訪問延時數(shù)據(jù)大于第一閾值;或者,表征執(zhí)行任務(wù)的目標(biāo)參數(shù)滿足預(yù)設(shè)條件。
上述方案中,所述數(shù)據(jù)分布比例表征所述目標(biāo)執(zhí)行任務(wù)在所述至少兩個中央處理器中第一中央處理器運(yùn)行的總數(shù)據(jù)量與在所述至少兩個中央處理器中其他中央處理器運(yùn)行的總數(shù)據(jù)量的分布比例;對應(yīng)地,
所述處理器,還用于判斷數(shù)據(jù)分布比例是否小于第二閾值;確定小于所述第二閾值時,對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理。
上述方案中,所述處理器,還用于對所述至少一個目標(biāo)執(zhí)行任務(wù)中的至少部分?jǐn)?shù)據(jù)所運(yùn)行的內(nèi)存訪問地址進(jìn)行遷移;或者,對所述至少一個目標(biāo)執(zhí)行任務(wù)對應(yīng)的進(jìn)程進(jìn)行遷移。
上述方案中,所述處理器,還用于基于每一所述目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址確定出所述目標(biāo)執(zhí)行任務(wù)的物理頁標(biāo)識;基于物理頁標(biāo)識確定出每一所述目標(biāo)執(zhí)行任務(wù)的物理訪問地址。
本發(fā)明實(shí)施例所述的任務(wù)處理方法及任務(wù)處理裝置,在采集到至少一個目標(biāo)執(zhí)行任務(wù)后,通獲取該目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址來確定出目標(biāo)執(zhí)行任務(wù)的物理訪問地址,進(jìn)而利用物理訪問地址來確定出目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例,如此,基于數(shù)據(jù)分布比例確定是否對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理,以便于將所述至少一個目標(biāo)執(zhí)行任務(wù)的全部數(shù)據(jù)運(yùn)行于同一中央處理器中,因此,本發(fā)明實(shí)施例為實(shí)現(xiàn)高效性能奠定了基礎(chǔ)。而且,本發(fā)明實(shí)施例是基于目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例來確定是否進(jìn)行數(shù)據(jù)遷移的,與現(xiàn)有利用模擬缺頁方式觀測跨節(jié)點(diǎn)訪問來源的方式相比,本發(fā)明實(shí)施例無需模擬缺頁異常,所以避免了因為操作系統(tǒng)維護(hù)數(shù)據(jù)結(jié)構(gòu)識別是否真的缺頁而導(dǎo)致統(tǒng)計出的信息不準(zhǔn)確的問題,也就是說,與現(xiàn)有利用模擬缺頁方式觀測跨節(jié)點(diǎn)訪問來源的方式相比,本發(fā)明實(shí)施例更加高效準(zhǔn)確。
附圖說明
圖1為本發(fā)明實(shí)施例任務(wù)處理方法的實(shí)現(xiàn)流程示意圖;
圖2為本發(fā)明實(shí)施例任務(wù)處理方法中任務(wù)遷移前和任務(wù)遷移后的對比圖;
圖3為本發(fā)明實(shí)施例任務(wù)處理裝置的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了能夠更加詳盡地了解本發(fā)明的特點(diǎn)與技術(shù)內(nèi)容,下面結(jié)合附圖對本發(fā)明的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述,所附附圖僅供參考說明之用,并非用來限定本發(fā)明。
實(shí)施例一
本實(shí)施例提供了一種任務(wù)處理方法;所述方法可以具體應(yīng)用于任務(wù)處理裝置,這里,所述任務(wù)處理裝置連接或設(shè)置有多個中央處理器,例如,所述任務(wù)處理裝置設(shè)置或連接有多個numa節(jié)點(diǎn),這樣,當(dāng)多個numa節(jié)點(diǎn)執(zhí)行任務(wù)時,所述任務(wù)管理裝置能夠監(jiān)控跨節(jié)點(diǎn)的內(nèi)存訪問情況,即監(jiān)控哪些進(jìn)程或者哪些內(nèi)存區(qū)域頻繁出現(xiàn)跨節(jié)點(diǎn)的內(nèi)存訪問,進(jìn)而借助內(nèi)存或者進(jìn)程遷移框架對跨節(jié)點(diǎn)訪問的任務(wù)進(jìn)行遷移處理,以便于控制一個任務(wù)對應(yīng)的運(yùn)行數(shù)據(jù)運(yùn)行于同一節(jié)點(diǎn)中,進(jìn)而為實(shí)現(xiàn)高效性能奠定基礎(chǔ)。具體地,圖1為本發(fā)明實(shí)施例任務(wù)處理方法的實(shí)現(xiàn)流程示意圖;如圖1所示,所述方法包括:
步驟101:采集到至少一個目標(biāo)執(zhí)行任務(wù),獲取所述至少一個目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址;
在一具體實(shí)施例中,所述任務(wù)處理裝置并非對所有執(zhí)行任務(wù)都進(jìn)行節(jié)點(diǎn)監(jiān)控,而是有針對性的對特定任務(wù)進(jìn)行監(jiān)控,具體地,所述任務(wù)處理裝置采集到至少一個執(zhí)行任務(wù)后,先對所述至少一個執(zhí)行任務(wù)進(jìn)行篩選,篩選出滿足預(yù)設(shè)規(guī)則任務(wù)作為目標(biāo)執(zhí)行任務(wù),進(jìn)而得到至少一個目標(biāo)執(zhí)行任務(wù)。這里,所述預(yù)設(shè)規(guī)則可以具體表征執(zhí)行任務(wù)的訪問延時數(shù)據(jù)大于第一閾值,例如大于3clock;或者,所述預(yù)設(shè)規(guī)則表征執(zhí)行任務(wù)的目標(biāo)參數(shù)滿足預(yù)設(shè)條件,例如執(zhí)行任務(wù)的內(nèi)存節(jié)點(diǎn)號表征為預(yù)設(shè)內(nèi)存,或執(zhí)行任務(wù)的進(jìn)程號表征為預(yù)設(shè)進(jìn)程,這里,在實(shí)際應(yīng)用中,可以將頻繁出現(xiàn)跨節(jié)點(diǎn)內(nèi)存訪問的進(jìn)程或內(nèi)存區(qū)域作為預(yù)設(shè)進(jìn)程,或者預(yù)設(shè)內(nèi)存,進(jìn)而通過上述方式篩選出目標(biāo)執(zhí)行任務(wù)。當(dāng)然,在實(shí)際應(yīng)用中,還可以根據(jù)實(shí)際需求按照其他方式進(jìn)行篩選,本實(shí)施例對此不作限制。
步驟102:基于每一所述目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址確定出每一所述目標(biāo)執(zhí)行任務(wù)的物理訪問地址;其中,所述目標(biāo)執(zhí)行任務(wù)由至少兩個不同的中央處理器運(yùn)行;所述物理訪問地址表征運(yùn)行所述目標(biāo)執(zhí)行任務(wù)的至少兩個中央處理器的處理器標(biāo)識;
本實(shí)施例中,確定出的目標(biāo)執(zhí)行任務(wù)的運(yùn)行數(shù)據(jù)運(yùn)行于不同的中央處理器,例如,如圖2的左圖所示,目標(biāo)執(zhí)行任務(wù)1中的部分運(yùn)行數(shù)據(jù)運(yùn)行于numa節(jié)點(diǎn)0(node0)中,而另外部分運(yùn)行數(shù)據(jù)運(yùn)行于numa節(jié)點(diǎn)1(node1)中,同時,目標(biāo)執(zhí)行任務(wù)2中的部分運(yùn)行數(shù)據(jù)運(yùn)行于numa節(jié)點(diǎn)0(node0)中,而另外部分運(yùn)行數(shù)據(jù)運(yùn)行于numa節(jié)點(diǎn)1(node1)中,即目標(biāo)執(zhí)行任務(wù)的運(yùn)行數(shù)據(jù)運(yùn)行于不同的節(jié)點(diǎn)中。這里,在目標(biāo)執(zhí)行任務(wù)對應(yīng)的物理訪問地址中攜帶有該目標(biāo)執(zhí)行任務(wù)所運(yùn)行的不同中央處理器的處理器標(biāo)識,該處理器標(biāo)識能夠唯一指向特定中央處理器,如此,便于基于物理訪問地址去統(tǒng)計目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例。
在實(shí)際應(yīng)用中,可以采用如下方式來確定出物理訪問地址,具體地,基于每一所述目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址確定出所述目標(biāo)執(zhí)行任務(wù)的物理頁標(biāo)識;基于物理頁標(biāo)識確定出每一所述目標(biāo)執(zhí)行任務(wù)的物理訪問地址,進(jìn)而為基于物理訪問地址確定出目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例奠定了基礎(chǔ)。
步驟103:至少利用物理訪問地址所表征的處理器標(biāo)識確定出所述目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例,基于數(shù)據(jù)分布比例確定是否對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理。
具體地,當(dāng)數(shù)據(jù)分布比例滿足特定條件時,對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理,實(shí)現(xiàn)將目標(biāo)執(zhí)行任務(wù)的全部數(shù)據(jù)運(yùn)行于同一中央處理器中的目的;如圖2右圖所示,當(dāng)目標(biāo)執(zhí)行任務(wù)1和目標(biāo)執(zhí)行任務(wù)2對應(yīng)的數(shù)據(jù)分布比例滿足特定條件時,對目標(biāo)執(zhí)行任務(wù)1和目標(biāo)執(zhí)行任務(wù)2進(jìn)行數(shù)據(jù)遷移處理,使目標(biāo)執(zhí)行任務(wù)1對應(yīng)的運(yùn)行數(shù)據(jù)全部運(yùn)行于numa節(jié)點(diǎn)1(node1)中,并使目標(biāo)執(zhí)行任務(wù)2對應(yīng)的運(yùn)行數(shù)據(jù)全部運(yùn)行于numa節(jié)點(diǎn)0(node0)中。
這樣,本發(fā)明實(shí)施例所述的方法,在采集到至少一個目標(biāo)執(zhí)行任務(wù)后,通獲取該目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址來確定出目標(biāo)執(zhí)行任務(wù)的物理訪問地址,進(jìn)而利用物理訪問地址來確定出目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例,如此,基于數(shù)據(jù)分布比例確定是否對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理,以便于將所述至少一個目標(biāo)執(zhí)行任務(wù)的全部數(shù)據(jù)運(yùn)行于同一中央處理器中,因此,本發(fā)明實(shí)施例為實(shí)現(xiàn)高效性能奠定了基礎(chǔ)。而且,本發(fā)明實(shí)施例是基于目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例來確定是否進(jìn)行數(shù)據(jù)遷移的,與現(xiàn)有利用模擬缺頁方式觀測跨節(jié)點(diǎn)訪問來源的方式相比,本發(fā)明實(shí)施例無需模擬缺頁異常,所以避免了因為操作系統(tǒng)維護(hù)數(shù)據(jù)結(jié)構(gòu)識別是否真的缺頁而導(dǎo)致統(tǒng)計出的信息不準(zhǔn)確的問題,也就是說,與現(xiàn)有利用模擬缺頁方式觀測跨節(jié)點(diǎn)訪問來源的方式相比,本發(fā)明實(shí)施例更加高效準(zhǔn)確。
實(shí)施例二
基于實(shí)施例一所述的方法,本實(shí)施例提供了數(shù)據(jù)遷移條件,以及數(shù)據(jù)遷移的具體方式;具體地,
在一實(shí)施例中,所述數(shù)據(jù)分布比例具體表征所述目標(biāo)執(zhí)行任務(wù)在所述至少兩個中央處理器中第一中央處理器運(yùn)行的總數(shù)據(jù)量與在所述至少兩個中央處理器中其他中央處理器運(yùn)行的總數(shù)據(jù)量的分布比例;在實(shí)際應(yīng)用中,每一目標(biāo)執(zhí)行任務(wù)對應(yīng)一個主中央處理器,例如,任務(wù)處理裝置在獲取到目標(biāo)執(zhí)行任務(wù)后,會基于負(fù)載均衡等為該目標(biāo)執(zhí)行任務(wù)分配一個特定中央處理器,任務(wù)處理裝置為目標(biāo)執(zhí)行任務(wù)分配的該特定中央處理器即為所述目標(biāo)執(zhí)行任務(wù)對應(yīng)的主處理器,這里,在實(shí)際應(yīng)用中,目標(biāo)執(zhí)行任務(wù)中的部分運(yùn)行數(shù)據(jù)還會運(yùn)行于其他處理器中,該其他處理器可以為輔處理器,此時,所述數(shù)據(jù)分布比例即具體表征目標(biāo)執(zhí)行任務(wù)在主處理器(如第一中央處理器)中運(yùn)行的總數(shù)據(jù)量與在輔處理器中運(yùn)行的總數(shù)據(jù)量的比值。進(jìn)一步地,當(dāng)輔處理器存在多個時,所述數(shù)據(jù)分布比例可以具體表征目標(biāo)執(zhí)行任務(wù)在主處理器(如第一中央處理器)中運(yùn)行的總數(shù)據(jù)量與在一個輔處理器中運(yùn)行的總數(shù)據(jù)量的比值,或者表征目標(biāo)執(zhí)行任務(wù)在主處理器(如第一中央處理器)中運(yùn)行的總數(shù)據(jù)量與在所有輔處理器中運(yùn)行的總數(shù)據(jù)量的比值。這樣,為基于數(shù)據(jù)分布比例確定數(shù)據(jù)遷移策略奠定了基礎(chǔ)。
進(jìn)一步地,當(dāng)確定出數(shù)據(jù)分布比例后,所述任務(wù)處理裝置還判斷數(shù)據(jù)分布比例是否小于第二閾值,如小于50%,確定小于所述第二閾值時,對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理。也就是說,所述任務(wù)處理裝置確定出目標(biāo)執(zhí)行任務(wù)在主處理器運(yùn)行的總數(shù)據(jù)量較少,而輔處理器中運(yùn)行的總數(shù)據(jù)量較多時,才會執(zhí)行數(shù)據(jù)遷移處理,否則,不執(zhí)行。
進(jìn)一步地,所述任務(wù)處理裝置可以采用如下方式對進(jìn)行數(shù)據(jù)遷移處理,具體地,對所述至少一個目標(biāo)執(zhí)行任務(wù)中的至少部分?jǐn)?shù)據(jù)所運(yùn)行的內(nèi)存訪問地址進(jìn)行遷移;或者,對所述至少一個目標(biāo)執(zhí)行任務(wù)對應(yīng)的進(jìn)程進(jìn)行遷移。也就是說,所述任務(wù)處理裝置可以遷移進(jìn)程,或者遷移內(nèi)存訪問地址。
這里,在實(shí)際應(yīng)用中,可以使用硬件計數(shù)器來統(tǒng)計數(shù)據(jù)分布比例,該方式對系統(tǒng)干擾低,而且高效準(zhǔn)確。以下通過具體應(yīng)用示例對本發(fā)明實(shí)施例做進(jìn)一步詳細(xì)說明;具體地,在每個cpu上綁定一項內(nèi)存訪問監(jiān)測服務(wù),該內(nèi)存訪問監(jiān)測服務(wù)對cpu的寄存器機(jī)制進(jìn)行編程。進(jìn)一步地,操作系統(tǒng)啟動時,啟動內(nèi)存訪問監(jiān)測服務(wù)(該服務(wù)有60s定時器時鐘,且可根據(jù)需要關(guān)閉或者繼續(xù)),且在內(nèi)存訪問監(jiān)測服務(wù)啟動或者繼續(xù)時對pebs寄存器進(jìn)行編程,其中,采樣率為100hz,過慮條件為內(nèi)存延遲大于3時鐘,同時分配采樣的硬件緩沖區(qū)的地址。這里,每個采樣到來時,硬件會自動中斷,中斷應(yīng)答從硬件緩沖區(qū)取出中斷發(fā)生的各寄存器狀態(tài)、內(nèi)存訪問地址,與此內(nèi)存訪問地址關(guān)聯(lián)的cpu號、物理頁面號、所在的內(nèi)存節(jié)點(diǎn)號以及進(jìn)程號。在60s定時器中斷發(fā)生時,由cpu號,內(nèi)存節(jié)點(diǎn)號,進(jìn)程號和物理頁面號統(tǒng)計出每個進(jìn)程的每一個采樣物理頁面本地與遠(yuǎn)程訪問比例。若該比例小于1:1,即遠(yuǎn)程訪問較多,則進(jìn)行遷移處理,如進(jìn)行進(jìn)程遷移,或內(nèi)存遷移。
實(shí)施例三
本實(shí)施例提供了一種任務(wù)處理裝置,這里,所述任務(wù)處理裝置連接或設(shè)置有多個中央處理器,例如,所述任務(wù)處理裝置設(shè)置或連接有多個numa節(jié)點(diǎn),這樣,當(dāng)多個numa節(jié)點(diǎn)執(zhí)行任務(wù)時,所述任務(wù)管理裝置能夠監(jiān)控跨節(jié)點(diǎn)的內(nèi)存訪問情況,即監(jiān)控哪些進(jìn)程或者哪些內(nèi)存區(qū)域頻繁出現(xiàn)跨節(jié)點(diǎn)的內(nèi)存訪問,進(jìn)而借助內(nèi)存或者進(jìn)程遷移框架對跨節(jié)點(diǎn)訪問的任務(wù)進(jìn)行遷移處理,以便于控制一個任務(wù)對應(yīng)的運(yùn)行數(shù)據(jù)運(yùn)行于同一節(jié)點(diǎn)中,進(jìn)而為實(shí)現(xiàn)高效性能奠定基礎(chǔ)。具體地,如圖3所示,所述任務(wù)處理裝置包括:
處理器31,用于采集到至少一個目標(biāo)執(zhí)行任務(wù),獲取所述至少一個目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址;基于每一所述目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址確定出每一所述目標(biāo)執(zhí)行任務(wù)的物理訪問地址;其中,所述目標(biāo)執(zhí)行任務(wù)由至少兩個不同的中央處理器運(yùn)行;所述物理訪問地址表征運(yùn)行所述目標(biāo)執(zhí)行任務(wù)的至少兩個中央處理器的處理器標(biāo)識;
計數(shù)器32,用于至少利用物理訪問地址所表征的處理器標(biāo)識確定出所述目標(biāo)執(zhí)行任務(wù)在不同中央處理器的數(shù)據(jù)分布比例;
對應(yīng)地,所述處理器31,還用于基于數(shù)據(jù)分布比例確定是否對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理,以便于將所述至少一個目標(biāo)執(zhí)行任務(wù)的全部數(shù)據(jù)運(yùn)行于同一中央處理器中。
在一具體實(shí)施例中,所述處理器31并非對所有執(zhí)行任務(wù)都進(jìn)行節(jié)點(diǎn)監(jiān)控,而是有針對性的對特定任務(wù)進(jìn)行監(jiān)控,具體地,所述處理器31,還用于采集到至少一個執(zhí)行任務(wù),對所述至少一個執(zhí)行任務(wù)進(jìn)行篩選,并篩選出滿足預(yù)設(shè)規(guī)則的至少一個目標(biāo)執(zhí)行任務(wù);其中,所述預(yù)設(shè)規(guī)則表征執(zhí)行任務(wù)的訪問延時數(shù)據(jù)大于第一閾值;或者,表征執(zhí)行任務(wù)的目標(biāo)參數(shù)滿足預(yù)設(shè)條件。這里,所述預(yù)設(shè)規(guī)則可以具體表征執(zhí)行任務(wù)的訪問延時數(shù)據(jù)大于第一閾值,例如大于3clock;或者,所述預(yù)設(shè)規(guī)則表征執(zhí)行任務(wù)的目標(biāo)參數(shù)滿足預(yù)設(shè)條件,例如執(zhí)行任務(wù)的內(nèi)存節(jié)點(diǎn)號表征為預(yù)設(shè)內(nèi)存,或執(zhí)行任務(wù)的進(jìn)程號表征為預(yù)設(shè)進(jìn)程,在實(shí)際應(yīng)用中,可以將頻繁出現(xiàn)跨節(jié)點(diǎn)內(nèi)存訪問的進(jìn)程或內(nèi)存區(qū)域作為預(yù)設(shè)進(jìn)程,或者預(yù)設(shè)內(nèi)存,進(jìn)而通過上述方式篩選出目標(biāo)執(zhí)行任務(wù)。當(dāng)然,在實(shí)際應(yīng)用中,還可以根據(jù)實(shí)際需求按照其他方式進(jìn)行篩選,本實(shí)施例對此不作限制。
在另一具體實(shí)施例中,所述數(shù)據(jù)分布比例表征所述目標(biāo)執(zhí)行任務(wù)在所述至少兩個中央處理器中第一中央處理器運(yùn)行的總數(shù)據(jù)量與在所述至少兩個中央處理器中其他中央處理器運(yùn)行的總數(shù)據(jù)量的分布比例;在實(shí)際應(yīng)用中,每一目標(biāo)執(zhí)行任務(wù)對應(yīng)一個主中央處理器,例如,任務(wù)處理裝置在獲取到目標(biāo)執(zhí)行任務(wù)后,會基于負(fù)載均衡等為該目標(biāo)執(zhí)行任務(wù)分配一個特定中央處理器,任務(wù)處理裝置為目標(biāo)執(zhí)行任務(wù)分配的該特定中央處理器即為所述目標(biāo)執(zhí)行任務(wù)對應(yīng)的主處理器,這里,在實(shí)際應(yīng)用中,目標(biāo)執(zhí)行任務(wù)中的部分運(yùn)行數(shù)據(jù)還會運(yùn)行于其他處理器中,該其他處理器可以為輔處理器,此時,所述數(shù)據(jù)分布比例即具體表征目標(biāo)執(zhí)行任務(wù)在主處理器(如第一中央處理器)中運(yùn)行的總數(shù)據(jù)量與在輔處理器中運(yùn)行的總數(shù)據(jù)量的比值。進(jìn)一步地,當(dāng)輔處理器存在多個時,所述數(shù)據(jù)分布比例可以具體表征目標(biāo)執(zhí)行任務(wù)在主處理器(如第一中央處理器)中運(yùn)行的總數(shù)據(jù)量與在一個輔處理器中運(yùn)行的總數(shù)據(jù)量的比值,或者表征目標(biāo)執(zhí)行任務(wù)在主處理器(如第一中央處理器)中運(yùn)行的總數(shù)據(jù)量與在所有輔處理器中運(yùn)行的總數(shù)據(jù)量的比值。這樣,為基于數(shù)據(jù)分布比例確定數(shù)據(jù)遷移策略奠定了基礎(chǔ)。
進(jìn)一步地,當(dāng)確定出數(shù)據(jù)分布比例后,所述處理器31,還用于判斷數(shù)據(jù)分布比例是否小于第二閾值,如小于50%;確定小于所述第二閾值時,對所述至少一個目標(biāo)執(zhí)行任務(wù)進(jìn)行數(shù)據(jù)遷移處理。也就是說,所述任務(wù)處理裝置確定出目標(biāo)執(zhí)行任務(wù)在主處理器運(yùn)行的總數(shù)據(jù)量較少,而輔處理器中運(yùn)行的總數(shù)據(jù)量較多時,才會執(zhí)行數(shù)據(jù)遷移處理,否則,不執(zhí)行。
在另一具體實(shí)施例中,所述處理器31,還用于對所述至少一個目標(biāo)執(zhí)行任務(wù)中的至少部分?jǐn)?shù)據(jù)所運(yùn)行的內(nèi)存訪問地址進(jìn)行遷移;或者,對所述至少一個目標(biāo)執(zhí)行任務(wù)對應(yīng)的進(jìn)程進(jìn)行遷移。
在另一具體實(shí)施例中,可以采用如下方式來確定出物理訪問地址,所述處理器31,還用于基于每一所述目標(biāo)執(zhí)行任務(wù)的內(nèi)存訪問地址確定出所述目標(biāo)執(zhí)行任務(wù)的物理頁標(biāo)識;基于物理頁標(biāo)識確定出每一所述目標(biāo)執(zhí)行任務(wù)的物理訪問地址。
這里,在實(shí)際應(yīng)用中,可以使用硬件計數(shù)器來統(tǒng)計數(shù)據(jù)分布比例,該方式對系統(tǒng)干擾低,而且高效準(zhǔn)確。以下通過具體應(yīng)用示例對本發(fā)明實(shí)施例做進(jìn)一步詳細(xì)說明;具體地,在每個cpu上綁定一項內(nèi)存訪問監(jiān)測服務(wù),該內(nèi)存訪問監(jiān)測服務(wù)對cpu的寄存器機(jī)制進(jìn)行編程。進(jìn)一步地,操作系統(tǒng)啟動時,啟動內(nèi)存訪問監(jiān)測服務(wù)(該服務(wù)有60s定時器時鐘,且可根據(jù)需要關(guān)閉或者繼續(xù)),且在內(nèi)存訪問監(jiān)測服務(wù)啟動或者繼續(xù)時對pebs寄存器進(jìn)行編程,其中,采樣率為100hz,過慮條件為內(nèi)存延遲大于3時鐘,同時分配采樣的硬件緩沖區(qū)的地址。這里,每個采樣到來時,硬件會自動中斷,中斷應(yīng)答從硬件緩沖區(qū)取出中斷發(fā)生的各寄存器狀態(tài)、內(nèi)存訪問地址,與此內(nèi)存訪問地址關(guān)聯(lián)的cpu號、物理頁面號、所在的內(nèi)存節(jié)點(diǎn)號以及進(jìn)程號。在60s定時器中斷發(fā)生時,由cpu號,內(nèi)存節(jié)點(diǎn)號,進(jìn)程號和物理頁面號統(tǒng)計出每個進(jìn)程的每一個采樣物理頁面本地與遠(yuǎn)程訪問比例。若該比例小于1:1,即遠(yuǎn)程訪問較多,則進(jìn)行遷移處理,如進(jìn)行進(jìn)程遷移,或內(nèi)存遷移。
這里需要指出的是:以上任務(wù)處理裝置實(shí)施例項的描述,與上述方法描述是類似的,具有同方法實(shí)施例相同的有益效果。對于本發(fā)明任務(wù)處理裝置實(shí)施例中未披露的技術(shù)細(xì)節(jié),本領(lǐng)域的技術(shù)人員請參照本發(fā)明方法實(shí)施例的描述而理解,為節(jié)約篇幅,這里不再贅述。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實(shí)施的計算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實(shí)現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述僅是本發(fā)明實(shí)施例的實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明實(shí)施例原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明實(shí)施例的保護(hù)范圍。