• / 21
  • 下載費用:30 金幣  

消除熱點資源競爭的方法和裝置.pdf

摘要
申請專利號:

CN201410124399.4

申請日:

2014.03.28

公開號:

CN104951369A

公開日:

2015.09.30

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效 IPC(主分類):G06F 9/50申請日:20140328|||公開
IPC分類號: G06F9/50 主分類號: G06F9/50
申請人: 華為技術有限公司
發明人: 陳文智; 程雨夏; 王總輝; 李代超
地址: 518129廣東省深圳市龍崗區坂田華為總部辦公樓
優先權:
專利代理機構: 北京三高永信知識產權代理有限責任公司11138 代理人: 黃厚剛
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201410124399.4

授權公告號:

||||||

法律狀態公告日:

2018.06.05|||2015.11.04|||2015.09.30

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明公開了一種消除熱點資源競爭的方法和裝置,屬于計算機技術領域。方法包括:確定系統中每個節點的節點壓力,并根據每個節點的節點壓力得到系統節點壓力的相對標準差;根據系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點;若系統中存在滿足調度條件的節點,則在滿足調度條件的節點上確定需要調度的虛擬處理核心,并對需要調度的虛擬處理核心進行調度。本發明通過對滿足調度條件的節點上的需要調度的虛擬處理核心進行調度,從而消除了滿足調度條件的節點上的虛擬機之間的資源競爭,且無需額外的著色及分析操作,即可消除熱點資源競爭,因此,提高了靈活性,降低了資源消耗。

權利要求書

權利要求書
1.  一種消除熱點資源競爭的方法,其特征在于,所述方法包括:
確定系統中每個節點的節點壓力,并根據所述每個節點的節點壓力得到系統節點壓力的相對標準差;
根據所述系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點;
若系統中存在滿足調度條件的節點,則在滿足調度條件的節點上確定需要調度的虛擬處理核心,并對需要調度的虛擬處理核心進行調度。

2.  根據權利要求1所述的方法,其特征在于,所述確定系統中每個節點的節點壓力,包括:
獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息;
根據獲取到的每個節點的虛擬處理核心運行時的硬件行為信息確定每個節點上的節點壓力。

3.  根據權利要求1所述的方法,其特征在于,所述根據所述系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點,包括:
獲取系統中每個節點的中央處理器CPU的負載值,并根據所述每個節點的CPU的負載值確定系統的CPU負載值的相對標準差;
將所述系統中節點壓力的相對標準差與系統的CPU負載值的相對標準差進行比較;
若所述系統中節點壓力的相對標準差大于系統的CPU負載值的相對標準差,則判斷系統中存在滿足調度條件的節點。

4.  根據權利要求1所述的方法,其特征在于,所述在滿足調度條件的節點上確定需要調度的虛擬處理核心,包括:
在滿足調度條件的節點上查找每千條指令失配次數MPKI值最大和最小的虛擬處理核心;
判斷所述MPKI值最大的虛擬處理核心的是否為內存非本地的虛擬處理核 心;
若所述MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心,則將所述MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心;
若所述MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心,則將所述MPKI值最小的虛擬處理核心確定為需要調度的虛擬處理核心。

5.  根據權利要求1所述的方法,其特征在于,所述對需要調度的虛擬處理核心進行調度,包括:
在每個節點的節點壓力中查找節點壓力值最小的節點,并將節點壓力最小的節點作為目的節點;
將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
根據比較結果對需要調度的虛擬處理核心進行調度。

6.  根據權利要求5所述的方法,其特征在于,所述根據比較結果對需要調度的虛擬處理核心進行調度,包括:
若目的節點上的CPU總負載小于滿足調度條件的節點上的CPU的總負載,則將所述需要調度的虛擬處理核心調度到目的節點上負載最小的處理核心上;
若目的節點上的CPU總負載大于等于滿足調度條件的節點上的CPU的總負載,則將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與所述需要調度的虛擬處理核心位置調換。

7.  一種消除熱點資源競爭的裝置,其特征在于,所述裝置包括:
第一確定模塊,用于確定系統中每個節點的節點壓力,并根據所述每個節點的節點壓力得到系統節點壓力的相對標準差;
判斷模塊,用于根據所述系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點;
第二確定模塊,用于當系統中存在滿足調度條件的節點時,在滿足調度條件的節點上確定需要調度的虛擬處理核心;
調度模塊,用于對需要調度的虛擬處理核心進行調度。

8.  根據權利要求7所述的裝置,其特征在于,所述第一確定模塊,包括:
獲取單元,用于獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息;
確定單元,用于根據獲取到的每個節點的虛擬處理核心運行時的硬件行為信息確定每個節點上的節點壓力。

9.  根據權利要求7所述的裝置,其特征在于,所述判斷模塊,包括:
獲取單元,用于獲取系統中每個節點的中央處理器CPU的負載值,并
確定單元,用于根據所述每個節點的CPU的負載值得到系統的CPU負載值的相對標準差;
比較單元,用于將所述系統中節點壓力的相對標準差與系統的CPU負載值的相對標準差進行比較;
判斷單元,用于當所述系統中節點壓力的相對標準差大于系統的CPU負載值的相對標準差時,判斷系統中存在滿足調度條件的節點。

