[發明專利]基于負載預測的NUMA架構中虛擬機調度方法有效
| 申請號: | 201510081101.0 | 申請日: | 2015-02-15 |
| 公開(公告)號: | CN104636187B | 公開(公告)日: | 2018-01-09 |
| 發明(設計)人: | 陳建海;左起同;王備;何欽銘;楊策;黃步添 | 申請(專利權)人: | 浙江大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F9/50 |
| 代理公司: | 杭州天勤知識產權代理有限公司33224 | 代理人: | 馬士林 |
| 地址: | 310027 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 負載 預測 numa 架構 虛擬機 調度 方法 | ||
技術領域
本發明涉及網絡技術領域,具體涉及一種基于負載預測的NUMA架構中虛擬機調度方法。
背景技術
隨著計算機硬件的不斷發展,服務器愈加傾向于承載多種相互獨立的業務。虛擬化技術便很好的適應了這種需求:其對計算機硬件資源進行合理分配給多個操作系統,使得這些操作系統能夠并發地運行在物理計算機之上。且操作系統間保持著相互的獨立,很好地解決了此類問題。現在,虛擬化技術已被廣泛運用于互聯網服務,云計算等一些領域。
在虛擬化技術的誕生之初,計算機多采用SMP結構(Symmetric Multi-Processing,對稱多處理結構),即內存空間為所有的CPU所共享,每一個CPU都可以對內存的任意一個地址進行訪問,因此,虛擬化系統大多將虛擬機默認為SMP結構。然而,隨著計算機CPU物理核個數的增加,現有的SMP結構會帶來效率問題:當多個CPU同時訪問內存是會造成總線的競爭,從而導致系統整體性能的下降。于是NUMA結構(Non Uniform Memory Access Architecture,非統一內存訪問)的計算機被引入:其將若干個CPU與一塊內存劃分為一個節點,每個CPU訪問本節點的私有內存時性能較高,訪問其他節點的內存時性能較低。通過操作系統對應用程序的合理調配,其能夠最大程度地減少訪存的競爭,同時訪存時間又不會有太大的影響。
虛擬化技術亦適應了NUMA體系結構的發展,虛擬機監視器創建支持NUMA體系結構的虛擬機。虛擬機監視器為虛擬機的VCPU和內存劃分為若干個虛擬節點,并在創建虛擬機之初通過初始化虛擬機的APIC表中的SRAT表和SLIT表使得虛擬機操作系統能夠感知虛擬機的虛擬化NUMA拓撲結構。此后,虛擬機監視器在分配VCPU和內存時使得每一個虛擬節點的VCPU和內存分配到同一個物理節點上,這樣便解決了運行在虛擬機之上的操作系統因為不了解底層NUMA結構而造成的性能下降問題。
然而,虛擬節點和物理節點的對應關系在虛擬機的運行過程中需要根據節點的負載進行動態調整。現有的負載均衡方式往往是在負載最高的節點上根據CPU使用率和內存使用率選取一個合適的虛擬機遷移到負載較低的目標節點中去。然而,在負載高的節點上所采集到的CPU使用率并不等同于其遷移到目標節點之后給目標節點所增加的CPU使用率開銷。于是,基于傳統的方法進行遷移,往往會造成遷移之后系統的負載的均衡度不能做到最優。
發明內容
針對現有技術的不足,本發明提出一種基于負載預測的NUMA架構中虛擬機調度方法。
針對每個虛擬機,按照預設的時間間隔定時獲取NUMA架構中各個物理節點的狀態信息,所述的狀態信息包括相應物理節點的CPU、內存使用率,運行于其上的VCPU總數以及運行于其上的當前虛擬機的VCPU數,每次獲得狀態信息后執行如下操作:
(1)根據狀態信息計算各個物理節點的負載;
(2)根據各個物理節點的負載計算NUMA架構的初始負載方差,并判斷初始負載方差是否大于預設的方差閾值;
若初始負載方差小于或等于預設的方差閾值則進行虛擬機調度,則不操作(即休眠一個時間間隔);
否則,確定負載最高的物理節點并作為源節點,并通過負載預測確定是否存在調度方案,所述的調度方案包括待遷移虛擬機和目標節點:
若存在調度方案,則按照所述的調度方案將待遷移虛擬機從所述源節點遷移至目標節點上;
否則,不操作。
本發明的虛擬機調度方法中進行次調度僅調度一個虛擬機,一次調度結束后,負載可能仍然均衡,此時可能需要經過多次調度才能達到負載均衡。且由于整個過程中,各個物理節點的使用狀態也會改變,因此通過按照預設的時間間隔進行周期性調度,能夠實時對系統負載進行調度。
本發明遷移時將待遷移虛擬機的內存和虛擬CPU同時從源節點遷移至目標節點上,不會破壞系統的原有架構。
執行步驟(1)和(2)的時間開銷通常必須小于設定的時間間隔。本發明中所述的時間間隔為1~5s,作為優選,所述的時間間隔為1s。
本發明中計算各個物理節點的負載時同時考慮到CPU負載和內存負載,相應的,所述步驟(1)利用如下公式根據狀態信息計算各個物理節點的負載:
Load_degreenode=wcpu*cpu_usagenode+wmem*mem_usagenode
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學,未經浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510081101.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種任務調度方法與裝置
- 下一篇:水下采油樹液壓內卡式吊裝工具





