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