實驗目的
- 本實驗將引導學生對雲計算任務調度算法的相關研究現狀進行深入分析和研究,從影響用戶任務的執行效率和系統資源的使用效率的角度出發,在現有的雲計算任務調度算法的基礎上,進行理論創新,從模型高效和算法高效2個層面上設計雲計算任務調度模型、算法並實現。
實驗思路
- 實驗主要分為兩大部分,虛擬服務器模擬處理任務和主服務器(主線程)模擬分發任務到各個服務器,從而實現任務調度。虛擬服務器怎么模擬處理任務,為此,我們本次實驗采取虛擬服務器資源和虛擬服務器處理任務的多線程來實現任務分配。
任務調度:任務生成是通過隨機數生成的任務大小和執行時間。任務大小和執行時間會影響到虛擬服務單任務執行時間和資源消耗。比如:任務過大,超出任何一台服務器的最大的執行的能力,就會出現任務過載,本次實驗,在任務分配前需要檢測。一旦發現,強行作廢,並打印告知管理員。其二,極端任務,本次實驗對極端任務的定義是:極端任務是這個任務執行需要的資源(內存)在所有的虛擬服務器僅此有一台服務器最大空閑時能滿足此要求,這就是極端任務,極端任務需要特殊處理,不需要參與到一致性hash算法的分配算法中,因為此物僅此只能一台服務器處理。為此,我們在定義每台的虛擬服務器資源,定義了每台服務器都有自己的任務隊列,都在初始化(new Object())產生自己的內部 獨立的任務分配線程,此任務分配線程只負責處理自己內部的任務隊列,一旦有新的任務,就只鎖上自己(通過內部標志位),直到為空時,恢復標志位。任務隊列任務的添加靠主線程,一旦發現有極端任務,就會添加到對應的虛擬服務器的任務隊列中。從而解決了因為單個極端任務,導致其他服務器空閑的情況( 這種極端任務處理機制大大降低的服務器空閑概率)。
實驗算法
- 本次實驗采用了一致性hash算法並添加了權值,權值的改變根據虛擬服務器最大資源量和運行時每隔一段時間的資源使用率來決定權值大小,權值大小直接影響到虛擬服務器在h一致性環內的節點個數,個數越多,被分配到的概率就會也大,從而更好的實現了負載均衡。
一致性Hash算法的應用:路由分配、ip分配、任務調度、散列隨機數
實驗結果
- 極端節點特別多得情況(注:相對均衡率越小越均衡):
-
;(注:此次試驗截圖故意讓極端任務生成的概率大,因此就會有很多極端任務或過載任務,從而很大程度影響了相對均衡率,越小越均衡)
-
下面是極端任務生成的概率低的情況:
- 從圖中可以看出,各個虛擬服務器的柱狀圖都很均勻,幾乎都能處於很高的資源使用率的狀況,並且最終的相對均衡率很小,出現的極端任務越小,任務處理的所需的資源越小,其相對均衡率就會越小。
公式:相對均衡率:sum(|(服務器A執行總的任務數/總的分配任務)-(服務器A最大資源/所有服務器最大資源總數)| (取絕對值))/總服務器個數 A是指各個服務器別民,