消除熱點(diǎn)資源競(jìng)爭(zhēng)的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種消除熱點(diǎn)資源競(jìng)爭(zhēng)的方法和裝置。
【背景技術(shù)】
[0002] 隨著多核技術(shù)、虛擬化技術(shù)和云計(jì)算技術(shù)的不斷成熟,多核處理器被廣泛地應(yīng)用 于云計(jì)算環(huán)境。在云計(jì)算環(huán)境下,服務(wù)器普遍采用多核處理器、非一致內(nèi)存訪問(wèn)的系統(tǒng)架 構(gòu)。在該種系統(tǒng)架構(gòu)下,每臺(tái)服務(wù)器上擁有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)上擁有多個(gè)虛擬處理核也且 該些個(gè)虛擬處理核也共享最后一級(jí)緩存等資源。由于同一節(jié)點(diǎn)上的不同虛擬處理核也共享 相同的資源,當(dāng)任務(wù)運(yùn)行在不同的虛擬處理核也上時(shí),各個(gè)虛擬處理核也將競(jìng)爭(zhēng)共享資源, 該共享資源即為熱點(diǎn)資源。由于熱點(diǎn)資源不僅影響不同程序的性能,而且影響整個(gè)系統(tǒng)的 性能。因此,為了提高系統(tǒng)的性能,如何消除熱點(diǎn)資源競(jìng)爭(zhēng),成為本領(lǐng)域技術(shù)人員較為關(guān)注 的問(wèn)題。
[0003] 相關(guān)技術(shù)在消除熱點(diǎn)資源競(jìng)爭(zhēng)時(shí),采用如下兩種方式:
[0004] 方式一:首先為每個(gè)虛擬處理核也分配對(duì)應(yīng)的緩存區(qū)域,并根據(jù)每個(gè)虛擬處理核 也上運(yùn)行的程序?qū)槊總€(gè)虛擬處理核也分配的緩存區(qū)域劃分成不同的行且每一行對(duì)應(yīng)不 同的程序,然后將每個(gè)程序和對(duì)應(yīng)的緩存行著W相同的顏色,當(dāng)不同的虛擬處理核也從內(nèi) 存讀取數(shù)據(jù)之后,根據(jù)不同的虛擬處理核也讀取的數(shù)據(jù)對(duì)應(yīng)的程序?qū)⒆x取到的數(shù)據(jù)存儲(chǔ)到 對(duì)應(yīng)的緩存行中,從而避免了不同的虛擬處理核也之間及同一虛擬處理核也的不同程序之 間的資源競(jìng)爭(zhēng),達(dá)到了消除熱點(diǎn)資源競(jìng)爭(zhēng)的目的。
[0005] 方式二:首先將適合一起運(yùn)行的虛擬處理核也調(diào)度到同一個(gè)節(jié)點(diǎn)上,然后分析每 個(gè)節(jié)點(diǎn)上的虛擬處理核也的性能信息,當(dāng)某一虛擬處理核也與同一節(jié)點(diǎn)上的其他虛擬處理 核也競(jìng)爭(zhēng)資源導(dǎo)致其他虛擬處理核也的性能下降時(shí),則將該虛擬處理核也復(fù)制到新的服務(wù) 器上進(jìn)行細(xì)粒度性能特征分析,得到該虛擬處理核也的最新性能信息,進(jìn)而根據(jù)得到的該 虛擬處理核也的最新性能信息采用測(cè)試程序模擬將該虛擬處理核也調(diào)度到目的服務(wù)器上 之后該虛擬處理核也對(duì)其他虛擬處理核也產(chǎn)生的影響,若影響較小,則可將該虛擬處理核 也調(diào)度到目的服務(wù)器上,若影響較大,則需重新啟動(dòng)一臺(tái)服務(wù)器,進(jìn)而將該虛擬處理核也調(diào) 度到新的服務(wù)器上,從而消除了被調(diào)度的虛擬處理核也所在的節(jié)點(diǎn)上的各個(gè)虛擬處理核也 之間的熱點(diǎn)資源競(jìng)爭(zhēng)。
[0006] 在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)至少存在W下問(wèn)題:
[0007] 由于方式一將每個(gè)虛擬處理核也的不同程序分配對(duì)應(yīng)的緩存行,而當(dāng)某個(gè)虛擬處 理核也上的某一程序發(fā)生變化時(shí),該程序的緩存使用情況也相應(yīng)的發(fā)生變化,分配給該程 序的緩存區(qū)域也將發(fā)生相應(yīng)的變化,而此時(shí)方式一就不能很好地適應(yīng)該種變化,導(dǎo)致相關(guān) 技術(shù)在消除熱點(diǎn)資源競(jìng)爭(zhēng)的靈活性較差。
[0008] 由于方式二需要將對(duì)同一節(jié)點(diǎn)上的其他虛擬核也的性能產(chǎn)生影響的虛擬處理核 也復(fù)制到新的服務(wù)器上進(jìn)行細(xì)粒度的行為特征分析,且需要將該虛擬處理核也調(diào)度到其他 服務(wù)器上,導(dǎo)致相關(guān)技術(shù)在消除熱點(diǎn)資源競(jìng)爭(zhēng)時(shí)的資源消耗較大。
【發(fā)明內(nèi)容】
[0009] 為了解決現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明實(shí)施例提供了一種消除熱點(diǎn)資源競(jìng)爭(zhēng)的方法和 裝置。所述技術(shù)方案如下:
[0010] 第一方面,提供了一種消除熱點(diǎn)資源競(jìng)爭(zhēng)的方法,所述方法包括:
[0011] 確定系統(tǒng)中每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)壓力,并根據(jù)所述每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)壓力得到系統(tǒng)節(jié)點(diǎn) 壓力的相對(duì)標(biāo)準(zhǔn)差;
[0012] 根據(jù)所述系統(tǒng)節(jié)點(diǎn)壓力的相對(duì)標(biāo)準(zhǔn)差判斷系統(tǒng)中是否存在滿足調(diào)度條件的節(jié) 占. ;、、、?
[0013] 若系統(tǒng)中存在滿足調(diào)度條件的節(jié)點(diǎn),則在滿足調(diào)度條件的節(jié)點(diǎn)上確定需要調(diào)度的 虛擬處理核也,并對(duì)需要調(diào)度的虛擬處理核也進(jìn)行調(diào)度。
[0014] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述確定系統(tǒng)中每個(gè)節(jié) 點(diǎn)的節(jié)點(diǎn)壓力,包括:
[0015] 獲取系統(tǒng)中每個(gè)節(jié)點(diǎn)的虛擬處理核也運(yùn)行時(shí)的硬件行為信息;
[0016] 根據(jù)獲取到的每個(gè)節(jié)點(diǎn)的虛擬處理核也運(yùn)行時(shí)的硬件行為信息確定每個(gè)節(jié)點(diǎn)上 的節(jié)點(diǎn)壓力。
[0017] 結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述系統(tǒng)節(jié)點(diǎn) 壓力的相對(duì)標(biāo)準(zhǔn)差判斷系統(tǒng)中是否存在滿足調(diào)度條件的節(jié)點(diǎn),包括:
[0018] 獲取系統(tǒng)中每個(gè)節(jié)點(diǎn)的中央處理器CPU的負(fù)載值,并根據(jù)所述每個(gè)節(jié)點(diǎn)的CPU的 負(fù)載值確定系統(tǒng)的CPU負(fù)載值的相對(duì)標(biāo)準(zhǔn)差;
[0019] 將所述系統(tǒng)中節(jié)點(diǎn)壓力的相對(duì)標(biāo)準(zhǔn)差與系統(tǒng)的CPU負(fù)載值的相對(duì)標(biāo)準(zhǔn)差進(jìn)行比 較;
[0020] 若所述系統(tǒng)中節(jié)點(diǎn)壓力的相對(duì)標(biāo)準(zhǔn)差大于系統(tǒng)的CPU負(fù)載值的相對(duì)標(biāo)準(zhǔn)差,則判 斷系統(tǒng)中存在滿足調(diào)度條件的節(jié)點(diǎn)。
[0021] 結(jié)合第一方面,在第一方面的第H種可能的實(shí)現(xiàn)方式中,所述在滿足調(diào)度條件的 節(jié)點(diǎn)上確定需要調(diào)度的虛擬處理核也,包括:
[0022] 在滿足調(diào)度條件的節(jié)點(diǎn)上查找每千條指令失配次數(shù)MPKI值最大和最小的虛擬處 理核也;
[0023] 判斷所述MPKI值最大的虛擬處理核也的是否為內(nèi)存非本地的虛擬處理核也;
[0024] 若所述MPKI值最大的虛擬處理核也是內(nèi)存非本地的虛擬處理核也,則將所述 MPKI值最大的虛擬處理核也確定為需要調(diào)度的虛擬處理核也;
[00巧]若所述MPKI值最大的虛擬處理核也不是內(nèi)存非本地虛擬處理核也,則將所述 MPKI值最小的虛擬處理核也確定為需要調(diào)度的虛擬處理核也。
[0026] 結(jié)合第一方面,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述對(duì)需要調(diào)度的虛擬 處理核也進(jìn)行調(diào)度,包括:
[0027] 在每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)壓力中查找節(jié)點(diǎn)壓力值最小的節(jié)點(diǎn),并將節(jié)點(diǎn)壓力最小的節(jié)點(diǎn) 作為目的節(jié)點(diǎn)
[0028] 將目的節(jié)點(diǎn)上的CPU總負(fù)載與滿足調(diào)度條件的節(jié)點(diǎn)上的CPU的總負(fù)載進(jìn)行比較;
[0029] 根據(jù)比較結(jié)果對(duì)需要調(diào)度的虛擬處理核也進(jìn)行調(diào)度。
[0030] 結(jié)合第一方面,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述根據(jù)比較結(jié)果對(duì)需 要調(diào)度的虛擬處理核也進(jìn)行調(diào)度,包括:
[0031] 若目的節(jié)點(diǎn)上的CPU總負(fù)載小于滿足調(diào)度條件的節(jié)點(diǎn)上的CPU的總負(fù)載,則將所 述需要調(diào)度的虛擬處理核也調(diào)度到目的節(jié)點(diǎn)上負(fù)載最小的處理核也上;
[0032] 若目的節(jié)點(diǎn)上的CPU總負(fù)載大于等于滿足調(diào)度條件的節(jié)點(diǎn)上的CPU的總負(fù)載,貝U 將目的節(jié)點(diǎn)上的內(nèi)存非本地的虛擬處理核也中MPKI值最小的虛擬處理核也與所述需要調(diào) 度的虛擬處理核也位置調(diào)換。
[0033] 第二方面,提供了一種消除熱點(diǎn)資源競(jìng)爭(zhēng)的裝置,所述裝置包括:
[0034] 第一確定模塊,用于確定系統(tǒng)中每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)壓力,并根據(jù)所述每個(gè)節(jié)點(diǎn)的節(jié) 點(diǎn)壓力得到系統(tǒng)節(jié)點(diǎn)壓力的相對(duì)標(biāo)準(zhǔn)差;
[00巧]判斷模塊,用于根據(jù)所述系統(tǒng)節(jié)點(diǎn)壓力的相對(duì)標(biāo)準(zhǔn)差判斷系統(tǒng)中是否存在滿足調(diào) 度條件的節(jié)點(diǎn);
[0036] 第二確定模塊,用于當(dāng)系統(tǒng)中存在滿足調(diào)度條件的節(jié)點(diǎn)時(shí),在滿足調(diào)度條件的節(jié) 點(diǎn)上確定需要調(diào)度的虛擬處理核也;
[0037] 調(diào)度模塊,用于對(duì)需要調(diào)度的虛擬處理核也進(jìn)行調(diào)度。
[0038] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述第一確定模塊,包 括:
[0039] 獲取單元,用于獲取系統(tǒng)中每個(gè)節(jié)點(diǎn)的虛擬處理核也運(yùn)行時(shí)的硬件行為信息;
[0040] 確定單元,用于根據(jù)獲取到的每個(gè)節(jié)點(diǎn)的虛擬處理核也運(yùn)行時(shí)的硬件行為信息確 定每個(gè)節(jié)點(diǎn)上的節(jié)點(diǎn)壓力。
[0041] 結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述判斷模塊,包括:
[0042] 獲取單元,用于獲取系統(tǒng)中每個(gè)節(jié)點(diǎn)的中央處理器CPU的負(fù)載值,并
[0043] 確定單元,用于根據(jù)所述每個(gè)節(jié)點(diǎn)的CPU的負(fù)載值得到系統(tǒng)的CPU負(fù)載值的相對(duì) 標(biāo)準(zhǔn)差;
[0044] 比較單元,用于將所述系統(tǒng)中節(jié)點(diǎn)壓力的相對(duì)標(biāo)準(zhǔn)差與系統(tǒng)的CPU負(fù)載值的相對(duì) 標(biāo)準(zhǔn)差進(jìn)行比較;
[0045] 判斷單元,用于當(dāng)所述系統(tǒng)中節(jié)點(diǎn)壓力的相對(duì)標(biāo)準(zhǔn)差大于系統(tǒng)的CPU負(fù)載值的相 對(duì)標(biāo)準(zhǔn)差時(shí),判斷系統(tǒng)中存在滿足調(diào)度條件的節(jié)點(diǎn)。
[0046] 結(jié)合第二方面,在第二方面的第H種可能的實(shí)現(xiàn)方式中,所述第二確定模塊,包 括:
[0047] 查找單元,用于在滿足調(diào)度條件的節(jié)點(diǎn)上查找每千條指令失配次數(shù)MPKI值最大 和最小的虛擬處理核也;
[0048] 判斷單元,用于判斷所述MPKI值最大的虛擬處理核也的是否為內(nèi)存非本地的虛 擬處理核也;
[0049] 第一確定單元,用于當(dāng)所述MPKI值最大的虛擬處理核也是內(nèi)存非本地的虛擬處 理核也時(shí),將所述MPKI值最大的虛擬處理核也確定為需要調(diào)度的虛擬處理核也;
[0050] 第二確定單元,用于當(dāng)所述MPKI值最大的虛擬處理核也不是內(nèi)存非本地虛擬處 理核也時(shí),將所述MPKI值最小的虛擬處理核也確定為需要調(diào)度的虛擬處理核也。
[0051] 結(jié)合第二方面,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述調(diào)度模塊,包括:
[0052] 查找單元,用于在每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)壓力中查找節(jié)點(diǎn)壓力值最小的節(jié)點(diǎn),并將節(jié)點(diǎn) 壓力最小的節(jié)點(diǎn)作為目的節(jié)點(diǎn)
[0053] 比較單元,用于將目的節(jié)點(diǎn)上的CPU總負(fù)載與滿足調(diào)度條件的節(jié)點(diǎn)上的CPU的總 負(fù)載進(jìn)行比較;
[0054] 調(diào)度單元,用于根據(jù)比較結(jié)果對(duì)需要調(diào)度的虛擬處理核也進(jìn)行調(diào)度。
[00巧]結(jié)合第二方面,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述調(diào)度單元,包括:
[0056] 比較子單元