国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種共享集群的任務(wù)調(diào)度方法及裝置與流程

      文檔序號:12464346閱讀:296來源:國知局
      一種共享集群的任務(wù)調(diào)度方法及裝置與流程

      本發(fā)明涉及信息處理領(lǐng)域,特別是指一種共享集群的任務(wù)調(diào)度方法及裝置。



      背景技術(shù):

      隨著現(xiàn)代數(shù)據(jù)中心的發(fā)展,云計(jì)算技術(shù)正在變得越來越便捷、有影響力。多個(gè)商業(yè)云平臺可以為消費(fèi)者提供現(xiàn)購現(xiàn)付方式,消費(fèi)者們不用考慮云的架構(gòu)就可以直接將程序部署在云平臺上。這種方式對消費(fèi)者來說確實(shí)很便利,但它同時(shí)也為云服務(wù)提供商帶來了一些管理難題。

      共享集群使得云計(jì)算平臺變?yōu)楝F(xiàn)實(shí)。值得注意的是包括谷歌和微軟在內(nèi)的大多數(shù)商業(yè)云平臺都使用了先占式任務(wù)調(diào)度方法來解決集群中發(fā)生的資源不足的問題。一般地說,任務(wù)在提交到云端時(shí)的附帶屬性中包含了該任務(wù)的優(yōu)先級,而不同的優(yōu)先級與用戶購買的不同等級的服務(wù)相關(guān)。這意味著當(dāng)系統(tǒng)中資源緊張時(shí)(系統(tǒng)負(fù)載較重),高優(yōu)先級的任務(wù)將不顧低優(yōu)先級任務(wù)的執(zhí)行進(jìn)展,中斷其執(zhí)行過程,從而優(yōu)先執(zhí)行。當(dāng)前采用的先占式任務(wù)調(diào)度機(jī)制為簡單地終止低優(yōu)先級任務(wù)運(yùn)行,并在資源充足時(shí)重新開始運(yùn)行。

      這種傳統(tǒng)的先占式任務(wù)調(diào)度可以保證高優(yōu)先級任務(wù)盡快完成。然而它會使低優(yōu)先級任務(wù)付出極大的代價(jià)。這種基于終止的先占式調(diào)度方法不僅增加了低優(yōu)先級任務(wù)特別是需要長時(shí)間運(yùn)行的低優(yōu)先級任務(wù)的響應(yīng)時(shí)間,而且消耗了大量的資源、極大地削弱了整個(gè)云端的效能。

      針對現(xiàn)有技術(shù)中低優(yōu)先級任務(wù)響應(yīng)時(shí)間長、資源消耗大、云端工作效率低的問題,目前尚未提出有效的技術(shù)方案。



      技術(shù)實(shí)現(xiàn)要素:

      有鑒于此,本發(fā)明實(shí)施例的目的在于提出一種共享集群的任務(wù)調(diào)度方法及裝置,能夠縮短低優(yōu)先級任務(wù)的響應(yīng)時(shí)間、提高資源利用率,進(jìn)而提高云端的整體性能。

      基于上述目的本發(fā)明實(shí)施例提供的共享集群的任務(wù)調(diào)度方法,包括:

      確定共享集群中的資源與調(diào)度參數(shù);

      定時(shí)檢查是否需要設(shè)置檢查點(diǎn);

      當(dāng)需要設(shè)置檢查點(diǎn)時(shí),確定需要設(shè)置檢查點(diǎn)的任務(wù),并為之設(shè)置檢查點(diǎn);

      當(dāng)有新任務(wù)到達(dá)時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列;

      當(dāng)共享集群的資源使用狀況發(fā)生變化時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列。

      其中,共享集群中的資源與調(diào)度參數(shù)包括:

      確定共享集群中資源的種類數(shù)量與各類資源的總量;

      根據(jù)共享集群的負(fù)載波動確定檢查點(diǎn)設(shè)置閾值;

      確定每兩次檢查之間的檢查點(diǎn)設(shè)置間隔。

      并且,定時(shí)檢查是否需要設(shè)置檢查點(diǎn)包括:

      獲取當(dāng)前各類資源的占用率;

      根據(jù)當(dāng)前各類資源的占用率中的最大值確定當(dāng)前共享集群的占用率;

      將當(dāng)前共享集群的占用率與檢查點(diǎn)設(shè)置閾值進(jìn)行比對,大于檢查點(diǎn)設(shè)置閾值判定為需要設(shè)置檢查點(diǎn),否則判定為不需要設(shè)置檢查點(diǎn);

      等待檢查點(diǎn)設(shè)置間隔長度的時(shí)間后重復(fù)上述步驟進(jìn)行下一次檢查。

      同時(shí),確定需要設(shè)置檢查點(diǎn)的任務(wù)包括:

      獲取每個(gè)正在運(yùn)行的任務(wù)的優(yōu)先級,并將所有正在運(yùn)行的任務(wù)按照優(yōu)先級由高到低排列;

      獲取每個(gè)正在運(yùn)行的任務(wù)當(dāng)前對各類資源的占用率;

      從隊(duì)列中依次取出任務(wù),并將被取出任務(wù)當(dāng)前對各類資源的占用率進(jìn)行累加,直到各類資源的占用率均超過檢查點(diǎn)設(shè)置閾值為止;

      選取占用率最先超過檢查點(diǎn)設(shè)置閾值的資源所對應(yīng)的任務(wù),將該任務(wù)與隊(duì)列中位于該任務(wù)之后的全部任務(wù)確定為需要設(shè)置檢查點(diǎn)的任務(wù)。

      同時(shí),當(dāng)有新任務(wù)到達(dá)時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列包括:

      獲取新到達(dá)任務(wù)對各類資源的占用率,當(dāng)共享集群各類可用資源不足以處理新到達(dá)任務(wù)時(shí)繼續(xù)下一步驟,否則開始運(yùn)行;

      獲取新到達(dá)任務(wù)的優(yōu)先級,當(dāng)新到達(dá)任務(wù)優(yōu)先級處于兩個(gè)正在運(yùn)行的任務(wù)之間時(shí)繼續(xù)下一步驟,否則進(jìn)入混合等待隊(duì)列;

      判斷所有優(yōu)先級低于新到達(dá)任務(wù)的正在運(yùn)行的任務(wù)當(dāng)前對各類資源的占用率、與共享集群各類可用資源之和是否足夠運(yùn)行新到達(dá)任務(wù),是則中止所有優(yōu)先級低于新到達(dá)任務(wù)的正在運(yùn)行的任務(wù)并轉(zhuǎn)移到可用隊(duì)列中并運(yùn)行新到達(dá)任務(wù),否則新到達(dá)任務(wù)進(jìn)入混合等待隊(duì)列。

      同時(shí),當(dāng)共享集群的資源使用狀況發(fā)生變化時(shí),為有任務(wù)完成時(shí)或共享集群各類可用資源增加時(shí)。

      并且,當(dāng)共享集群的資源使用狀況發(fā)生變化時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列包括:

      將被完成的任務(wù)從正在運(yùn)行的任務(wù)中刪除并釋放其占用的各類資源;

      獲取每個(gè)混合等待隊(duì)列的任務(wù)的優(yōu)先級,并將所有混合等待隊(duì)列的任務(wù)按照優(yōu)先級由高到低排列;

      從隊(duì)列中依次取出任務(wù),并將被取出任務(wù)當(dāng)前對各類資源的占用率進(jìn)行累加,直到各類資源的占用率與所有正在運(yùn)行的任務(wù)當(dāng)前對各類資源的占用率之和均超過總量為止;

      選取占用率最先超過總量的資源所對應(yīng)的任務(wù),運(yùn)行隊(duì)列中位于該任務(wù)之前的全部任務(wù)。

      并且,運(yùn)行隊(duì)列中位于該任務(wù)之前的全部任務(wù)包括:

      對于設(shè)置了檢查點(diǎn)的任務(wù),從最后一個(gè)檢查點(diǎn)開始運(yùn)行;

      對于未設(shè)置檢查點(diǎn)的任務(wù),從頭開始運(yùn)行。

      上述步驟中,當(dāng)多個(gè)被比較的任務(wù)具有相同優(yōu)先級時(shí),將多個(gè)任務(wù)中到達(dá)時(shí)間較早的視為優(yōu)先級較高的進(jìn)行處理。

      從上面所述可以看出,本發(fā)明實(shí)施例提供的共享集群的任務(wù)調(diào)度方法及裝置,通過使用定時(shí)檢查是否需要設(shè)置檢查點(diǎn)、確定需要設(shè)置檢查點(diǎn)的任務(wù),并當(dāng)有新任務(wù)到達(dá)或共享集群的資源使用狀況發(fā)生變化時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列的技術(shù)手段,縮短低優(yōu)先級任務(wù)的響應(yīng)時(shí)間、提高資源利用率,進(jìn)而提高云端的整體性能。

      附圖說明

      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明提供的共享集群的任務(wù)調(diào)度方法的第一個(gè)實(shí)施例的流程示意圖;

      圖2為本發(fā)明提供的共享集群的任務(wù)調(diào)度方法的第二個(gè)實(shí)施例中,集群在某確定時(shí)刻的狀況模型示意圖;

      圖3為本發(fā)明提供的共享集群的任務(wù)調(diào)度方法的第二個(gè)實(shí)施例中,根據(jù)集群狀態(tài)不同采用的不同調(diào)度策略示意圖;

      圖4為本發(fā)明提供的執(zhí)行共享集群的任務(wù)調(diào)度方法的電子設(shè)備的一個(gè)實(shí)施例的硬件結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明實(shí)施例進(jìn)一步詳細(xì)說明。

      需要說明的是,本發(fā)明實(shí)施例中所有使用“第一”和“第二”的表述均是為了區(qū)分兩個(gè)相同名稱非相同的實(shí)體或者非相同的參量,可見“第一”“第二”僅為了表述的方便,不應(yīng)理解為對本發(fā)明實(shí)施例的限定,后續(xù)實(shí)施例對此不再一一說明。

      基于上述目的,本發(fā)明實(shí)施例的第一個(gè)方面,提出了一種能夠針對不同用戶或不同類型的用戶進(jìn)行共享集群的任務(wù)調(diào)度的共享集群的任務(wù)調(diào)度方法的第一個(gè)實(shí)施例。如圖1所示,為本發(fā)明提供的共享集群的任務(wù)調(diào)度方法的第一個(gè)實(shí)施例的流程示意圖。

      所述共享集群的任務(wù)調(diào)度方法,可選的,應(yīng)用于服務(wù)器,包括:

      步驟S101,確定共享集群中的資源與調(diào)度參數(shù);

      步驟S103,定時(shí)檢查是否需要設(shè)置檢查點(diǎn);

      步驟S105,當(dāng)需要設(shè)置檢查點(diǎn)時(shí),確定需要設(shè)置檢查點(diǎn)的任務(wù),并為之設(shè)置檢查點(diǎn);

      步驟S107,當(dāng)有新任務(wù)到達(dá)時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列;

      步驟S109,當(dāng)共享集群的資源使用狀況發(fā)生變化時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列。

      其中,共享集群中的資源與調(diào)度參數(shù)包括:

      確定共享集群中資源的種類數(shù)量與各類資源的總量;

      根據(jù)共享集群的負(fù)載波動確定檢查點(diǎn)設(shè)置閾值;

      確定每兩次檢查之間的檢查點(diǎn)設(shè)置間隔。

      并且,定時(shí)檢查是否需要設(shè)置檢查點(diǎn)包括:

      獲取當(dāng)前各類資源的占用率;

      根據(jù)當(dāng)前各類資源的占用率中的最大值確定當(dāng)前共享集群的占用率;

      將當(dāng)前共享集群的占用率與檢查點(diǎn)設(shè)置閾值進(jìn)行比對,大于檢查點(diǎn)設(shè)置閾值判定為需要設(shè)置檢查點(diǎn),否則判定為不需要設(shè)置檢查點(diǎn);

      等待檢查點(diǎn)設(shè)置間隔長度的時(shí)間后重復(fù)上述步驟進(jìn)行下一次檢查。

      同時(shí),確定需要設(shè)置檢查點(diǎn)的任務(wù)包括:

      獲取每個(gè)正在運(yùn)行的任務(wù)的優(yōu)先級,并將所有正在運(yùn)行的任務(wù)按照優(yōu)先級由高到低排列;

      獲取每個(gè)正在運(yùn)行的任務(wù)當(dāng)前對各類資源的占用率;

      從隊(duì)列中依次取出任務(wù),并將被取出任務(wù)當(dāng)前對各類資源的占用率進(jìn)行累加,直到各類資源的占用率均超過檢查點(diǎn)設(shè)置閾值為止;

      選取占用率最先超過檢查點(diǎn)設(shè)置閾值的資源所對應(yīng)的任務(wù),將該任務(wù)與隊(duì)列中位于該任務(wù)之后的全部任務(wù)確定為需要設(shè)置檢查點(diǎn)的任務(wù)。

      同時(shí),當(dāng)有新任務(wù)到達(dá)時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列包括:

      獲取新到達(dá)任務(wù)對各類資源的占用率,當(dāng)共享集群各類可用資源不足以處理新到達(dá)任務(wù)時(shí)繼續(xù)下一步驟,否則開始運(yùn)行;

      獲取新到達(dá)任務(wù)的優(yōu)先級,當(dāng)新到達(dá)任務(wù)優(yōu)先級處于兩個(gè)正在運(yùn)行的任務(wù)之間時(shí)繼續(xù)下一步驟,否則進(jìn)入混合等待隊(duì)列;

      判斷所有優(yōu)先級低于新到達(dá)任務(wù)的正在運(yùn)行的任務(wù)當(dāng)前對各類資源的占用率、與共享集群各類可用資源之和是否足夠運(yùn)行新到達(dá)任務(wù),是則中止所有優(yōu)先級低于新到達(dá)任務(wù)的正在運(yùn)行的任務(wù)并轉(zhuǎn)移到可用隊(duì)列中并運(yùn)行新到達(dá)任務(wù),否則新到達(dá)任務(wù)進(jìn)入混合等待隊(duì)列。

      同時(shí),當(dāng)共享集群的資源使用狀況發(fā)生變化時(shí),為有任務(wù)完成時(shí)或共享集群各類可用資源增加時(shí)。

      并且,當(dāng)共享集群的資源使用狀況發(fā)生變化時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列包括:

      將被完成的任務(wù)從正在運(yùn)行的任務(wù)中刪除并釋放其占用的各類資源;

      獲取每個(gè)混合等待隊(duì)列的任務(wù)的優(yōu)先級,并將所有混合等待隊(duì)列的任務(wù)按照優(yōu)先級由高到低排列;

      從隊(duì)列中依次取出任務(wù),并將被取出任務(wù)當(dāng)前對各類資源的占用率進(jìn)行累加,直到各類資源的占用率與所有正在運(yùn)行的任務(wù)當(dāng)前對各類資源的占用率之和均超過總量為止;

      選取占用率最先超過總量的資源所對應(yīng)的任務(wù),運(yùn)行隊(duì)列中位于該任務(wù)之前的全部任務(wù)。

      并且,運(yùn)行隊(duì)列中位于該任務(wù)之前的全部任務(wù)包括:

      對于設(shè)置了檢查點(diǎn)的任務(wù),從最后一個(gè)檢查點(diǎn)開始運(yùn)行;

      對于未設(shè)置檢查點(diǎn)的任務(wù),從頭開始運(yùn)行。

      上述步驟中,當(dāng)多個(gè)被比較的任務(wù)具有相同優(yōu)先級時(shí),將多個(gè)任務(wù)中到達(dá)時(shí)間較早的視為優(yōu)先級較高的進(jìn)行處理。

      從上述實(shí)施例可以看出,本發(fā)明實(shí)施例提供的共享集群的任務(wù)調(diào)度方法,通過使用定時(shí)檢查是否需要設(shè)置檢查點(diǎn)、確定需要設(shè)置檢查點(diǎn)的任務(wù),并當(dāng)有新任務(wù)到達(dá)或共享集群的資源使用狀況發(fā)生變化時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列的技術(shù)手段,縮短低優(yōu)先級任務(wù)的響應(yīng)時(shí)間、提高資源利用率,進(jìn)而提高云端的整體性能。

      本發(fā)明實(shí)施例還提出了一種能夠針對不同用戶或不同類型的用戶進(jìn)行共享集群的任務(wù)調(diào)度的共享集群的任務(wù)調(diào)度方法的第二個(gè)實(shí)施例。

      所述共享集群的任務(wù)調(diào)度方法,可選的,應(yīng)用于服務(wù)器,包括:

      步驟S101,確定共享集群中的資源與調(diào)度參數(shù)。

      步驟S103,定時(shí)檢查是否需要設(shè)置檢查點(diǎn)。

      先占式任務(wù)分配導(dǎo)致任務(wù)被打斷是任務(wù)終止的主要原因。這樣的情況在商業(yè)云環(huán)境中頻繁發(fā)生。設(shè)置檢查點(diǎn)可以有效地解決任務(wù)終止導(dǎo)致的性能降低的問題。此外,如果我們假設(shè)先占式任務(wù)分配導(dǎo)致的任務(wù)終止是任務(wù)被打斷的唯一原因,那就沒有必要在云端資源充足的情況下設(shè)置檢查點(diǎn)。例如,真實(shí)的商業(yè)云中幾乎所有種類的資源在夜晚時(shí)段都是十分充足的,先占式任務(wù)分配導(dǎo)致的任務(wù)終止在這些時(shí)段很少發(fā)生,所以在這些時(shí)段設(shè)置檢查點(diǎn)是沒有必要的。

      因此,當(dāng)發(fā)生先占式任務(wù)分配導(dǎo)致的任務(wù)終止的可能性足夠大、不能被忽略時(shí),也就是說當(dāng)云端的資源接近枯竭時(shí),就是設(shè)置檢查點(diǎn)的時(shí)候了。

      為了公式化描述檢查點(diǎn)設(shè)置的條件,我們給出以下模型。

      令集群中某一特定資源Rx的總量為Rx在特定時(shí)刻t的占用率為則該集群在該特定時(shí)刻t的資源占用率可以被定義為則應(yīng)該設(shè)置檢查點(diǎn)的時(shí)刻可以被如下定義。當(dāng)且僅當(dāng)集群資源占用率超過一個(gè)特定的閾值T時(shí),即當(dāng)存在時(shí),該時(shí)刻t為應(yīng)該設(shè)置檢查點(diǎn)的時(shí)刻。其中為一定值,為一隨時(shí)間變化的變量,T為在0和1之間的參數(shù)。

      閾值T要在系統(tǒng)運(yùn)行之前作為一個(gè)先決條件確定下來。它可以根據(jù)不同的云平臺上的任務(wù)負(fù)載情況的不同而進(jìn)行調(diào)整。如果閾值T過于接近1,那么大多數(shù)低優(yōu)先級任務(wù)將沒有機(jī)會被設(shè)置檢查點(diǎn),也就是說,他們可能會因?yàn)橄日际饺蝿?wù)調(diào)度被直接終止運(yùn)行,并不得不在之后從頭重新開始。另一方面,如果閾值T接近0,那么系統(tǒng)將會設(shè)置太多不必要的檢查點(diǎn),這將導(dǎo)致大量資源的浪費(fèi)。在實(shí)驗(yàn)中,對于一個(gè)特定的集群來說,工作負(fù)載波動越大,閾值T就應(yīng)該越接近0;工作負(fù)載波動越小,閾值T應(yīng)該越接近1。

      閾值T的最優(yōu)值實(shí)際上是根據(jù)整個(gè)集群的負(fù)載狀態(tài)所確定的一個(gè)折衷。

      步驟S105,當(dāng)需要設(shè)置檢查點(diǎn)時(shí),確定需要設(shè)置檢查點(diǎn)的任務(wù),并為之設(shè)置檢查點(diǎn)。

      從實(shí)際的觀察中得出為所有的任務(wù)都設(shè)置檢查點(diǎn)顯然是不明智的。顯然,昂貴的服務(wù)層級上的任務(wù)不太可能是低優(yōu)先級任務(wù)。事實(shí)證明低優(yōu)先級任務(wù)在實(shí)際運(yùn)行中更可能會被頻繁打斷和重啟,這是值得注意的。因此,為了提高整個(gè)云端的性能,我們更加關(guān)注低優(yōu)先級的任務(wù),為它們設(shè)置檢查點(diǎn)。

      圖2示出的是集群在某確定時(shí)刻的狀況模型。顯然,資源R的占用量超過了檢查點(diǎn)設(shè)置閾值T。當(dāng)集群的狀態(tài)如圖2所示時(shí),任務(wù)B和任務(wù)C應(yīng)該被設(shè)置檢查點(diǎn)。

      我們假定特定任務(wù)的運(yùn)行順序是被他們的優(yōu)先級和到達(dá)時(shí)間決定的。

      一般來講,每隔一個(gè)確定的時(shí)間間隔I,檢查是否成立。如果在某時(shí)刻成立,則將所有正在運(yùn)行的任務(wù)按照它們的優(yōu)先級排列,(具有相同優(yōu)先級的任務(wù)按照她們的達(dá)到時(shí)間排列,到達(dá)時(shí)間早的任務(wù)按照優(yōu)先級較高對待)。假設(shè)在時(shí)刻t正在運(yùn)行的任務(wù)數(shù)為m,令優(yōu)先級最高的任務(wù)為優(yōu)先級最低的任務(wù)為令被任務(wù)占用的資源Rx的量為則有

      為了更進(jìn)一步闡述上述概念,我們先考慮云端中的某一種資源Rx。如果存在則該時(shí)刻t應(yīng)該設(shè)置檢查點(diǎn)的任務(wù)為其中k∈{1,2,…,m}。

      當(dāng)考慮多種資源都可能是云端性能的瓶頸是,情況更為復(fù)雜一些。假設(shè)有n種瓶頸資源R1,R2,…,Rn超過了檢查點(diǎn)設(shè)置閾值T,則有:

      令則t時(shí)刻應(yīng)設(shè)置檢查點(diǎn)的任務(wù)為其中k1,k2,…,kn∈{1,2,…,m}。

      當(dāng)檢查點(diǎn)方法在CHIME中應(yīng)用時(shí),設(shè)置檢查點(diǎn)的任務(wù)是那些有較低優(yōu)先級的任務(wù)。如果這些任務(wù)所占用的資源被釋放,那么每種資源的占用率都應(yīng)該恰好低于閾值T。

      檢查點(diǎn)將按照上述的機(jī)制持續(xù)性地進(jìn)行設(shè)置,直到每種資源的占用率都低于閾值T。

      步驟S107,當(dāng)有新任務(wù)到達(dá)時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列。

      顯然先占的情況不會在資源充足的時(shí)候發(fā)生。在資源充足時(shí),新到達(dá)的任務(wù)會在到達(dá)后被立即執(zhí)行。當(dāng)集群中的資源使用達(dá)到峰值時(shí),我們提出按照一個(gè)簡單的規(guī)則實(shí)施先占式策略,這個(gè)名為混合等待隊(duì)列的方法可以簡潔地解決任務(wù)先占和恢復(fù)問題。

      當(dāng)高優(yōu)先級任務(wù)到達(dá),而資源幾乎耗盡的時(shí)候,低優(yōu)先級任務(wù)必須做出犧牲而為高優(yōu)先級的任務(wù)騰出資源。當(dāng)高優(yōu)先級任務(wù)不斷到達(dá)時(shí),越來越多的低優(yōu)先級任務(wù)會被終止。為恢復(fù)并繼續(xù)完成這些低優(yōu)先級的任務(wù),需為被終止的任務(wù)建立一個(gè)集合。實(shí)際上這些任務(wù)是按照它們的優(yōu)先級和到達(dá)時(shí)間排序的。另一種情況,當(dāng)?shù)蛢?yōu)先級任務(wù)到達(dá)時(shí),不會因?yàn)橄日际饺蝿?wù)調(diào)度而導(dǎo)致任務(wù)被終結(jié),這些低優(yōu)先級的任務(wù)將會保持等待狀態(tài)直到高優(yōu)先級的任務(wù)完成。這些任務(wù)也會按順序排列起來?;旌系却?duì)列就這樣產(chǎn)生。

      根據(jù)集群狀態(tài)不同采用的不同調(diào)度策略如圖3所示?;旌系却?duì)列使得按優(yōu)先級的調(diào)度方法在處理多種類型的任務(wù)時(shí)更加靈活?;旌险{(diào)度隊(duì)列在排列時(shí)忽略了任務(wù)是否被終止過,也忽略了任務(wù)是否設(shè)置過檢查點(diǎn),而將目光聚焦在任務(wù)的優(yōu)先級和到達(dá)時(shí)間上。更重要的是,混合等待隊(duì)列使得任務(wù)的恢復(fù)更加有序了。

      一般來講,當(dāng)集群中的某種資源Rx將要耗盡,新到達(dá)的任務(wù)沒有足夠的資源可以運(yùn)行時(shí),包含所有未完成任務(wù)的混合等待隊(duì)列就被建立起來?;旌系却?duì)列初始化為一空隊(duì)列,假定在某時(shí)刻t有m個(gè)任務(wù)在集群中運(yùn)行。新任務(wù)Jarrived在該時(shí)刻到達(dá),那么將會發(fā)生下列兩種情形中的一種:

      假設(shè)Jarrived的優(yōu)先級介于正在運(yùn)行的任務(wù)和之間。如果對于R1,R2,…,Rn中的所有資源,成立,且對于部分資源成立,則任務(wù)為被先占式調(diào)度終止的任務(wù),其中i,j∈{0,1,…,m}。新到達(dá)的任務(wù)Jarrived將在這些任務(wù)終止并轉(zhuǎn)移到混合等待隊(duì)列之后開始運(yùn)行。(值得注意的是如果檢查點(diǎn)設(shè)置閾值過高,一部分被終止的任務(wù)就會因?yàn)闆]有設(shè)置過檢查點(diǎn)而不能恢復(fù)原來的運(yùn)行狀態(tài),需要重新開始運(yùn)行。)

      如果上述狀況不被滿足,則Jarrived將進(jìn)入混合等待隊(duì)列。

      所以,如果Jarrived比足夠多的正在運(yùn)行任務(wù)的優(yōu)先級更高(足夠的意思是這些正在運(yùn)行的任務(wù)所占用的資源加上集群中的可用資源足夠運(yùn)行Jarrived),則將這些正在運(yùn)行的任務(wù)終止并轉(zhuǎn)移到混合等待隊(duì)列中,開始運(yùn)行Jarrived。否則,將Jarrived放入混合等待隊(duì)列。

      與幾種商業(yè)云平臺采用的方法不同,混合等待隊(duì)列無視了新到達(dá)的任務(wù)和被終止的任務(wù)的差別。它只關(guān)注這些等待任務(wù)的優(yōu)先級和到達(dá)時(shí)間,這是十分重要和有意義的。

      步驟S109,當(dāng)共享集群的資源使用狀況發(fā)生變化時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列。

      當(dāng)資源逐漸恢復(fù)充足,混合等待隊(duì)列中的任務(wù)就應(yīng)該被重啟和恢復(fù)。同樣,保持混合等待隊(duì)列中的任務(wù)的優(yōu)先級和到達(dá)時(shí)間,任務(wù)的恢復(fù)會十分有序?;謴?fù)和重啟策略的目標(biāo)是當(dāng)集群的資源使用狀況發(fā)生變化時(shí),能夠使可用的資源盡可能優(yōu)先供給高優(yōu)先級的任務(wù)。策略具體表述如下。

      當(dāng)集群中的資源使用狀況在t時(shí)刻發(fā)生變化時(shí),假設(shè)總共有q個(gè)任務(wù)在混合等待隊(duì)列中,他們按照優(yōu)先級和到達(dá)時(shí)間排列,依次為假定有m個(gè)正在運(yùn)行的任務(wù)。如果對于R1,R2,…,Rn中的所有資源,存在且對于部分資源存在則任務(wù)為應(yīng)當(dāng)恢復(fù)(之前設(shè)置過檢查點(diǎn))或重啟(之前沒有設(shè)置過檢查點(diǎn))的任務(wù),其中j∈{m+1,m+2,…,m+q}。這些任務(wù)將立即開始運(yùn)行。

      從上述實(shí)施例可以看出,本發(fā)明實(shí)施例提供的共享集群的任務(wù)調(diào)度方法,通過使用定時(shí)檢查是否需要設(shè)置檢查點(diǎn)、確定需要設(shè)置檢查點(diǎn)的任務(wù),并當(dāng)有新任務(wù)到達(dá)或共享集群的資源使用狀況發(fā)生變化時(shí),更新正在運(yùn)行的任務(wù)與混合等待隊(duì)列的技術(shù)手段,縮短低優(yōu)先級任務(wù)的響應(yīng)時(shí)間、提高資源利用率,進(jìn)而提高云端的整體性能。

      基于上述目的,本發(fā)明實(shí)施例的第三個(gè)方面,提出了一種執(zhí)行所述共享集群的任務(wù)調(diào)度方法的裝置的一個(gè)實(shí)施例。如圖4所示,為本發(fā)明提供的執(zhí)行所述共享集群的任務(wù)調(diào)度方法的裝置的一個(gè)實(shí)施例的硬件結(jié)構(gòu)示意圖。

      如圖4所示,所述裝置包括:

      一個(gè)或多個(gè)處理器401以及存儲器402,圖4中以一個(gè)處理器401為例。

      所述執(zhí)行所述共享集群的任務(wù)調(diào)度方法的裝置還可以包括:輸入裝置403和輸出裝置404。

      處理器401、存儲器402、輸入裝置403和輸出裝置404可以通過總線或者其他方式連接,圖4中以通過總線連接為例。

      存儲器402作為一種非易失性計(jì)算機(jī)可讀存儲介質(zhì),可用于存儲非易失性軟件程序、非易失性計(jì)算機(jī)可執(zhí)行程序以及模塊,如本申請實(shí)施例中的所述共享集群的任務(wù)調(diào)度方法對應(yīng)的程序指令/模塊。處理器401通過運(yùn)行存儲在存儲器1002中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述方法實(shí)施例的共享集群的任務(wù)調(diào)度方法。

      存儲器402可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個(gè)功能所需要的應(yīng)用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)共享集群的任務(wù)調(diào)度裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲器402可以包括高速隨機(jī)存取存儲器,還可以包括非易失性存儲器,例如至少一個(gè)磁盤存儲器件、閃存器件、或其他非易失性固態(tài)存儲器件。在一些實(shí)施例中,存儲器402可選包括相對于處理器401遠(yuǎn)程設(shè)置的存儲器。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。

      輸入裝置403可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與共享集群的任務(wù)調(diào)度裝置的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。輸出裝置404可包括顯示屏等顯示設(shè)備。

      所述一個(gè)或者多個(gè)模塊存儲在所述存儲器402中,當(dāng)被所述一個(gè)或者多個(gè)處理器401執(zhí)行時(shí),執(zhí)行上述任意方法實(shí)施例中的共享集群的任務(wù)調(diào)度方法。所述執(zhí)行所述共享集群的任務(wù)調(diào)度方法的裝置的實(shí)施例,其技術(shù)效果與前述任意方法實(shí)施例相同或者類似。

      本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)硬件來完成,所述的程序可存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。所述計(jì)算機(jī)程序的實(shí)施例,其技術(shù)效果與前述任意方法實(shí)施例相同或者類似。

      此外,典型地,本公開所述的裝置、設(shè)備等可為各種電子終端設(shè)備,例如手機(jī)、個(gè)人數(shù)字助理(PDA)、平板電腦(PAD)、智能電視等,也可以是大型終端設(shè)備,如服務(wù)器等,因此本公開的保護(hù)范圍不應(yīng)限定為某種特定類型的裝置、設(shè)備。本公開所述的客戶端可以是以電子硬件、計(jì)算機(jī)軟件或兩者的組合形式應(yīng)用于上述任意一種電子終端設(shè)備中。

      此外,根據(jù)本公開的方法還可以被實(shí)現(xiàn)為由CPU執(zhí)行的計(jì)算機(jī)程序,該計(jì)算機(jī)程序可以存儲在計(jì)算機(jī)可讀存儲介質(zhì)中。在該計(jì)算機(jī)程序被CPU執(zhí)行時(shí),執(zhí)行本公開的方法中限定的上述功能。

      此外,上述方法步驟以及系統(tǒng)單元也可以利用控制器以及用于存儲使得控制器實(shí)現(xiàn)上述步驟或單元功能的計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲介質(zhì)實(shí)現(xiàn)。

      此外,應(yīng)該明白的是,本文所述的計(jì)算機(jī)可讀存儲介質(zhì)(例如,存儲器)可以是易失性存儲器或非易失性存儲器,或者可以包括易失性存儲器和非易失性存儲器兩者。作為例子而非限制性的,非易失性存儲器可以包括只讀存儲器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦寫可編程ROM(EEPROM)或快閃存儲器。易失性存儲器可以包括隨機(jī)存取存儲器(RAM),該RAM可以充當(dāng)外部高速緩存存儲器。作為例子而非限制性的,RAM可以以多種形式獲得,比如同步RAM(DRAM)、動態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙數(shù)據(jù)速率SDRAM(DDR SDRAM)、增強(qiáng)SDRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)以及直接RambusRAM(DRRAM)。所公開的方面的存儲設(shè)備意在包括但不限于這些和其它合適類型的存儲器。

      本領(lǐng)域技術(shù)人員還將明白的是,結(jié)合這里的公開所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為了清楚地說明硬件和軟件的這種可互換性,已經(jīng)就各種示意性組件、方塊、模塊、電路和步驟的功能對其進(jìn)行了一般性的描述。這種功能是被實(shí)現(xiàn)為軟件還是被實(shí)現(xiàn)為硬件取決于具體應(yīng)用以及施加給整個(gè)系統(tǒng)的設(shè)計(jì)約束。本領(lǐng)域技術(shù)人員可以針對每種具體應(yīng)用以各種方式來實(shí)現(xiàn)所述的功能,但是這種實(shí)現(xiàn)決定不應(yīng)被解釋為導(dǎo)致脫離本公開的范圍。

      結(jié)合這里的公開所描述的各種示例性邏輯塊、模塊和電路可以利用被設(shè)計(jì)成用于執(zhí)行這里所述功能的下列部件來實(shí)現(xiàn)或執(zhí)行:通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或晶體管邏輯、分立的硬件組件或者這些部件的任何組合。通用處理器可以是微處理器,但是可替換地,處理器可以是任何傳統(tǒng)處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可以被實(shí)現(xiàn)為計(jì)算設(shè)備的組合,例如,DSP和微處理器的組合、多個(gè)微處理器、一個(gè)或多個(gè)微處理器結(jié)合DSP核、或任何其它這種配置。

      結(jié)合這里的公開所描述的方法或算法的步驟可以直接包含在硬件中、由處理器執(zhí)行的軟件模塊中或這兩者的組合中。軟件模塊可以駐留在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動盤、CD-ROM、或本領(lǐng)域已知的任何其它形式的存儲介質(zhì)中。示例性的存儲介質(zhì)被耦合到處理器,使得處理器能夠從該存儲介質(zhì)中讀取信息或向該存儲介質(zhì)寫入信息。在一個(gè)替換方案中,所述存儲介質(zhì)可以與處理器集成在一起。處理器和存儲介質(zhì)可以駐留在ASIC中。ASIC可以駐留在用戶終端中。在一個(gè)替換方案中,處理器和存儲介質(zhì)可以作為分立組件駐留在用戶終端中。

      在一個(gè)或多個(gè)示例性設(shè)計(jì)中,所述功能可以在硬件、軟件、固件或其任意組合中實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),則可以將所述功能作為一個(gè)或多個(gè)指令或代碼存儲在計(jì)算機(jī)可讀介質(zhì)上或通過計(jì)算機(jī)可讀介質(zhì)來傳送。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì),該通信介質(zhì)包括有助于將計(jì)算機(jī)程序從一個(gè)位置傳送到另一個(gè)位置的任何介質(zhì)。存儲介質(zhì)可以是能夠被通用或?qū)S糜?jì)算機(jī)訪問的任何可用介質(zhì)。作為例子而非限制性的,該計(jì)算機(jī)可讀介質(zhì)可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲設(shè)備、磁盤存儲設(shè)備或其它磁性存儲設(shè)備,或者是可以用于攜帶或存儲形式為指令或數(shù)據(jù)結(jié)構(gòu)的所需程序代碼并且能夠被通用或?qū)S糜?jì)算機(jī)或者通用或?qū)S锰幚砥髟L問的任何其它介質(zhì)。此外,任何連接都可以適當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。例如,如果使用同軸線纜、光纖線纜、雙絞線、數(shù)字用戶線路(DSL)或諸如紅外線、無線電和微波的無線技術(shù)來從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源發(fā)送軟件,則上述同軸線纜、光纖線纜、雙絞線、DSL或諸如紅外先、無線電和微波的無線技術(shù)均包括在介質(zhì)的定義。如這里所使用的,磁盤和光盤包括壓縮盤(CD)、激光盤、光盤、數(shù)字多功能盤(DVD)、軟盤、藍(lán)光盤,其中磁盤通常磁性地再現(xiàn)數(shù)據(jù),而光盤利用激光光學(xué)地再現(xiàn)數(shù)據(jù)。上述內(nèi)容的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。

      公開的示例性實(shí)施例,但是應(yīng)當(dāng)注公開的示例性實(shí)施例,但是應(yīng)當(dāng)注意,在不背離權(quán)利要求限定的本公開的范圍的前提下,可以進(jìn)行多種改變和修改。根據(jù)這里描述的公開實(shí)施例的方法權(quán)利要求的功能、步驟和/或動作不需以任何特定順序執(zhí)行。此外,盡管本公開的元素可以以個(gè)體形式描述或要求,但是也可以設(shè)想多個(gè),除非明確限制為單數(shù)。

      應(yīng)當(dāng)理解的是,在本文中使用的,除非上下文清楚地支持例外情況,單數(shù)形式“一個(gè)”(“a”、“an”、“the”)旨在也包括復(fù)數(shù)形式。還應(yīng)當(dāng)理解的是,在本文中使用的“和/或”是指包括一個(gè)或者一個(gè)以上相關(guān)聯(lián)地列出的項(xiàng)目的任意和所有可能組合。

      上述本公開實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

      本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。

      所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上任何實(shí)施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明實(shí)施例的思路下,以上實(shí)施例或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,并存在如上所述的本發(fā)明實(shí)施例的不同方面的許多其它變化,為了簡明它們沒有在細(xì)節(jié)中提供。因此,凡在本發(fā)明實(shí)施例的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明實(shí)施例的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1