10.  根據權利要求7所述的裝置,其特征在于,所述第二確定模塊,包括:
查找單元,用于在滿足調度條件的節點上查找每千條指令失配次數MPKI值最大和最小的虛擬處理核心;
判斷單元,用于判斷所述MPKI值最大的虛擬處理核心的是否為內存非本地的虛擬處理核心;
第一確定單元,用于當所述MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心時,將所述MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心;
第二確定單元,用于當所述MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心時,將所述MPKI值最小的虛擬處理核心確定為需要調度的虛擬處理核心。

11.  根據權利要求1所述的裝置,其特征在于,所述調度模塊,包括:
查找單元,用于在每個節點的節點壓力中查找節點壓力值最小的節點,并 將節點壓力最小的節點作為目的節點
比較單元,用于將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
調度單元,用于根據比較結果對需要調度的虛擬處理核心進行調度。

12.  根據權利要求11所述的裝置,其特征在于,所述調度單元,包括:
比較子單元,用于將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
調度子單元,用于當目的節點上的CPU總負載小于滿足調度條件的節點上的CPU的總負載時,將所述需要調度的虛擬處理核心調度到目的節點上負載最小的處理核心上;
調換子單元,用于當目的節點上的CPU總負載大于等于滿足調度條件的節點上的CPU的總負載時,將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與所述需要調度的虛擬處理核心的位置調換。

說明書

