国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

云計算中虛擬機臟頁實時遷移的改進策略

2019-06-06 03:22曾少慧
關(guān)鍵詞:拷貝停機內(nèi)存

曾少慧,邱 彬

(汕頭職業(yè)技術(shù)學(xué)院計算機系,廣東 汕頭 515078)

0 引言

虛擬化技術(shù)在提高資源利用率的同時,也帶來運算量不斷的增加,特別虛擬機遷移時大量運算加重了通信負擔,造成性能的巨額開銷.如何改善通信機制減少數(shù)據(jù)傳輸量、縮短遷移時間成為虛擬機實時遷移中迫切需要解決的問題.

虛擬機的遷移主要涉及存儲、網(wǎng)絡(luò)和內(nèi)存三種信息[1],其中以內(nèi)存的遷移最為關(guān)鍵.由于虛擬機的遷移是一個動態(tài)的過程,在此過程中內(nèi)存始終處于被讀寫狀態(tài),其存放的資源一直在不斷變化,且內(nèi)存遷移性能對虛擬機遷移時間和停機時間的影響十分突出[2];同時,由于內(nèi)存遷移無法使用NFS 等技術(shù),只能通過網(wǎng)絡(luò)進行,所以合理有效的內(nèi)存遷移算法能減少虛擬機總遷移時間、停機時間和網(wǎng)絡(luò)帶寬,對提高整個遷移性能起明顯作用.

目前虛擬機內(nèi)存遷移應(yīng)用得最廣泛的是預(yù)拷貝(Pre-Copy)算法[3].它的機制是:首先進入迭代拷貝階段,首輪迭代必須傳遞所有內(nèi)存頁到目的虛擬機,之后每輪迭代只傳遞有變化的內(nèi)存頁,每次迭代完成后,判斷是否滿足執(zhí)行停機拷貝的條件,當?shù)螖?shù)到達一定量或傳遞頁面小于一定量時,就進入停機拷貝階段,停機拷貝階段將剩余的臟頁和未被拷貝但已經(jīng)更改的內(nèi)存頁傳遞到目的虛擬機,同時檢測源虛擬機和目的虛擬機內(nèi)存頁面是否同步,若是,則源虛擬機停止工作,進入等待狀態(tài),最后啟動目的虛擬機并銷毀源虛擬機.虛擬機動態(tài)遷移機制如圖1 所示.

圖1 虛擬機動態(tài)遷移機制

近年來,許多專家學(xué)者對基于預(yù)拷貝的虛擬機內(nèi)存遷移機制進行了詳細的分析和研究,取得了若干研究成果[4-8].文獻[4]中對臟頁拷貝策略進行改進,將頻繁修改的臟頁在停機拷貝階段進行傳輸,從而有效地縮短總遷移時間.文獻[5]中,作者根據(jù)局部性原理提出了一種基于臟頁率預(yù)測的預(yù)拷貝機制,對虛擬機內(nèi)存頁的臟頁率做出預(yù)測,優(yōu)先傳輸臟頁率低的內(nèi)存頁,避免高臟頁的重傳.在保證遷移過程中可接受范圍內(nèi)QoS,同時減少迭代拷貝階段的持續(xù)時間,文獻[6]提出一種針對網(wǎng)絡(luò)負載型虛擬機的智能停機預(yù)拷貝遷移策略.文獻[7]提出了虛擬機的實時遷移對未來網(wǎng)絡(luò)中海量計算和存儲的有效性.文獻[8]研究了無線網(wǎng)絡(luò)環(huán)境下虛擬機在線遷移過程中的傳輸性能具有較低的延遲性.雖然上述研究成果對縮短虛擬機遷移總時間和減少總傳輸數(shù)據(jù)量起到一定作用,但對遷移過程中臟頁的判斷不足,傳輸策略的優(yōu)化不明顯,同時沒有考慮虛擬機內(nèi)存變化對停機時間的影響等因素.

本文利用馬爾科夫模型保存臟頁當前的修改狀態(tài),通過當前的數(shù)據(jù)預(yù)測臟頁下次變臟的概率,同時兼顧了預(yù)測概率時臟頁的變化情況,得到有效的變臟率,由此實現(xiàn)對高臟頁傳送的有效控制,節(jié)省了總遷移時間.

