本發明涉及云計算技術領域,具體提供一種PAAS平臺下的動態資源調度算法。
背景技術:
隨著社會經濟的不斷發展,計算機逐漸成為人們日常生活中不可或缺的重要的工作及交流工具,并且隨著時代的進步,人們對計算機各項性能的要求也越來越高。計算機的使用離不開網絡,隨著對計算機性能要求的提高,對網絡的要求也有相應的提高,互聯網技術迅猛發展起來。云計算是一種基于互聯網的計算方式,通過該種方式,軟硬件資源可以按需提供給服務使用者。而PASS平臺作為云計算的重要組成部分,是在IAAS的基礎上,向應用開發者提供應用托管運行環境、可供調用的能力組件以及各種相關的應用管理和應用支撐工具。云平臺為用戶提供的各類型的服務,以任務調度到合理的虛擬機上執行,在快速響應用戶請求的同時提高資源的使用率。而這需要強大的資源調度技術的支持。當前的PASS平臺的資源調度策略主要是依賴底層的IAAS平臺進行,并且調度策略的優化目標單一。這種類型的調度策略不能客觀正確的反映出云平臺的真實的運行狀態,存在一定的局限性。
技術實現要素:
本發明的技術任務是針對上述存在的問題,提供一種能客觀正確的反應出云平臺資源的使用狀態,合理部署服務到對應的物理主機上,并同時對服務所在的物理主機進行監控,動態遷移綜合利用率較低的服務,保持宿主機負載均衡的基礎上,兼顧資源利用率的PAAS平臺下的動態資源調度算法。
為實現上述目的,本發明提供了如下技術方案:
一種PAAS平臺下的動態資源調度算法,利用PAAS平臺的監控模塊,根據宿主機的綜合利用率模型,周期性的采集并計算虛擬機所在宿主機的CPU、內存及存儲的利用率,并計算宿主機資源利用率,將服務部署在資源利用率最低的節點上,同時,利用PAAS平臺的監控模塊周期性的對運行在宿主機的服務進行監控,選擇服務資源利用率最低的服務進行動態的虛擬機遷移;該動態資源調度算法的具體步驟為:
S1:利用PAAS平臺監控模塊周期性的采集并計算宿主機的CPU、內存及存儲利用率;
S2:在隨機時間t內,多次采集并計算宿主機的CPU、內存及存儲利用率,由此計算宿主機的CPU、內存及存儲的平均利用率;
S3:在步驟S2基礎上計算宿主機的資源利用率,將服務部署在宿主機資源利用率最低的節點上;
S4:利用PAAS平臺監控模塊在周期T內計算服務所在宿主機的CPU、內存、存儲及服務本身的平均利用率;
S5:在步驟S4基礎上計算服務資源利用率;
S6:設置服務資源利用率告警閥值,當服務資源利用率小于服務資源利用率告警閥值時,產生虛擬機遷移告警,將服務遷移至資源利用率最低的宿主機上。
在分配虛擬機的時候啟動調度策略,綜合考慮宿主機的CPU、內存以及存儲,通過周期性的采集并計算CPU、內存以及存儲的平均利用率決定虛擬機的分配。利用PAAS平臺監控模塊提供的API,周期性的采集宿主機的CPU、內存以及存儲的利用率,并由此計算出宿主機的CPU、內存以及存儲的平均利用率,在此基礎上計算出宿主機的資源利用率,將服務部署在宿主機資源利用率最低的節點上。服務在運行一段時間之后,會產生系統資源分配不足、利用率低下的問題。利用PAAS平臺監控模塊在周期T內再次采集服務所在宿主機的CPU、內存、存儲及服務本身的平均利用率,并在此基礎上計算服務資源利用率,當服務資源利用率小于資源利用率告警閥值時,產生虛擬機遷移告警,將該服務遷移至資源利用率最低的宿主機上。資源利用率最低的宿主機根據步驟S1、S2和S3確定。在保持宿主機負載均衡的基礎上,兼顧了資源的利用率。
作為優選,步驟S1所述宿主機的CPU、內存及存儲的利用率的計算方法分別為:
Host_CPUutil=CPU_Used/CPUTotal;
Host_Memutil=Mem_Used/MemTotal;
Host_Storageutil=Storage_Used/StorageTotal;
其中,Host_CPUutil表示宿主機的CPU利用率,CPU_Used表示當前宿主機中的運行CPU的數量,CPUTotal表示宿主機中總共的CPU的數量;Host_Memutil表示宿主機的內存利用率,Mem _Used表示當前宿主機中的運行內存的量,Mem Total表示宿主機中總共的內存的量;Host_Storageutil表示宿主機的存儲利用率,Storage_Used表示當前宿主機中的運行存儲的量,Storage Total表示宿主機中總共的存儲的量。
作為優選,步驟S2所述宿主機的CPU、內存及存儲的平均利用率的計算方法分別為:
CPU_Avgutil=Host_CPUutil/n
Mem_Avgutil=Host_Memutil/n
Storage_Avgutil=Host_Storage util/n,
其中,CPU_Avgutil、Mem_Avgutil、Storage_Avgutil分別表示CPU、內存、存儲的平均利用率。
作為優選,步驟S3所述宿主機的資源利用率的計算方法為:
Host_Avgutil=1/(1- CPU_Avgutil)*(1- Mem_Avgutil)*(1- Storage_Avgutil),
其中, Host_Avgutil表示宿主機的資源利用率。
作為優選,步驟S4所述宿主機的CPU、內存及存儲的利用率與步驟S1所述宿主機的CPU、內存及存儲的利用率的計算方法相同,所述服務在周期T內的平均利用率的計算方法為:
Host_Serviceutil=Service_used_time/T
Service_ Avgutil=Host_Serviceutil/n;
其中,Host_Serviceutil表示時間T內,服務的利用率,Service_ Avgutil表示隨機多次采集的時間內,服務本身的平均利用率。
作為優選,步驟S5所述服務資源利用率的計算方法為:
Host_Avgutil=1/(1- CPU_Avgutil)*(1- Mem_Avgutil)*(1- Storage_Avgutil)*(1- Service_Avgutil),其中,Host_Avgutil表示服務資源利用率
與現有技術相比,本發明的PAAS平臺下的動態資源調度算法具有以下突出的有益效果:
(一)所述PAAS平臺下的動態資源調度算法提供宿主機資源的綜合利用率計算模型,更加完整、準確的反應出宿主機的資源使用情況,為虛擬機的動態分配提供理論模型;
(二)周期性的對服務所在的宿主機進行監控,在綜合衡量CPU、內存以及存儲的利用率的基礎上,結合服務的利用率,對服務所在的宿主機服務資源利用率進行衡量,動態的遷移服務資源利用率較低的虛擬機,在保持宿主機負載均衡的基礎上,兼顧了資源的利用率。
具體實施方式
下面將結合實施例,對本發明的PAAS平臺下的動態資源調度算法作進一步詳細說明。
實施例
本發明的PAAS平臺下的動態資源調度算法,在分配虛擬機的時候啟動調度策略,利用PAAS平臺的監控模塊提供的API,根據宿主機的綜合利用率模型,周期性的采集并計算虛擬機所在宿主機的CPU、內存及存儲的利用率,并由此計算出宿主機的CPU、內存以及存儲的平均利用率,在此基礎上計算宿主機資源利用率,將服務部署在資源利用率最低的節點上。服務在運行一段時間之后,會產生系統資源分配不足、利用率低下的問題。利用PAAS平臺的監控模塊在周期T內再次采集并計算服務所在宿主機的CPU、內存以、存儲及服務本身的平均利用率,并在此基礎上計算服務資源利用率,當服務資源利用率小于資源利用率告警閥值時,產生虛擬機遷移告警,將該服務遷移至資源利用率最低的宿主機上。資源利用率最低的宿主機根據步驟S1、S2和S3確定。
該動態資源調度算法的具體步驟為:
S1:利用PAAS平臺監控模塊周期性的采集宿主機的CPU、內存及存儲利用率。
CPU、內存及存儲利用率的計算方法分別為:Host_CPUutil=CPU_Used/CPUTotal;
Host_Memutil=Mem_Used/MemTotal;
Host_Storageutil=Storage_Used/StorageTotal。
其中,Host_CPUutil表示宿主機的CPU利用率,CPU_Used表示當前宿主機中的運行CPU的數量,CPUTotal表示宿主機中總共的CPU的個數;Host_Memutil表示宿主機的內存利用率,Mem _Used表示當前宿主機中的運行內存的量,Mem Total表示宿主機中總共的內存的量;Host_Storageutil表示宿主機的存儲利用率,Storage_Used表示當前宿主機中的運行存儲的量,Storage Total表示宿主機中總共的存儲的量。
S2:在隨機時間t內,多次采集并計算宿主機的CPU、內存及存儲利用率,由此計算宿主機的CPU、內存及存儲的平均利用率。
宿主機的CPU、內存及存儲的平均利用率的計算方法分別為:
CPU_Avgutil=Host_CPUutil/n
Mem_Avgutil=Host_Memutil/n
Storage_Avgutil=Host_Storage util/n。
其中,CPU_Avgutil、Mem_Avgutil、Storage_Avgutil分別表示CPU、內存、存儲的平均利用率。
S3:在步驟S2基礎上計算宿主機的資源利用率,將服務部署在宿主機資源利用率最低的節點上。
宿主機的資源利用率的計算方法為:
Host_Avgutil=1/(1- CPU_Avgutil)*(1- Mem_Avgutil)*(1- Storage_Avgutil)。
其中,Host_Avgutil表示宿主機的資源利用率。
S4:利用PAAS平臺監控模塊在周期T內計算服務所在宿主機的CPU、內存、存儲及服務本身的平均利用率。
宿主機的CPU、內存、存儲的平均利用率的計算方法與步驟S2的相同,服務本身的平均利用率的計算方法為:
Host_Serviceutil=Service_used_time/T
Service_ Avgutil=Host_Serviceutil/n;
其中,Host_Serviceutil表示時間T內,服務的利用率,Service_ Avgutil表示隨機多次采集的時間內,服務本身的平均利用率。
S5:在步驟S4基礎上計算服務資源利用率。
服務資源利用率的計算方法為:
Host_Avgutil=1/(1- CPU_Avgutil)*(1- Mem_Avgutil)*(1- Storage_Avgutil)*(1- Service_Avgutil)。
其中,Host_Avgutil表示服務資源利用率。
S6:設置服務資源利用率告警閥值,當服務資源利用率小于服務資源利用率告警閥值時,產生虛擬機遷移告警,將服務遷移至資源利用率最低的宿主機上。
以上所述的實施例,只是本發明較優選的具體實施方式,本領域的技術人員在本發明技術方案范圍內進行的通常變化和替換都應包含在本發明的保護范圍內。