說明書消除熱點資源競爭的方法和裝置
技術領域
本發明涉及計算機技術領域,特別涉及一種消除熱點資源競爭的方法和裝置。
背景技術
隨著多核技術、虛擬化技術和云計算技術的不斷成熟,多核處理器被廣泛地應用于云計算環境。在云計算環境下,服務器普遍采用多核處理器、非一致內存訪問的系統架構。在這種系統架構下,每臺服務器上擁有多個節點,每個節點上擁有多個虛擬處理核心且這些個虛擬處理核心共享最后一級緩存等資源。由于同一節點上的不同虛擬處理核心共享相同的資源,當任務運行在不同的虛擬處理核心上時,各個虛擬處理核心將競爭共享資源,該共享資源即為熱點資源。由于熱點資源不僅影響不同程序的性能,而且影響整個系統的性能。因此,為了提高系統的性能,如何消除熱點資源競爭,成為本領域技術人員較為關注的問題。
相關技術在消除熱點資源競爭時,采用如下兩種方式:
方式一:首先為每個虛擬處理核心分配對應的緩存區域,并根據每個虛擬處理核心上運行的程序將為每個虛擬處理核心分配的緩存區域劃分成不同的行且每一行對應不同的程序,然后將每個程序和對應的緩存行著以相同的顏色,當不同的虛擬處理核心從內存讀取數據之后,根據不同的虛擬處理核心讀取的數據對應的程序將讀取到的數據存儲到對應的緩存行中,從而避免了不同的虛擬處理核心之間及同一虛擬處理核心的不同程序之間的資源競爭,達到了消除熱點資源競爭的目的。
方式二:首先將適合一起運行的虛擬處理核心調度到同一個節點上,然后分析每個節點上的虛擬處理核心的性能信息,當某一虛擬處理核心與同一節點上的其他虛擬處理核心競爭資源導致其他虛擬處理核心的性能下降時,則將該虛擬處理核心復制到新的服務器上進行細粒度性能特征分析,得到該虛擬處理 核心的最新性能信息,進而根據得到的該虛擬處理核心的最新性能信息采用測試程序模擬將該虛擬處理核心調度到目的服務器上之后該虛擬處理核心對其他虛擬處理核心產生的影響,若影響較小,則可將該虛擬處理核心調度到目的服務器上,若影響較大,則需重新啟動一臺服務器,進而將該虛擬處理核心調度到新的服務器上,從而消除了被調度的虛擬處理核心所在的節點上的各個虛擬處理核心之間的熱點資源競爭。
在實現本發明的過程中,發明人發現相關技術至少存在以下問題:
由于方式一將每個虛擬處理核心的不同程序分配對應的緩存行,而當某個虛擬處理核心上的某一程序發生變化時,該程序的緩存使用情況也相應的發生變化,分配給該程序的緩存區域也將發生相應的變化,而此時方式一就不能很好地適應這種變化,導致相關技術在消除熱點資源競爭的靈活性較差。
由于方式二需要將對同一節點上的其他虛擬核心的性能產生影響的虛擬處理核心復制到新的服務器上進行細粒度的行為特征分析,且需要將該虛擬處理核心調度到其他服務器上,導致相關技術在消除熱點資源競爭時的資源消耗較大。
發明內容
為了解決現有技術的問題,本發明實施例提供了一種消除熱點資源競爭的方法和裝置。所述技術方案如下:
第一方面,提供了一種消除熱點資源競爭的方法,所述方法包括:
確定系統中每個節點的節點壓力,并根據所述每個節點的節點壓力得到系統節點壓力的相對標準差;
根據所述系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點;
若系統中存在滿足調度條件的節點,則在滿足調度條件的節點上確定需要調度的虛擬處理核心,并對需要調度的虛擬處理核心進行調度。
結合第一方面,在第一方面的第一種可能的實現方式中,所述確定系統中每個節點的節點壓力,包括:
獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息;
根據獲取到的每個節點的虛擬處理核心運行時的硬件行為信息確定每個節 點上的節點壓力。
結合第一方面,在第一方面的第二種可能的實現方式中,所述根據所述系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點,包括:
獲取系統中每個節點的中央處理器CPU的負載值,并根據所述每個節點的CPU的負載值確定系統的CPU負載值的相對標準差;
將所述系統中節點壓力的相對標準差與系統的CPU負載值的相對標準差進行比較;
若所述系統中節點壓力的相對標準差大于系統的CPU負載值的相對標準差,則判斷系統中存在滿足調度條件的節點。
結合第一方面,在第一方面的第三種可能的實現方式中,所述在滿足調度條件的節點上確定需要調度的虛擬處理核心,包括:
在滿足調度條件的節點上查找每千條指令失配次數MPKI值最大和最小的虛擬處理核心;
判斷所述MPKI值最大的虛擬處理核心的是否為內存非本地的虛擬處理核心;
若所述MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心,則將所述MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心;
若所述MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心,則將所述MPKI值最小的虛擬處理核心確定為需要調度的虛擬處理核心。
結合第一方面,在第一方面的第四種可能的實現方式中,所述對需要調度的虛擬處理核心進行調度,包括:
在每個節點的節點壓力中查找節點壓力值最小的節點,并將節點壓力最小的節點作為目的節點
將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
根據比較結果對需要調度的虛擬處理核心進行調度。
結合第一方面,在第一方面的第五種可能的實現方式中,所述根據比較結果對需要調度的虛擬處理核心進行調度,包括:
若目的節點上的CPU總負載小于滿足調度條件的節點上的CPU的總負載,則將所述需要調度的虛擬處理核心調度到目的節點上負載最小的處理核心上;
若目的節點上的CPU總負載大于等于滿足調度條件的節點上的CPU的總負載,則將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與所述需要調度的虛擬處理核心位置調換。
第二方面,提供了一種消除熱點資源競爭的裝置,所述裝置包括:
第一確定模塊,用于確定系統中每個節點的節點壓力,并根據所述每個節點的節點壓力得到系統節點壓力的相對標準差;
判斷模塊,用于根據所述系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點;
第二確定模塊,用于當系統中存在滿足調度條件的節點時,在滿足調度條件的節點上確定需要調度的虛擬處理核心;
調度模塊,用于對需要調度的虛擬處理核心進行調度。
結合第二方面,在第二方面的第一種可能的實現方式中,所述第一確定模塊,包括:
獲取單元,用于獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息;
確定單元,用于根據獲取到的每個節點的虛擬處理核心運行時的硬件行為信息確定每個節點上的節點壓力。
結合第二方面,在第二方面的第二種可能的實現方式中,所述判斷模塊,包括:
獲取單元,用于獲取系統中每個節點的中央處理器CPU的負載值,并
確定單元,用于根據所述每個節點的CPU的負載值得到系統的CPU負載值的相對標準差;
比較單元,用于將所述系統中節點壓力的相對標準差與系統的CPU負載值的相對標準差進行比較;
判斷單元,用于當所述系統中節點壓力的相對標準差大于系統的CPU負載值的相對標準差時,判斷系統中存在滿足調度條件的節點。
結合第二方面,在第二方面的第三種可能的實現方式中,所述第二確定模塊,包括:
查找單元,用于在滿足調度條件的節點上查找每千條指令失配次數MPKI值最大和最小的虛擬處理核心;
判斷單元,用于判斷所述MPKI值最大的虛擬處理核心的是否為內存非本地的虛擬處理核心;
第一確定單元,用于當所述MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心時,將所述MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心;
第二確定單元,用于當所述MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心時,將所述MPKI值最小的虛擬處理核心確定為需要調度的虛擬處理核心。
結合第二方面,在第二方面的第四種可能的實現方式中,所述調度模塊,包括:
查找單元,用于在每個節點的節點壓力中查找節點壓力值最小的節點,并將節點壓力最小的節點作為目的節點
比較單元,用于將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
調度單元,用于根據比較結果對需要調度的虛擬處理核心進行調度。
結合第二方面,在第二方面的第五種可能的實現方式中,所述調度單元,包括:
比較子單元,用于將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
調度子單元,用于當目的節點上的CPU總負載小于滿足調度條件的節點上的CPU的總負載時,將所述需要調度的虛擬處理核心調度到目的節點上負載最小的處理核心上;
調換子單元,用于當目的節點上的CPU總負載大于等于滿足調度條件的節點上的CPU的總負載時,將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與所述需要調度的虛擬處理核心的位置調換。
本發明實施例提供的技術方案帶來的有益效果是:
通過根據系統中每個節點的節點壓力得到系統節點壓力的相對標準差,進而根據系統節點壓力的相對標準差判斷存在滿足調度條件的節點之后,對滿足調度條件的節點上確定的需要調度的虛擬處理核心進行調度,從而消除了滿足調度條件的節點上的虛擬處理核心之間的資源競爭,且無需額外的著色及分析 操作,即可消除熱點資源競爭,因此,提高了消除熱點資源競爭的靈活性,降低了資源消耗。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明實施例提供的虛擬化環境下共享緩存感知的虛擬處理核心調度系統架構圖;
圖2是本發明實施例一提供的一種消除熱點資源競爭的方法流程圖;
圖3是本發明實施例二提供的一種消除熱點資源競爭的方法流程圖;
圖4是本發明實施例三提供的一種消除熱點資源競爭的裝置結構示意圖;
圖5是本發明實施例三提供的第一確定模塊的結構示意圖;
圖6是本發明實施例三提供的判斷模塊的結構示意圖;
圖7是本發明實施例三提供的第二確定模塊的結構示意圖;
圖8是本發明實施例三提供的調度模塊的結構示意圖;
圖9是本發明實施例三提供的調節單元的結構示意圖;
圖10是本發明實施例提供的服務器的結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
實施例一
本實施例提供的消除熱點資源競爭的方法所適用的實施環境為虛擬化環境下,主要采用的架構為虛擬化環境下共享緩存感知的虛擬處理核心的系統架構。圖1為虛擬化環境下共享緩存感知的虛擬處理核心調度系統架構圖。如圖1所示,底層硬件為由多核處理器組成的多核NUMA(Non-Uniform Memory Access,非一致內存訪問)的結構,每個多核處理器上有多個虛擬處理核心,這些多個虛擬處理核心共享最后一級緩存。各個多核處理器之間通過高速互聯協議連接。 系統中有多個內存節點,處理器可以訪問任意的內存節點上的數據,訪問延遲有所不同。處理器訪問本地緩存節點延遲小于訪問遠端內存節點的延遲。在物理硬件之上,運行虛擬機管理軟件,虛擬機管理軟件負責管理CPU、內存、I/O等設備的虛擬化。本發明實施例在虛擬管理軟件層實現共享緩存熱點消除的虛擬處理核心的調度。其中,虛擬管理軟件主要包括在線性能信息采集器、共享緩存感知調度決策器和虛擬CPU調度器組成。在虛擬機管理軟件層之上,運行著多臺虛擬機。
結合上述實施環境,本發明實施例提供了一種消除熱點資源競爭的方法,參見圖2,本實施例提供的方法流程包括:
201:確定系統中每個節點的節點壓力,并根據每個節點的節點壓力得到系統節點壓力的相對標準差。
作為一種可選的實施例,確定系統中每個節點的節點壓力,包括:
獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息;
根據獲取到的每個節點的虛擬處理核心運行時的硬件行為信息確定每個節點上的節點壓力。
202:根據系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點。
作為一種可選的實施例,根據系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點,包括:
獲取系統中每個節點的CPU(Central Processing Unit,中央處理器)的負載值,并根據每個節點的CPU的負載值確定系統的CPU負載值的相對標準差;
將系統中節點壓力的相對標準差與系統的CPU負載值的相對標準差進行比較;
若系統中節點壓力的相對標準差大于系統的CPU負載值的相對標準差,則判斷系統中存在滿足調度條件的節點。
203:若系統中存在滿足調度條件的節點,則在滿足調度條件的節點上確定需要調度的虛擬處理核心,并對需要調度的虛擬處理核心進行調度。
作為一種可選的實施例,在滿足調度條件的節點上確定需要調度的虛擬處理核心,包括:
在滿足調度條件的節點上查找MPKI(Misses Per Kilo Instructions,每千條 指令失配次數)值最大和最小的虛擬處理核心;
判斷MPKI值最大的虛擬處理核心的是否為內存非本地的虛擬處理核心;
若MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心,則將MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心;
若MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心,則將MPKI值最小的虛擬處理核心確定為需要調度的虛擬處理核心。
作為一種可選的實施例,對需要調度的虛擬處理核心進行調度,包括:
在每個節點的節點壓力中查找節點壓力值最小的節點,并將節點壓力最小的節點作為目的節點
將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
根據比較結果對需要調度的虛擬處理核心進行調度。
作為一種可選的實施例,根據比較結果對需要調度的虛擬處理核心進行調度,包括:
若目的節點上的CPU總負載小于滿足調度條件的節點上的CPU的總負載,則將需要調度的虛擬處理核心調度到目的節點上負載最小的處理核心上;
若目的節點上的CPU總負載大于等于滿足調度條件的節點上的CPU的總負載,則將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與需要調度的虛擬處理核心位置調換。
本發明實施例提供的方法,通過根據系統中每個節點的節點壓力得到系統節點壓力的相對標準差,進而根據系統節點壓力的相對標準差判斷存在滿足調度條件的節點之后,對滿足調度條件的節點上確定的需要調度的虛擬處理核心進行調度,從而消除了滿足調度條件的節點上的虛擬處理核心之間的資源競爭,且無需額外的著色及分析操作,即消除熱點資源競爭,因此,提高了消除熱點資源競爭的靈活性,降低了資源消耗。
實施例二
本發明實施例提供了一種消除熱點資源競爭的方法,為了便于理解,現結合上述實施例一的內容,對本發明實施例提供的消除熱點資源競爭的方法進行詳細地解釋說明。參見圖3,本實施例提供的方法流程包括:
301:確定系統中每個節點的節點壓力,并根據每個節點的節點壓力得到系統節點壓力的相對標準差。
其中,節點壓力表示在非一致緩存的架構下節點當前的共享緩存資源的使用情況、內存寬帶使用情況以及CPU負載情況等。節點壓力越大,說明節點上的虛擬機的虛擬處理核心之間資源的競爭壓力越大,對虛擬機的性能影響也較大;節點壓力越小,說明節點上的虛擬機的虛擬處理核心之間資源的競爭壓力越小,對虛擬機的性能影響也較小。
由于節點壓力能夠表征節點上虛擬處理核心對資源的競爭情況,因此,為了消除熱點資源競爭,提高節點上虛擬機的性能,需要先確定系統中每個節點的節點壓力。關于確定系統中每個節點的節點壓力的方式,包括但不限于采用如下方式:
第一步,獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息;
針對第一步,系統中每個節點的虛擬處理核心運行時的硬件信息,包括但不限于LMR(LLC Miss Rate,共享緩存失配率)、MBU(Memory Bandwidth Usage,內存寬帶使用率)、MPKI(Misses Per Kilo Instructions,每千條指令的緩存失配數)、CPU使用率等。關于獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息的方式,包括但不限于采用處理器的PMU(Performance Monitoring Unit,硬件信息監控單元)在線采集虛擬處理核心運行時的硬件行為信息。
第二步,根據獲取到的每個節點的虛擬處理核心運行時的硬件行為信息確定每個節點上的節點壓力。
針對第二步,基于硬件信息監控單元采集到的硬件行為信息,為了更為準確地反映每個節點上的資源競爭情況,可根據采集到的硬件行為信息中的共享緩存使用率、內存寬帶的使用率以及CPU負載使用率這三個維度的信息確定能夠體現綜合負載的節點壓力。具體地,根據上述三個維度的信息確定節點壓力時,可采用降維的方法。具體實施時,可采用如下公式:
NP=1/[(1-LMR)*(1-MBU)*(1-CPU)]
其中,NP為節點壓力值,LMR為該節點上的共享緩存失配率,MBU為該節點上的內存寬帶使用情況,CPU為該節點上的CPU使用率。
進一步地,計算了系統中每個節點壓力值之后,可根據每個節點的節點壓力得到系統節點壓力的相對標準差。
具體地,根據每個節點的節點壓力得到系統節點壓力的相對標準差時,包括但不限于采用采用如下公式計算:
RSD(NP)=SD(NP)NP‾]]>
SD(NP)=Σi=1n(NPi-NP‾)2n-1]]>
NP‾=1nΣi=1nNPi]]>
其中,RSD(NP)為系統節點壓力的相對標準差,為系統中節點壓力的平均值,SD(NP)為系統中節點壓力的標準差,n為系統中節點的個數。
對于上述過程,為了便于理解,下面將以一個具體的例子進行詳細地解釋說明。
例如,系統中有6個節點,分別為節點1、節點2、節點3、節點4、節點5和節點6,若節點1的節點壓力值為2,節點2的節點壓力值為4,節點3的節點壓力值為5,節點4的節點壓力值為6,節點5的節點壓力值為8,節點6的節點壓力值為5,則系統中節點壓力的平均值因此,RSD(NP)=2/5=0.4,即系統節點壓力的相對標準差為0.4。
302:根據系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點,若存在,則執行步驟303。
系統節點壓力的相對標準差可以判斷系統中各個節點的壓力是否均衡,當系統中節點壓力出現不均衡的現象時,說明節點上的各個虛擬處理核心之間存在資源競爭,導致節點上的各個虛擬處理核心的性能較差,此時需要對節點上的虛擬處理核心進行調度,以使系統中節點壓力均衡;當系統中節點壓力均衡時,說明節點上各個虛擬處理核心之間資源競爭較小,此時節點上的各個虛擬處理核心的性能較佳,此時無需對節點上的虛擬處理核心進行調度。可見,根據節點壓力的相對標準差可以判斷系統中是否存在滿足調度條件的節點。具體地,根據系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點,包括但不限于采用如下步驟:
第一步,獲取系統中每個節點的中央處理器CPU的負載值,并根據每個節 點的CPU的負載值確定系統的CPU負載值的相對標準差;
針對第一步,關于獲取系統中每個節點的CPU的負載值的方式,包括但不限于采用硬件信息監控單元獲取每個節點的CPU的負載值。在根據每個節點的CPU負載值確定系統的CPU的負載值的相對標準差的方式,包括但不限于采用特定的算法進行計算。具體實施時,可采用如下公式進行計算:
RSD(CPU)=SD(CPU)CPU‾]]>
SD(CPU)=Σi=1n(CPUi-CPU‾)2n-1]]>CPU‾=1nΣi=1nCPUi]]>
其中,RSD(CPU)為系統的CPU的負載值的相對標準差,為系統中CPU的負載值的平均值,SD(CPU)為系統中CPU的負載值的標準差,n為系統中的節點數。
對于上述過程,為了便于理解,下面將以一個具體的例子進行詳細地解釋說明。
例如,系統中有4個節點,分別為節點1、節點2、節點3和節點4。若節點1的CPU的負載值為10,節點2的CPU的負載值為15,節點3的CPU的負載值為20,節點4的CPU的負載值為15,則根據上述公式系統中CPU的負載值的平均值CPU‾=1nΣi=1nCPUi=15,SD(SPU)=Σi=1n(CPUi-CPU‾)2n-1=3/50=0.25,]]>因此,即系統的CPU的負載值的相對標準差為0.02。
第二步,將系統中節點壓力的相對標準差與系統的CPU負載值的相對標準差進行比較,若系統中節點壓力的相對標準差大于系統的CPU負載值的相對標準差,則判斷系統中存在滿足調度條件的節點。
需要說明的是,若系統中節點壓力的相對標準值小于系統的CPU負載值,說明此時系統的性能較佳,無需進行調度操作,此時系統可自適應調整進入休眠狀態休眠預設時間,并在達到休眠達到預設時間之后進入下一個調度周期。其中,預設時間可以是1秒、2秒、3秒等,本實施例不對預設時間作具體的限定。
303:在滿足調度條件的節點上確定需要調度的虛擬處理核心。
雖然上述步驟302中已經判斷出系統中存在滿足調度條件的節點,但由于需要調度的節點上有多個虛擬處理核心,而本實施例提供的方法在每輪調度決策時最大調度一個虛擬處理核心,因此,為了通過對滿足調度條件的節點上的虛擬處理核心進行調度,消除滿足調度條件的節點上的虛擬處理核心之間的資源競爭,本實施例提供的方法在判斷系統中存在滿足調度條件的節點之后,還需在滿足調度條件的節點上確定需要調度的虛擬處理核心。
具體地,在滿足調度條件的節點上確定需要調度的虛擬處理核心,包括但不限于采用如下方式進行確定:
第一步,在滿足調度條件的節點上查找MPKI值最大和最小的虛擬處理核心;
針對第一步,由于上述步驟301中在虛擬處理核心運行時,硬件信息監控單元已經采集到了每個節點的MPKI,因此,本步驟在上述步驟301的基礎上將根據上述步驟301中采集到的每個節點的各個虛擬處理核心的MPKI值查找MPKI值最大和最小的虛擬處理核心。具體地,若滿足調度條件的節點上有4個虛擬處理核心,分別為虛擬處理核心a、虛擬處理核心b、虛擬處理核心c和虛擬處理核心d。硬件信息監控單元采集到虛擬處理核心a的MPKI值為3,虛擬處理核心b的MPKI值為1,虛擬處理核心c的MPKI值為4,虛擬處理核心d的MPKI值為7。由于虛擬處理核心b的MPKI值小,則確定虛擬處理核心b為滿足調度條件的節點上MPKI值最小的虛擬處理核心;由于虛擬處理核心d的MPKI值大,則確定虛擬處理核心d為滿足調度條件的節點上MPKI值最大的虛擬處理核心。
第二步,判斷MPKI值最大的虛擬處理核心的是否為內存非本地的虛擬處理核心;
其中,內存非本地的虛擬處理核心為虛擬處理核心的內存在本地節點上的占用率小于預設閾值的虛擬處理核心。其中,預設閾值可以是20%、30%、50%等,本實施例不對預設閾值作具體的限定。具體實施時,預設閾值的選取可采用如下方式:若系統中節點的個數為n個,則可將預設閾值選取為1/n。例如,若系統中節點的個數為5個,則預設閾值可以選取為1/5;若系統中節點的個數為10個,則預設閾值可以選取為1/10。
關于判斷MPKI值最大的虛擬處理核心是否為內存非本地的虛擬處理核心 的方式,本實施例不作具體的限定,包括但不限于:首先獲取MPKI值最大的虛擬處理核心的內存,并獲取MPKI值最大的虛擬處理核心在本地的內存,然后將獲取到的MPKI值最大的虛擬處理核心在本地的內存與獲取到的MPKI值最大的虛擬處理核心的內存作比,得到一個比值,進而將該比值與預設閾值進行比較,從而判斷MPKI值最大的虛擬處理核心是否為內存非本地的虛擬處理核心。
其中,獲取MPKI值最大的虛擬處理核心的內存的方式,包括但不限于獲取MPKI值最大的虛擬處理核心的屬性信息,并在MPKI值最大的虛擬處理核心的屬性信息中提取MPKI值最大的虛擬處理核心的內存信息,進而將在MPKI值最大的虛擬處理核心的屬性信息中提取的內存信息作為獲取到的MPKI值最大的虛擬處理核心的內存。獲取MPKI值最大的虛擬處理核心在本地的內存的方式,包括但不限于在該虛擬機運行時采用硬件信息監控單元獲取本地的內存。
第三步,根據判斷結果在滿足調度條件的節點上確定需要調度的虛擬處理核心。
針對第三步,在判斷MPKI值最大的虛擬處理核心是否為內存非本地的虛擬處理核心時,判斷結果有兩種,分別為MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心,MPKI值最大的虛擬處理核心不是內存非本地的虛擬處理核心,針對這兩種不同的情況在滿足調度條件的節點上確定需要調度的虛擬處理核心也是不同的。下面將針對這兩種不同的情況分別進行介紹。
第一種情況:若MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心,則將MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心;
針對第一種情況,若MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心,說明該虛擬處理核心本地內存的訪問量較小,該虛擬機主要訪問非本地內存,因此,可將MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心。
第二種情況:若MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心,則將MPKI值最小的虛擬處理核心確定為需要調度的虛擬處理核心。
針對第二種情況,若MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心,說明該虛擬處理核心本地內存的訪問量較大,此時為了消除滿足調度條件的節點上的虛擬處理核心對資源的競爭,可將MPKI值最小的虛擬處理核 心確定為需要調度的虛擬處理核心。
304:對需要調度的虛擬處理核心進行調度。
為了消除滿足調度條件的節點上的資源競爭,提高滿足調度條件的節點上的各個虛擬處理核心的性能,在滿足調度條件的節點上確定需要調度的虛擬處理核心之后,將對需要調度的虛擬處理核心進行調度。具體地,對需要調度的虛擬處理核心進行調度,包括但不限于采用如下步驟:
第一步,在每個節點的節點壓力中查找節點壓力值最小的節點,并將節點壓力最小的節點作為目的節點;
由于系統中節點的節點壓力值越小,說明該節點上的虛擬處理核心之間的資源競爭相對于系統中的其他節點的虛擬處理核心之間的資源競爭較小,因此,為了消除滿足調度條件的節點上的資源競爭,同時保證在對需要調度的虛擬處理核心進行調度之后,系統的整體性能較佳,本實施例提供的方法可將滿足調度條件的節點上需要調度的虛擬處理核心調度到節點壓力值最小的節點上。而在將滿足調度條件的虛擬處理核心調度到節點壓力值最小的節點上之前,需要先確定節點壓力值最小的節點。而上述步驟301中已經得到了每個節點的節點壓力,因此,在確定節點壓力值最小的節點時,可在每個節點壓力中查找節點壓力值最小的節點,并將節點壓力值最小的節點作為目的節點。
第二步,將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
由于目的節點上CPU的總負載對需要調度的虛擬處理核心的調度方式有影響,因此,為了確定將需要調度的虛擬處理核心調度到目的節點上的調度方式,可通過將目的節點上的CPU總負載與滿足調度條件的節點上的CPU總負載進行比較來確定。
第三步,根據比較結果對需要調度的虛擬處理核心進行調度。
在將目的節點上的CPU總負載與滿足調度條件的節點上的CPU總負載進行比較時,比較結果包括但不限于:目的節點的CPU總負載小于滿足調度條件的節點上的CPU的總負載以及目的節點上的CPU總負載大于等于滿足調度條件的節點上的CPU的總負載兩種情況。針對兩種情況下面將分別進行介紹:
第一種情況:若目的節點的CPU總負載小于滿足調度條件的節點的CPU的總負載,則將需要調度的虛擬處理核心調度到目的節點上負載最小的處理核心 上;
對于上述過程,為了便于理解,下面將以一個具體的例子進行詳細地解釋說明。
例如,若目的節點的CPU總負載為10,滿足調度條件的節點上的CPU的總負載為20,由于目的節點的CPU總負載小于滿足調度條件的CPU的總負載,則可將需要調度的虛擬處理核心調度到目的節點上的負載最小的處理核心上。
第二種情況:若目的節點上的CPU總負載大于等于滿足調度條件的節點上的CPU的總負載,則將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與需要調度的虛擬處理核心位置調換。
對于上述過程,為了便于理解,下面將以一個具體的例子進行詳細地解釋說明。
例如,若目的節點的CPU總負載為15,滿足調度條件的節點上的CPU的總負載為12,由于目的節點的CPU總負載大于滿足調度條件的CPU的總負載,此時需要在目的節點上查找虛擬處理核心中內存非本地的虛擬處理核心,并在查找到的內存非本地的虛擬處理核心中確定MPKI值最小的虛擬處理核心,進而將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與需要調度的虛擬處理核心位置調換;若目的節點的CPU總負載為13,滿足調度條件的節點上的CPU的總負載為13,由于目的節點的CPU總負載等于滿足調度條件的CPU的總負載,此時需要在目的節點上查找虛擬處理核心中內存非本地的虛擬處理核心,并在查找到的內存非本地的虛擬處理核心中確定MPKI值最小的虛擬處理核心,進而將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與需要調度的虛擬處理核心位置調換。
本發明實施例提供的方法,通過根據系統中每個節點的節點壓力得到系統節點壓力的相對標準差,進而根據系統節點壓力的相對標準差判斷存在滿足調度條件的節點之后,對滿足調度條件的節點上確定的需要調度的虛擬處理核心進行調度,從而消除了滿足調度條件的節點上的虛擬處理核心之間的資源競爭,且無需額外的著色及分析操作,即可消除熱點資源競爭,因此,提高了消除熱點資源競爭的靈活性,降低了資源消耗。
實施例三
參見圖4,本發明實施例提供了一種消除熱點資源競爭的裝置,該裝置包括:
第一確定模塊401,用于確定系統中每個節點的節點壓力,并根據每個節點的節點壓力得到系統節點壓力的相對標準差;
判斷模塊402,用于根據系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點;
第二確定模塊403,用于當系統中存在滿足調度條件的節點時,在滿足調度條件的節點上確定需要調度的虛擬處理核心;
調度模塊404,用于對需要調度的虛擬處理核心進行調度。
參見圖5,第一確定模塊401,包括:
獲取單元4011,用于獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息;
確定單元4012,用于根據獲取到的每個節點的虛擬處理核心運行時的硬件行為信息確定每個節點上的節點壓力。
參見圖6,判斷模塊402,包括:
獲取單元4021,用于獲取系統中每個節點的中央處理器CPU的負載值,并
確定單元4022,用于根據每個節點的CPU的負載值得到系統的CPU負載值的相對標準差;
比較單元4023,用于將系統中節點壓力的相對標準差與系統的CPU負載值的相對標準差進行比較;
判斷單元4024,用于當系統中節點壓力的相對標準差大于系統的CPU負載值的相對標準差時,判斷系統中存在滿足調度條件的節點。
參見圖7,第二確定模塊403,包括:
查找單元4031,用于在滿足調度條件的節點上查找每千條指令失配次數MPKI值最大和最小的虛擬處理核心;
判斷單元4032,用于判斷MPKI值最大的虛擬處理核心的是否為內存非本地的虛擬處理核心;
第一確定單元4033,用于當MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心時,將MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心;
第二確定單元4034,用于當MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心時,將MPKI值最小的虛擬處理核心確定為需要調度的虛擬處理核心。
參見圖8,調度模塊404,包括:
查找單元4041,用于在每個節點的節點壓力中查找節點壓力值最小的節點,并將節點壓力最小的節點作為目的節點
比較單元4042,用于將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
調度單元4043,用于根據比較結果對需要調度的虛擬處理核心進行調度。
參見圖9,調度單元4043,包括:
比較子單元40431,用于將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;
調度子單元40432,用于當目的節點上的CPU總負載小于滿足調度條件的節點上的CPU的總負載時,將需要調度的虛擬處理核心調度到目的節點上負載最小的處理核心上;
調換子單元40433,用于當目的節點上的CPU總負載大于等于滿足調度條件的節點上的CPU的總負載時,將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與需要調度的虛擬處理核心的位置調換。
綜上,本發明實施例提供的裝置,通過根據系統中每個節點的節點壓力得到系統節點壓力的相對標準差,進而根據系統節點壓力的相對標準差判斷存在滿足調度條件的節點之后,對滿足調度條件的節點上確定的需要調度的虛擬處理核心進行調度,從而消除了滿足調度條件的節點上的虛擬處理核心之間的資源競爭,且無需額外的著色及分析操作,即可消除熱點資源競爭,因此,提高了消除熱點資源競爭的靈活性,降低了資源消耗。
實施例四
參見圖10,本發明實施例提供了一種消除熱點資源競爭的服務器,該服務器包括存儲器1001和處理器1002;
其中,
存儲器1001,用于存儲處理器1002執行的指令;
具體地,
處理器1002,用于確定系統中每個節點的節點壓力,并根據每個節點的節點壓力得到系統節點壓力的相對標準差;
處理器2002,還用于根據系統節點壓力的相對標準差判斷系統中是否存在滿足調度條件的節點;
處理器1002,還用于當系統中存在滿足調度條件的節點時,在滿足調度條件的節點上確定需要調度的虛擬處理核心;
處理器1002,還用于對需要調度的虛擬處理核心進行調度。
作為一種可選的實施例,處理器1002,還用于獲取系統中每個節點的虛擬處理核心運行時的硬件行為信息;根據獲取到的每個節點的虛擬處理核心運行時的硬件行為信息確定每個節點上的節點壓力。
作為一種可選的實施例,處理器1002,還用于獲取系統中每個節點的中央處理器CPU的負載值,并根據每個節點的CPU的負載值確定系統的CPU負載值的相對標準差;將系統中節點壓力的相對標準差與系統的CPU負載值的相對標準差進行比較;當系統中節點壓力的相對標準差大于系統的CPU負載值的相對標準差時,判斷系統中存在滿足調度條件的節點。
作為一種可選的實施例,處理器1002,還用于在滿足調度條件的節點上查找每千條指令失配次數MPKI值最大和最小的虛擬處理核心;判斷MPKI值最大的虛擬處理核心的是否為內存非本地的虛擬處理核心;當MPKI值最大的虛擬處理核心是內存非本地的虛擬處理核心時,將MPKI值最大的虛擬處理核心確定為需要調度的虛擬處理核心;當MPKI值最大的虛擬處理核心不是內存非本地虛擬處理核心時,將MPKI值最小的虛擬處理核心確定為需要調度的虛擬處理核心。
作為一種可選的實施例,處理器1002,用于在每個節點的節點壓力中查找節點壓力值最小的節點,并將節點壓力最小的節點作為目的節點;將目的節點上的CPU總負載與滿足調度條件的節點上的CPU的總負載進行比較;根據比較結果對需要調度的虛擬處理核心進行調度。
作為一種可選的實施例,處理器1002,還用于當目的節點上的CPU總負載小于滿足調度條件的節點上的CPU的總負載時,將需要調度的虛擬處理核心調度到目的節點上負載最小的處理核心上;當目的節點上的CPU總負載大于等于 滿足調度條件的節點上的CPU的總負載時,將目的節點上的內存非本地的虛擬處理核心中MPKI值最小的虛擬處理核心與需要調度的虛擬處理核心位置調換。
本發明實施例提供的服務器,通過根據系統中每個節點的節點壓力得到系統節點壓力的相對標準差,進而根據系統節點壓力的相對標準差判斷存在滿足調度條件的節點之后,對滿足調度條件的節點上確定的需要調度的虛擬處理核心進行調度,從而消除了滿足調度條件的節點上的虛擬處理核心之間的資源競爭,且無需額外的著色及分析操作,即可消除熱點資源競爭,因此,提高了消除熱點資源競爭的靈活性,降低了資源消耗。
需要說明的是:上述實施例提供的消除熱點資源競爭的裝置在消除熱點資源競爭時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將消除熱點資源競爭的裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的消除熱點資源競爭的裝置與消除熱點資源競爭的方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
以上僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

關 鍵 詞:
消除 熱點 資源 競爭 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:消除熱點資源競爭的方法和裝置.pdf
鏈接地址:http://www.rgyfuv.icu/p-6381410.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图