一種虛擬機(jī)調(diào)度方法和管理設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及云計算領(lǐng)域,尤其涉及一種虛擬機(jī)調(diào)度方法和管理設(shè)備。
【背景技術(shù)】
[0002] 在虛擬化技術(shù)中,虛擬機(jī)監(jiān)視器(VirtualMachineMonitor,VMM)為一系統(tǒng)軟 件,可以維護(hù)多個高效的、隔離的程序環(huán)境,該環(huán)境可支持用戶直接訪問真實(shí)硬件,而這樣 的程序環(huán)境就稱為虛擬機(jī)(VirtualMachine,VM)。VMM作為協(xié)調(diào)各個虛擬機(jī)對中央處理器 (CentralProcessingUnit,CPU)、內(nèi)存、輸入 / 輸出(Input/Output,I/O)設(shè)備等資源使用 的實(shí)體,在工作的過程中,VMM需要與虛擬機(jī)競爭物理機(jī)上的各項資源,因此,在設(shè)計VMM的 資源調(diào)度算法時,需要同時考慮到虛擬機(jī)和VMM的資源使用情況。在一款開放源代碼的虛 擬機(jī)監(jiān)視器Xen中,對于CPU資源來說,常用的CPU調(diào)度算法為credit算法,通過為每個虛 擬機(jī)分配兩個屬性:權(quán)重(weight)和百分比(cap)來為各個虛擬機(jī)分配CPU資源。其中, cap表示一個虛擬機(jī)最多占用CPU時間的上限,weight表示一個虛擬機(jī)占用CPU時間片的 比例。
[0003] 其中,在Xen中,存在一個特殊的虛擬機(jī)VMO(也以稱為DomainO),在其他VM(也 以稱為DomainU)訪問設(shè)備時,Xen獲得其它VM的訪問請求,然后將其轉(zhuǎn)交給DomainO,當(dāng) DomainO完成請求操作后,Xen再將結(jié)果返給其它VM。由于運(yùn)行于物理機(jī)上的應(yīng)用類型有很 多種,尤其對于MapReduce這種負(fù)載情況動態(tài)變化的應(yīng)用,這種統(tǒng)一分配權(quán)重的分配方式 不太合理。這是由于當(dāng)同一臺物理機(jī)上的虛擬機(jī)I/O負(fù)載都較高時,就會出現(xiàn)DomainO可 能沒有足夠的CPU時間片來處理I/O請求,從而導(dǎo)致其他虛擬機(jī)DomainU的性能下降;而當(dāng) 物理機(jī)上的虛擬機(jī)運(yùn)行的大都是計算密集型的應(yīng)用時,由于不需要與DomainO進(jìn)行過多的 操作交互,DomainO占用的大量的CPU時間片則會被浪費(fèi),而DomainU則沒有足夠的CPU時 間片來處理自己的CPU計算,也就是說,這種為每個虛擬機(jī)統(tǒng)一分配權(quán)重的分配方式會導(dǎo) 致CPU資源不夠用或被浪費(fèi),使得CPU資源分配不合理,從而導(dǎo)致虛擬機(jī)性能下降。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供一種虛擬機(jī)調(diào)度方法和管理設(shè)備,能夠解決CPU資源分配不合 理導(dǎo)致的虛擬機(jī)性能下降的問題。
[0005] 第一方面,提供一種虛擬機(jī)調(diào)度方法,包括:
[0006] 管理設(shè)備獲取周期時間T內(nèi)物理節(jié)點(diǎn)的中央處理器CPU的輸入/輸出I/O等待時 間占所述CPU的應(yīng)用程序運(yùn)行時間的比率;
[0007] 所述管理設(shè)備將所述比率與預(yù)設(shè)閾值進(jìn)行比較;
[0008] 若所述比率大于所述預(yù)設(shè)閾值,則所述管理設(shè)備將所述物理節(jié)點(diǎn)中的虛擬機(jī)VMO 的權(quán)值調(diào)整為所述權(quán)值與調(diào)整值的和;若所述比率小于或等于所述預(yù)設(shè)閾值,則所述管理 設(shè)備將所述VMO的權(quán)值置為所述VMO的初始權(quán)值;
[0009] 其中,所述權(quán)值用于表征所述VMO占用所述CPU資源的比例。
[0010] 結(jié)合第一方面,在第一方面的第一種可能實(shí)現(xiàn)的方式中,所述管理設(shè)備獲取周期 時間T內(nèi)物理節(jié)點(diǎn)的中央處理器CPU的輸入/輸出I/O等待時間占所述CPU的應(yīng)用程序運(yùn) 行時間的比率包括:
[0011] 所述管理設(shè)備記錄所述物理節(jié)點(diǎn)上的每個虛擬機(jī)分別在t時刻由于I/O等待引起 所述CPU處于空閑狀態(tài)時所述CPU的I/O空閑比率,以及所述物理節(jié)點(diǎn)上的每個虛擬機(jī)分 別在所述t時刻運(yùn)行所述應(yīng)用程序時所述CPU的利用率;
[0012] 所述管理設(shè)備根據(jù)所述每個虛擬機(jī)分別在所述t時刻時所述CPU的I/O空閑比率 和所述每個虛擬機(jī)分別在所述t時刻運(yùn)行所述應(yīng)用程序時所述CPU的利用率,獲取所述周 期時間T內(nèi)所述CPU的I/O等待時間占所述CPU的應(yīng)用程序運(yùn)行時間的比率。
[0013] 結(jié)合第一方面的第一種可能實(shí)現(xiàn)的方式,在第一方面的第二種可能實(shí)現(xiàn)的方式 中,所述管理設(shè)備根據(jù)所述每個虛擬機(jī)分別在所述t時刻時所述CPU的I/O空閑比率和所 述每個虛擬機(jī)分別在所述t時刻運(yùn)行所述應(yīng)用程序時所述CPU的利用率,獲取所述周期時 間T內(nèi)所述CPU的I/O等待時間占所述CPU的應(yīng)用程序運(yùn)行時間的比率包括:
[0014] 所述管理設(shè)備根據(jù)所述每個虛擬機(jī)分別在t時刻時所述CPU的I/O空閑比率獲取 所述CPU在所述t時刻的平均I/O空閑比率,并根據(jù)所述每個虛擬機(jī)分別在所述t時刻運(yùn) 行所述應(yīng)用程序時所述CPU的利用率獲取所述CPU在所述t時刻的平均CPU利用率;
[0015] 所述管理設(shè)備根據(jù)所述CPU在所述t時刻的平均I/O空閑比率獲取所述CPU在所 述周期時間T內(nèi)的平均I/O空閑比率,并根據(jù)所述CPU在所述t時刻的平均CPU利用率獲 取所述CPU在所述周期時間T內(nèi)的平均CPU利用率;
[0016] 所述管理設(shè)備獲取所述CPU在所述周期時間T內(nèi)的平均I/O空閑比率與所述CPU 在所述周期時間T內(nèi)的平均CPU利用率的比值,所述比值為所述周期時間T內(nèi)所述CPU的 I/O等待時間占所述CPU的應(yīng)用程序運(yùn)行時間的比率。
[0017] 結(jié)合第一方面的第一種可能實(shí)現(xiàn)的方式,在第一方面的地三種可能實(shí)現(xiàn)的方式 中,所述管理設(shè)備根據(jù)所述每個虛擬機(jī)分別在所述t時刻時所述CPU的I/O空閑比率和所 述每個虛擬機(jī)分別在所述t時刻運(yùn)行所述應(yīng)用程序時所述CPU的利用率,獲取所述周期時 間T內(nèi)所述CPU的I/O等待時間占所述CPU的應(yīng)用程序運(yùn)行時間的比率包括:
【主權(quán)項】
1. 一種虛擬機(jī)調(diào)度方法,其特征在于,包括: 管理設(shè)備獲取周期時間T內(nèi)物理節(jié)點(diǎn)的中央處理器CPU的輸入/輸出I/O等待時間占 所述CPU的應(yīng)用程序運(yùn)行時間的比率; 所述管理設(shè)備將所述比率與預(yù)設(shè)闊值進(jìn)行比較; 若所述比率大于所述預(yù)設(shè)闊值,則所述管理設(shè)備將所述物理節(jié)點(diǎn)中的虛擬機(jī)VMO的權(quán) 值調(diào)整為所述權(quán)值與調(diào)整值的和;若所述比率小于或等于所述預(yù)設(shè)闊值,則所述管理設(shè)備 將所述VMO的權(quán)值置為所述VMO的初始權(quán)值; 其中,所述權(quán)值用于表征所述VMO占用所述CPU資源的比例。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述管理設(shè)備獲取周期時間T內(nèi)物理節(jié) 點(diǎn)的中央處理器CPU的輸入/輸出I/O等待時間占所述CPU的應(yīng)用程序運(yùn)行時間的比率包 括: 所述管理設(shè)備記錄所述物理節(jié)點(diǎn)上的每個虛擬機(jī)分別在t時刻由于I/O等待引起所述CPU處于空閑狀態(tài)時所述CPU的I/O空閑比率,W及所述物理節(jié)點(diǎn)上的每個虛擬機(jī)分別在所 述t時刻運(yùn)行所述應(yīng)用程序時所述CPU的利用率; 所述管理設(shè)備根據(jù)所述每個虛擬機(jī)分別在所述t時刻時所述CPU的I/O空閑比率和所 述每個虛擬機(jī)分別在所述t時刻運(yùn)行所述應(yīng)用程序時所述CPU的利用率,獲取所述周期時 間T內(nèi)所述CPU的I/O等待時間占所述CPU的應(yīng)用程序運(yùn)行時間的比率。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述管理設(shè)備根據(jù)所述每個虛擬機(jī)分別 在所述t時刻時所述CPU的I/O空閑比率和所述每個虛擬機(jī)分別在所述t時刻運(yùn)行所述應(yīng) 用程序時所述CPU的利用率,獲取所述周期時間T內(nèi)所述CPU的I/O等待時間占所述CPU 的應(yīng)用程序運(yùn)行時間的比率包括: 所述管理設(shè)備根據(jù)所述每個虛擬機(jī)分別在t時刻時所述CPU的I/O空閑比率獲取所述CPU在所述t時刻的平均I/O空閑比率,并根據(jù)所述每個虛擬機(jī)分別在所述t時刻運(yùn)行所述 應(yīng)用程序時所述CPU的利用率獲取所述CPU在所述t時刻的平均CPU利用率; 所述管理設(shè)備根據(jù)所述CPU在所述t時刻的平均I/O空閑比率獲取所述CPU在所述