【技術實現步驟摘要】
本專利技術涉及任務調度技術,特別涉及分布式任務調度方法、系統和裝置。
技術介紹
分布式任務調度,是指將一個應用或者業務劃分出的多個任務交由多個服務器進行處理。分布式任務調度可解決單個服務器資源不足等問題,達到大規模數據計算的目的。 通常,分布式任務調度系統中會包括一個控制服務器,其它各服務器稱為執行服務器,可利用控制服務器來對各執行服務器進行統一管理,如當有任務需要執行時,由控制服務器按照某種規則將其分配給某一執行服務器。對于執行服務器來說,其只能被動地接受所分配的任務,但該任務可能并不適合其處理,比如假設執行服務器的可用內存為700M,當前執行的任務占用了 200M,新分配的一個任務需要占用600M的內存,那么,該新分配的任務就將無法執行,即只能等到當前任務執行完畢后才能執行,那么剩余的500M內存就相等于被浪費了,而且,如果當前任務需要執行較長的時間,新分配的任務就需要等待較長的時間,從而降低了任務處理效率。
技術實現思路
有鑒于此,本專利技術的主要目的在于提供一種分布式任務調度方法,能夠提高資源利用率和任務處理效率。本專利技術的另一目的在于提供一種分布式任務調度系統,能夠提高資源利用率和任務處理效率。本專利技術的又一目的在于提供一種執行服務器,能夠提高資源利用率和任務處理效率。本專利技術的再一目的在于提供一種控制服務器,能夠提高資源利用率和任務處理效率。為達到上述目的,本專利技術的技術方案是這樣實現的—種分布式任務調度方法,在分布式任務調度系統中設置一個控制服務器和一個以上執行服務器,在控制服務器中設置一個調度控制器,在每個執行服務器中分別劃分出兩個以上任務槽 ...
【技術保護點】
一種分布式任務調度方法,其特征在于,在分布式任務調度系統中設置一個控制服務器和一個以上執行服務器,在控制服務器中設置一個調度控制器,在每個執行服務器中分別劃分出兩個以上任務槽,并為每個任務槽分配所需的資源;當所述分布式任務調度系統運行時,該方法包括:調度控制器維護兩個隊列,一個為任務等待隊列,另一個為任務槽隊列;當每接收到一個任務X時,調度控制器確定任務槽隊列中是否存在適合處理任務X的任務槽,如果是,則將任務X分配給該任務槽,否則,將任務X加入到任務等待隊列中;當每接收到一個任務槽X主動發送來的任務請求時,調度控制器確定任務等待隊列中是否存在適合任務槽X處理的任務,如果是,則將該任務分配給任務槽X,否則,將任務槽X加入到任務槽隊列中;所述任務請求為任務槽X確定自身資源使用情況適合主動請求新的任務后發送來的。
【技術特征摘要】
1.一種分布式任務調度方法,其特征在于,在分布式任務調度系統中設置一個控制服務器和一個以上執行服務器,在控制服務器中設置一個調度控制器,在每個執行服務器中分別劃分出兩個以上任務槽,并為每個任務槽分配所需的資源;當所述分布式任務調度系統運行時,該方法包括 調度控制器維護兩個隊列,一個為任務等待隊列,另一個為任務槽隊列; 當每接收到一個任務X時,調度控制器確定任務槽隊列中是否存在適合處理任務X的任務槽,如果是,則將任務X分配給該任務槽,否則,將任務X加入到任務等待隊列中; 當每接收到一個任務槽X主動發送來的任務請求時,調度控制器確定任務等待隊列中是否存在適合任務槽X處理的任務,如果是,則將該任務分配給任務槽X,否則,將任務槽X加入到任務槽隊列中;所述任務請求為任務槽X確定自身資源使用情況適合主動請求新的任務后發送來的。2.根據權利要求I所述的方法,其特征在于,該方法進一步包括 每個任務槽周期性地計算自身的資源評分,并將計算結果與預先設定的可請求閾值進行比較,如果計算結果大于可請求閾值,則確定之前是否已經向調度控制器請求過新的任務但未分配到新的任務,如果是,則不作處理,否則,向調度控制器請求新的任務,并將自身的資源使用情況上報給調度控制器。3.根據權利要求2所述的方法,其特征在于,所述調度控制器確定任務槽隊列中是否存在適合處理任務X的任務槽包括 如果已知任務X的資源需求,則確定任務槽隊列中是否存在未使用資源能夠滿足任務X的資源需求的任務槽,如果存在且個數為一,則將其作為適合處理任務X的任務槽,如果存在且個數為兩個以上,則從中選出未使用資源最接近任務X的資源需求的任務槽,將其作為適合處理任務X的任務槽; 如果不知道任務X的資源需求,則從任務槽隊列中選出未使用資源最多的任務槽,將其作為適合處理任務X的任務槽。4.根據權利要求3所述的方法,其特征在于,該方法進一步包括 如果已知任務X的資源需求,且任務槽隊列中不存在未使用資源能夠滿足任務X的資源需求的任務槽,則確定其中是否存在能夠使任務X在預定較短時間內得到執行,且在執行任務X時能夠滿足任務X的資源需求的任務槽;如果存在且個數為一,則將其作為適合處理任務X的任務槽,如果存在且個數為兩個以上,則從中選出能夠使任務X被最快執行的任務槽,將其作為適合處理任務X的任務槽。5.根據權利要求I所述的方法,其特征在于,該方法進一步包括 各任務槽接收到所分配的任務后,確定所分配的任務可否立即執行,如果是,則立即執行,否則,將所分配的任務進行緩存,當當前任務執行完畢后,執行緩存的任務。6.根據權利要求5所述的方法,其特征在于,該方法進一步包括調度控制器回收已分配給任務槽但未被執行的任務。7.根據權利要求1、5或6所述的方法,其特征在于,該方法進一步包括 每個任務槽周期性地計算自身的資源評分,并將計算結果與預先設定的最小限定閾值進行比較,如果連續M個周期的計算結果均小于最小限定閾值,則在執行完所有已分配的任務后,自我關閉,釋放資源,并通知調度控制器;M為大于I的正整數;調度控制器將所釋放的資源分配給釋放資源的任務槽所在的執行服務器中的其它任務槽。8.根據權利要求7所述的方法,其特征在于,確定連續M個周期的計算結果均小于最小限定閾值之后,進一步包括 向調度控制器發送資源釋放請求;調度控制器確定發送資源釋放請求的任務槽所在的執行服務器中是否存在處于滿負荷狀態的任務槽,如果是,則通知發送資源釋放請求的任務槽釋放資源; 所述其它任務槽為處于滿負荷狀態的任務槽。9.根據權利要求1、5或6所述的方法,其特征在于,該方法進一步包括 每個任務槽周期性地計算自身的資源評分,并將計算結果與預先設定的最小限定閾值進行比較,如果連續M個周期的計算結果均小于最小限定閾值,則釋放部分資源,并通知調度控制器;M為大于I的正整數; 調度控制器在釋放部分資源的任務槽所在的執行服務器中創建一個新的任務槽,并將所釋放的資源分配給新創建的任務槽。10.根據權利要求9所述的方法,其特征在于,所述釋放部分資源之前,進一步包括 向調度控制器發送資源釋放請求; 調度控制器確定發送資源釋放請求的任務槽所在的執行服務器中的任務槽數是否小于預先設定的最大任務槽限額數,如果是,則通知發送資源釋放請求的任務槽釋放資源。11.一種分布式任務調度系統,其特征在于,包括兩個以上服務器,其中一個為控制服務器,或同時為控制服務器和執行服務器,其余均為執行服務器;控制服務器中包括一個調度控制器,每個執行服務器中均包括兩個以上任務槽,每個任務槽均分配有一定的資源,每個任務槽中進一步包括協調器和任務執行器; 調度控制器,用于維護兩個隊列,一個為任務等待隊列,另一個為任務槽隊列;當每接收到一個任務X時,確定任務槽隊列中是否存在適合處理任務X的任務槽,如果是,則將任務X分配給該任務槽,否則,將任務X加入到任務等待隊列中;當每接收到一個任務槽X主動發送來的任務請求時,確定任務等待隊列中是否存在適合任務槽X處理的任務,如果是,則將該任務分配給任務槽X,否則,將任務槽X加入到任務槽隊列中; 協調器,用于根據所在任務槽的資源使用情況主動向調度控制器請求新的任務,并接收調度控制器所分配的任務,發送給任務執行器; 任務執行器,用于執行所分配的任務。12.根據權利要求11所述的系統,其特征在于,所述協調器周期性地計算所在任務槽的資源評分,并將計算結果與預先設定的可請求閾值進行比較,如果計算結果大于可請求閾值,則進一步確定之前是否已經向調度控制器請求過新的任務但未分配到新的任務,如果是,則不作處理,否則,向調度控制器請求新的任務,并將自身的資源使用情況上報給調度控制器。13.根據權利要求12所述的系統,其特征在于, 如果已知任務X的資源需求,則調...
【專利技術屬性】
技術研發人員:鄭長松,蕭巍,曾東,廖勤耘,柳劉,陳少權,王全禮,
申請(專利權)人:中國移動通信集團四川有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。