一種基於虛擬化容器技術的多工作流任務分配方法與流程
2023-05-13 04:52:46 1
作業調度是工作流研究中的重要問題之一,也一直得到了學術界的深入研究和工業界的廣泛實踐。由於雲環境的複雜性和動態性,客觀上要求能夠進行自適應作業調度,面向雲計算環境的工作流的調度方法與傳統工作流和網格工作流的調度方法存在著很大的區別。
強化學習作為一種重要的機器學習方法,其在雲計算環境中的應用也得到了廣泛關注,取得了一些重要成果。但在實際應用過程中,不可避免的會遇到連續狀態-動作空間而產生的維數災難問題,最終導致收斂速度慢,自適應性差,這些問題極大的限制了強化學習在雲計算領域中的應用。
技術實現要素:
本發明的目的是解決現有技術的缺陷,提供一種基於虛擬化容器技術的多工作流任務分配方法,採用的技術方案如下:
一種基於虛擬化容器技術的多工作流任務分配方法,包括
準備階段:
定義狀態空間:用五元組S=(WR,RA,AW,IM,PJ)表示狀態空間,其中WR表示待調度任務的工作量,RA表示資源可用時間,AW表示等待隊列中的總工作量,IM表示空閒容器資源數,PJ表示隊列中各用戶提交任務的比例;
定義動作空間:用三元組J=(TJ,WS,ET)表示動作空間,其中TJ表示任務類型,WS表示用戶標識符,ET表示任務執行時間;
定義回報函數:
其中為控制係數,為工作流任務vi的響應率,為vi的公平性指標,任務vi的響應率為:
其中,execution timevi為任務的執行時間,waittingtimevi為任務的等待時間,
任務vi的公平性指標定義為:
其中表示用戶k提交的任務vi所需的資源,指用戶k提交的任務vi的響應速率,指取用戶k提交的所有作業中的最大的值,指取用戶K提交的所有作業中最大的W值;
執行階段:
第一步:初始化ρ和Q(s,a),其中ρ表示平均回報,Q(s,a)為二維表格,行s為系統狀態,列a為動作空間;
第二步:設置更新步長,執行迭代;
第三步:將變量i設置為0,將s設置為當前狀態;
第四步:從動作空間a中選擇動作;
第五步:執行選擇的動作,得到當前狀態的立即回報值r和下一個系統狀態s』;
第六步:按式Q(s,a)←Q(s,a)+α*[r-ρ+maxa'Q(s',a')-Q(s,a)]更新Q(s,a),其中,a』代表系統狀態s』下的動作空間,α∈(0,1)代表學習速率;
第七步:判斷是否滿足Q(s,a)=maxaQ(s,a),若是則更新平均回報ρ然後轉第八步,若否則直接轉第八步;
第八步:令i=i+1;
第九步:若i小於更新步長,令s=s』,轉至第二步,若i不小於更新步長,則轉至第十步;
第十步:將Q(s,a)表格中的數據作為輸入,使用高斯過程進行回歸操作,得到回歸結果;
第十一步:使用第十步得到的回歸結果修改Q(s,a)表格;
第十二步:將第七步得到的平均回報ρ作為輸入,使用高斯過程進行回歸操作,得到回歸結果;
第十三步:使用第十二步得到的回歸結果修改平均回報ρ;
第十四步:轉至第二步。
本發明嘗試從不同的角度解決連續狀態-動作空間而產生的維數災難問題,獎賞函數符合多工作流任務公平分配要求,即既要保證容器簇內各容器單元負載均衡,又要避免不同服務質量需求的工作流違反服務級別協定,提高整個容器簇資源利用率,最大程度均衡供需雙方的利益。對於監控-agent,可實時獲取容器簇內各容器資源的效用信息,為任務-agent提供決策依據。
作為優選,第四步中使用以下策略從動作空間中選擇動作:
按公式rank(vexit)=w(vexit)設置任務初始優先級,rank(vexit)表示任務初始優先級,w(vexit)表示出口任務優先級;
對初始優先級進行動態調整,選擇當前優先級最高的動作,
調整公式如下:
其中,rank(vi)′任務為vi調整後的優先級,表示任務vi在當前簇內所有可用虛擬化容器資源上的平均執行代價,表示任務vi和vj之間的平均通信代價,rank(vj)表示任務vj調整前的優先級,為緊急因子,表示當前任務vi在執行中隨外部環境因素改變而導致違反服務等級協議的緊迫程度。
每個調度時刻,任務-agent根據工作流的DAG和服務質量需求,進行流程分解和優先級初始設置,任務初始優先級表示為:
任務vi的優先級是其直接後繼任務優先級與相應通信代價之和的最大值加上自身的計算代價,由於所有任務的優先級都是從出口任務向上遍歷任務圖,因此初始任務優先級可表示為:
rank(vexit)=w(vexit)
任務在緩存隊列等待過程中,可能會由於用戶需求、新工作流提交、容器簇內資源增減等外部環境因素的改變而導致違反服務等級協議。因此,在雲工作流任務執行過程中,需對初始設置的優先級進行動態調整,這一舉措有效的避免先前DAG因剩餘任務遲遲得不到調度而導致時間跨度增大的問題。
作為優選,所述第七步中,按照公式ρ←ρ+β*[r-ρ+maxa'Q(s',a')-maxaQ(s,a)]更新平均回報ρ,其中β∈[0,1]為累積回報折扣因子。
與現有技術相比,本發明的有益效果:
本發明大幅度減少了得到最優策略的學習迭代時間,提高了雲資源的利用率。
附圖說明
圖1是本發明的流程圖。
具體實施方式
下面結合附圖和實施例對本發明做進一步詳細描述。
實施例:
一種基於虛擬化容器技術的多工作流任務分配方法,包括
準備階段:
定義狀態空間:用五元組S=(WR,RA,AW,IM,PJ)表示狀態空間,其中WR表示待調度任務的工作量,RA表示資源可用時間,AW表示等待隊列中的總工作量,IM表示空閒容器資源數,PJ表示隊列中各用戶提交任務的比例;
定義動作空間:用三元組J=(TJ,WS,ET)表示動作空間,其中TJ表示任務類型,WS表示用戶標識符,ET表示任務執行時間;
定義回報函數:
其中為控制係數,為工作流任務vi的響應率,為vi的公平性指標,任務vi的響應率為:
其中,execution timevi為任務的執行時間,waittingtimevi為任務的等待時間,
任務vi的公平性指標定義為:
其中表示用戶k提交的任務vi所需的資源,指用戶k提交的任務vi的響應速率,指取用戶k提交的所有作業中的最大的值,指取用戶K提交的所有作業中最大的W值;
執行階段:
第一步:初始化ρ和Q(s,a),其中ρ表示平均回報,Q(s,a)為二維表格,行s為系統狀態,列a為動作空間;
第二步:設置更新步長,執行迭代;
第三步:將變量i設置為0,將s設置為當前狀態;
第四步:從動作空間a中選擇動作;
第五步:執行選擇的動作,得到當前狀態的立即回報值r和下一個系統狀態s』;
第六步:按式Q(s,a)←Q(s,a)+α*[r-ρ+maxa'Q(s',a')-Q(s,a)]更新Q(s,a),其中,a』代表系統狀態s』下的動作空間,α∈(0,1)代表學習速率;
第七步:判斷是否滿足Q(s,a)=maxaQ(s,a),若是則更新平均回報ρ然後轉第八步,若否則直接轉第八步;
第八步:令i=i+1;
第九步:若i小於更新步長,令s=s』,轉至第二步,若i不小於更新步長,則轉至第十步;
第十步:將Q(s,a)表格中的數據作為輸入,使用高斯過程進行回歸操作,得到回歸結果;
第十一步:使用第十步得到的回歸結果修改Q(s,a)表格;
第十二步:將第七步得到的平均回報ρ作為輸入,使用高斯過程進行回歸操作,得到回歸結果;
第十三步:使用第十二步得到的回歸結果修改平均回報ρ;
第十四步:轉至第二步。
第四步中使用以下策略從動作空間中選擇動作:
按公式rank(vexit)=w(vexit)設置任務初始優先級,rank(vexit)表示任務初始優先級,w(vexit)表示出口任務優先級;
對初始優先級進行動態調整,選擇當前優先級最高的動作,
調整公式如下:
其中,rank(vi)′任務為vi調整後的優先級,表示任務vi在當前簇內所有可用虛擬化容器資源上的平均執行代價,表示任務vi和vj之間的平均通信代價,rank(vj)表示任務vj調整前的優先級,為緊急因子,表示當前任務vi在執行中隨外部環境因素改變而導致違反服務等級協議的緊迫程度。
每個調度時刻,任務-agent根據工作流的DAG和服務質量需求,進行流程分解和優先級初始設置,任務初始優先級表示為:
任務vi的優先級是其直接後繼任務優先級與相應通信代價之和的最大值加上自身的計算代價,由於所有任務的優先級都是從出口任務向上遍歷任務圖,因此初始任務優先級可表示為:
rank(vexit)=w(vexit)
任務在緩存隊列等待過程中,可能會由於用戶需求、新工作流提交、容器簇內資源增減等外部環境因素的改變而導致違反服務等級協議。因此,在雲工作流任務執行過程中,需對初始設置的優先級進行動態調整,這一舉措有效的避免先前DAG因剩餘任務遲遲得不到調度而導致時間跨度增大的問題。
所述第七步中,按照公式ρ←ρ+β*[r-ρ+maxa'Q(s',a')-maxaQ(s,a)]更新平均回報ρ,其中β∈[0,1]為累積回報折扣因子。