1 預(yù)測變臟率的優(yōu)化策略

內(nèi)存預(yù)拷貝算法在中、低負載環(huán)境下表現(xiàn)不錯,但在高負載環(huán)境中,也就是面向內(nèi)存密集型業(yè)務(wù)時可能會失效[9],隨著迭代輪數(shù)的增加,傳送的內(nèi)存頁反而增加,造成更大的開銷.針對以上問題,本文對判斷臟頁的算法進行優(yōu)化,當內(nèi)存頁在進行迭代拷貝時無需拷貝所有臟頁,因為當臟頁率比較高時,在后面的迭代拷貝過程中,臟頁很可能再次被修改,這樣就會提高臟頁重復(fù)傳輸?shù)母怕?另外,原工作集測定算法只關(guān)心臟頁上一次傳送的修改情況,判定周期短,無法較準確測定臟頁的變臟率.預(yù)測內(nèi)存頁變臟率優(yōu)化算法的思路是收集臟頁最近n 次的修改情況,對這n 個數(shù)據(jù)進行分析,計算出該臟頁下次傳送時再次變臟的概率,選擇概率低的即比較穩(wěn)定的臟頁進行傳送.對概率高的即高臟頁則不予傳送,從而降低內(nèi)存頁遷移數(shù)量.

高臟頁的反復(fù)傳送增加了遷移數(shù)據(jù)量,降低了遷移性能[10].如果每次傳送前都能判斷哪些頁屬于高臟頁,并且在下次傳送可能又會發(fā)生變化,則可以跳過本輪傳送,使遷移數(shù)據(jù)量降低,提高遷移性能.為了更準確地測定工作集,本文將內(nèi)存頁分為幾類,見表1.

表1 內(nèi)存頁類別

原虛擬機內(nèi)存預(yù)拷貝只有兩種內(nèi)存頁狀態(tài),本文算法增加為3 種狀態(tài),見表2.

表2 內(nèi)存頁狀態(tài)

增加了臟頁預(yù)測后,對工作集的測定實現(xiàn)流程如圖2 所示.

具體步驟如下:

(1)預(yù)遷移階段,當虛擬機接收到遷移信號后,開始對所有內(nèi)存頁的修改情況進行監(jiān)控,并把數(shù)據(jù)記錄到C-table 中;

(2)當遷移正式開始后,先對C-table 進行更新,判斷該內(nèi)存頁是否屬于第一次傳送,若是,則計算C-table 中所有內(nèi)存頁變臟的概率;

(3)對D-table 進行更新,把當前再次變臟的內(nèi)存頁信息傳送給Pro-table0,同時清空D-table 的數(shù)據(jù);

(4)根據(jù)C-table 的狀態(tài),計算Pro-table0 的臟頁再次變臟的概率;

(5)把上述臟頁和變臟率等信息存放在Pro-table 中,將變臟率大于等于預(yù)定概率閥值Pmax的臟頁設(shè)定為工作集;小于Pmax的臟頁設(shè)定為準備傳送的內(nèi)存頁,存放在Se-table里,同時清空Pro-table 的數(shù)據(jù);

(6)再次更新D-table 的數(shù)據(jù),并將其臟頁信息復(fù)制到Sk-table 中;

(7)跳過Se-table 和Sk-table 中相同的內(nèi)存頁,將Se-table 剩下的內(nèi)存頁進行遷移,并清空Sk-table 的數(shù)據(jù);

(8)最后,判斷是否滿足結(jié)束迭代傳送的條件.若滿足,則凍結(jié)源虛擬機,復(fù)制剩下的內(nèi)存頁以及上次迭代產(chǎn)生的臟頁;若不滿足,則返回步驟(2)繼續(xù)判斷.

圖2 優(yōu)化后的工作集預(yù)測流程圖

2 臟頁實時遷移預(yù)測算法

上述變臟率的計算依據(jù)為臟頁現(xiàn)在的修改情況和貝葉斯條件概率.設(shè)定S1 表示內(nèi)存頁沒有被讀寫,S2 表示內(nèi)存頁只讀,S3 表示內(nèi)存頁被修改.默認遷移開始前內(nèi)存頁狀態(tài)為S1.使用的公式是:

(1)狀態(tài)轉(zhuǎn)移概率矩陣[11]:假定內(nèi)存頁有n 種可能的狀態(tài),即S1,S2,…,Sn,本文中設(shè)定了3 種狀態(tài),即n=3.Pij 表示內(nèi)存頁狀態(tài)從Si 變成Sj 的狀態(tài)轉(zhuǎn)移概率.狀態(tài)轉(zhuǎn)移概率矩陣為:

(2)狀態(tài)概率[12]:表示內(nèi)存頁初始狀態(tài)己知,轉(zhuǎn)移了k 次后變?yōu)闋顟B(tài)Sj 的概率,且:

由馬爾科夫(Markov)假設(shè)和貝葉斯的條件概率公式,有以下狀態(tài)概率的公式:

馬爾科夫預(yù)測模型首先記錄了臟頁最近N 次的修改狀態(tài),然后依據(jù)這N 次的數(shù)據(jù)預(yù)測臟頁下次變臟的概率,并且還兼顧了預(yù)測概率時臟頁的變化情況,對這些數(shù)據(jù)進行統(tǒng)計分析,從而比較可信地得到變臟率.該模型簡易且參數(shù)少,不會造成太大的網(wǎng)絡(luò)開銷,容易實現(xiàn)并有重要的應(yīng)用價值,因此,在虛擬機動態(tài)遷移過程中,提前對臟頁的狀態(tài)轉(zhuǎn)移狀況進行預(yù)測是非常有必要的,降低了臟頁的反復(fù)傳送,節(jié)省了總傳送時間.

3 實驗測試與性能分析

3.1 實驗配置

本文構(gòu)建一個小型局域網(wǎng)作為實驗環(huán)境,且在這個局域網(wǎng)中配置了一個同構(gòu)的測試環(huán)境.硬件配置上,使用三臺2.4 GHz 雙核Intel 處理器,2 GB 內(nèi)存的PC,分別做為虛擬機遷移的源主機和目的主機,以及NFS 服務(wù)器,并通過一臺100 M 的交換機連接起來.軟件配置上,所有PC 機上裝的操作系統(tǒng)為Linux 的版本Ubuntu 14.04.虛擬平臺為Xen 4.4.2.

實驗環(huán)境的構(gòu)建由以下幾部分組成:

(1)在Host A、Host B 上安裝修改過源碼的Xen 4.4.2.實驗過程中,可用vi 編輯Xen的源文件,然后通過編寫make file 重新編譯并安裝Xen;

(2)開啟Xen 的動態(tài)遷移功能,并設(shè)置虛擬機動態(tài)遷移的遷移端口,通過更改目錄/etc/xen/下面的配置文件xend-config,設(shè)置后重啟該進程;

(3)Host C 無需安裝和編譯Xen 4.4.2 源碼,將它作為NFS 服務(wù)器,存儲虛擬機的img鏡像.采用virt-install 命令在NFS 服務(wù)器上創(chuàng)建虛擬機,開啟NFS 服務(wù),并把Host A、Host B 掛載到NFS 目錄下,目錄輸出到/mnt/images 上;

(4)在Host A 上編寫mount 安裝的虛擬機配置文件,并將鏡像文件存放到/mnt/images 下.通過配置文件可以修改虛擬機環(huán)境包括磁盤、網(wǎng)卡、內(nèi)存大小、CPU 個數(shù)等信息.

3.2 實驗數(shù)據(jù)

分別在低臟頁率和高臟頁率環(huán)境下[13],對比原算法和優(yōu)化算法前后的實驗數(shù)據(jù).低負載環(huán)境中進行低臟頁率實驗,做法是不運行任何程序,在空負載下做實驗;高負載環(huán)境中進行高臟頁率實驗,做法是選擇在內(nèi)核編譯時進行.設(shè)置的內(nèi)存大小分別是256 MB,512 MB,1 024 MB 和2 048 MB.在系統(tǒng)目錄下的日志文件中,讀取每次遷移的數(shù)據(jù)記錄,主要包括迭代次數(shù)、停機時間和總遷移時間.每個實驗經(jīng)過反復(fù)20 次的測試,取其平均值作為實驗結(jié)果,對于本文中提出的Pmax值,為表示判斷內(nèi)存頁是否傳送的預(yù)定概率閥值,其值隨著迭代次數(shù)n 而線性增加.本文實驗中預(yù)定概率閥值Pmax選取n的線性函數(shù),即Pmax=P0/2+nP0/N.其中P0表示內(nèi)存頁被改寫時變臟率的增量,N 表示臟頁最近修改情況的次數(shù),結(jié)果如表3 和表4 所示.

