一種基于統計信息的網格資源組織及任務調度
3 資源組織方式
為了提高資源調度的成功率,縮短資源查找的時間,保證網格內的負載平衡,在根服務器和域代理服務器各增加兩個表:負載信息表和資源統計信息表。負載信息表用于統計下級域代理服務器的負載信息,若沒有下級域代理服務器,則該表直接統計每個資源節點的負載信息,主要包括資源節點當前各項資源的使用情況,如CPU利用率、內存使用情況等;資源統計信息表用于記錄最近調度成功的相關信息。對于根服務器,主要記錄一段時間內通過各代理服務器調度成功過且訪問頻率高的代理服務器信息;對于域代理服務器,記錄該自治域內近期成功調度的資源信息,如資源ID、資源類型、訪問時間、訪問頻率等。對于兩個表中的所有記錄信息按訪問時間和訪問頻率進行排序。當表中記錄滿時,使用近期最少使甩算法(Least Resently Used,LRU)將一段時間內使用最少的記錄信息項替換出去。
4 調度機制
對于分層結構進行資源分配任務調度時采用的是多層次的資源協作的策略。首先,根服務器集中接收所有用戶提交的作業請求,依據Min-min算法確定作業的優先級,然后根據任務性質、通信狀況、各個域代理服務器提供的自治域內的資源情況和各域代理服務器的資源負載情況進行粗粒度調度,最后再由域代理服務器根據自治域內的資源情況以及各個資源的負載信息進行作業調度。具體算法如下:
(1)根服務器接收用戶提交的作業請求,通過資源統計信息表查找調度成功率高的域代理器,同時兼顧代理服務器的負載信息,若域代理服務器負載較輕,則將用戶作業分發給該域代理服務器;若域代理服務器負載較重,則重新在資源統計信息表中查找下一個域代理服務器,直到找到一個負載較輕的域代理服務器。主要算法思想描述如下:
初始化;
依據Min-min算法確定作業的優先級,選定作業;
do(資源統計信息表未空)
在資源統計信息表中查找最近使用且調度成功率高的域代理服務器;
if(該域代理服務器的負載較輕)then
將用戶作業分配給該域代理服務器;
修改資源統計信息表;
修改負載信息表;
exit do
else
重新在資源統計信息表中查找下一個域代理服務器;
endif
enddo
(2)域代理服務器接收到根服務器分發的作業,若有下級域代理服務器,則對作業進行下一級的分發,方法同根服務器;否則,根據作業的特性,如CPU要求、 內存使用量、操作系統版本、磁盤空間等信息在資源統計信息表中查找相關資源節點信息并進行資源匹配,同時兼顧資源節點的負載情況。若滿足,則執行作業,并將作業執行情況及結果報告給根服務器或上級域代理服務器;若匹配不到合適的資源節點,則到GRIS進行查找獲取資源。當二者中均找不到合適資源時,則告知根服務器進行重新調度。主要算法思想描述如下:
初始化;
do while.t.
if(有來自上一級的作業)then
if(有下級域代理服務器)then
繼續向下分發作業;
else
do while(資源統計信息表未空)
根據作業的特性在資源統計信息表中查找資源節點信息并進行資源匹配;
if(資源節點負載較輕)then
修改節點負載表;
將作業調度給該資源節點執行;
if(執行成功)then
修改資源統計信息表;
向根服務器或上級域代理服務器報告結果;
else
域代理服務器重新調度;
endif
endif
enddo
endif
enddo
5 結語
針對網格環境下的資源特點,提出了一種分層的網格資源組織與任務調度方式,并在此基礎上引入了負載信息表和資源統計信息表。在資源查找方式上,改變了傳統資源查找的盲目性,提高了資源查找效率,同時兼顧了網格系統內部的負載平衡,使網格環境的性能得以提高。以后將進一步研究如何在網格系統結構上更好地實現相應的QoS保證。
評論