表3 原算法與優(yōu)化算法在低負載環(huán)境下的遷移性能比較

表4 原算法與優(yōu)化算法在高負載環(huán)境下的遷移性能比較

根據(jù)原算法和優(yōu)化算法的實驗結(jié)果,得出算法優(yōu)化前后的IN 指標、DT 指標和TMT 指標比對情況,如圖3、圖4、圖5 所示.

圖3 優(yōu)化前后的IN 指標對比

圖4 優(yōu)化前后的DT 指標對比

圖5 優(yōu)化前后的TMT 指標對比

3.3 性能分析

圖3 顯示了不同負載環(huán)境下優(yōu)化前后的迭代次數(shù)的比較,可以看到,低負載的IN很少,優(yōu)化后IN 甚至比原算法略增,這是因為低負載中要傳送的內(nèi)存頁本來就少,而優(yōu)化算法本身也要消耗一定的CPU 資源,但在高負載下就不存在這個問題,高負載下臟頁量多,優(yōu)化算法的優(yōu)勢就體現(xiàn)出來了.圖4 顯示了不同負載環(huán)境下優(yōu)化前后的停機時間的比較,隨著內(nèi)存增大,DT 的值并沒有跟著改變,而不同負載環(huán)境下,DT 的值有明顯增長,說明DT 主要受高臟頁數(shù)量的影響,與虛擬機的內(nèi)存沒有明顯關(guān)系.低負載下,優(yōu)化前后的DT 值沒有明顯變化;高負載下,優(yōu)化后的DT 略有減少.圖5 顯示了不同負載環(huán)境下優(yōu)化前后的總遷移時間的比較,TMT 隨著虛擬機內(nèi)存的增大而增大,低負載下,TMT 變化不明顯,因為TMT 受IN 和DT 影響,某種情況下,IN 和DT 兩者成反比.高負載下,TMT 有明顯減少,從表4 中數(shù)據(jù)可以看出,不同內(nèi)存環(huán)境下虛擬機遷移時間降低的百分比都在10%左右.盡管優(yōu)化算法會消耗一定的CPU 資源,但足以抵消高臟頁反復(fù)傳送帶來的損耗,達到了優(yōu)化遷移性能的目的.

4 結(jié)論

內(nèi)存遷移的合理性對虛擬機的總遷移時間和停機時間有很大影響,是當前研究虛擬機動態(tài)遷移的重點.高臟頁的反復(fù)傳送增加了遷移數(shù)據(jù)量,降低了遷移性能.針對內(nèi)存遷移機制中傳統(tǒng)算法對臟頁判斷的不足,本文提出臟頁率預(yù)測優(yōu)化算法,計算臟頁下次傳輸時再次變臟的概率,將概率高的臟頁留在停機階段進行拷貝,這樣可以避免在迭代階段頻繁重傳高臟頁.實驗表明,本文算法在高負載環(huán)境下能使高臟頁的無效傳送次數(shù)明顯減少,同時縮短了10%的虛擬機遷移時間,優(yōu)化了遷移性能.

猜你喜歡
拷貝停機內(nèi)存
質(zhì)量管理工具在減少CT停機天數(shù)中的應(yīng)用
筆記本內(nèi)存已經(jīng)在漲價了,但幅度不大,升級擴容無須等待
“春夏秋冬”的內(nèi)存
唐氏綜合征是因為“拷貝”走樣了
文化拷貝應(yīng)該如何“拷”
文化拷貝應(yīng)該如何“拷”
雷克薩斯NX200t車停機和起動系統(tǒng)解析
內(nèi)存搭配DDR4、DDR3L還是DDR3?
欠費停機
發(fā)動機怠速-停機起動機的開發(fā)