計算機集群的資源調度方法及系統的制作方法
【技術領域】
[0001]本發明涉及計算機技術領域,尤其涉及一種計算機集群的資源調度方法及系統。
【背景技術】
[0002]計算機集群是一種計算機系統,通過一組松散集成的計算機軟件和/或硬件連接起來高度緊密地協作完成計算工作。計算機集群系統中的單個計算機通常稱為計算節點,通常通過局域網連接。計算機集群系統通過計算機集群資源管理器對計算機集群的資源進行監控與分配。
[0003]現有技術中,常用的計算機集群管理系統資源管理器都是采用靜態調度,即在每個負載運行前,由應用管理器向資源管理器進行資源申請,為要啟動的負載申請CPU、內存等資源。資源管理器根據調度算法,選擇能夠滿足負載所需資源的計算節點并將資源分配給所述負載。每個負載在其運行生命周期內占用的資源不變。
[0004]但是,采用現有技術中的資源管理器對計算機集群的資源進行分配的方法,當負載占用的資源發生變化時,不能根據資源的變化情況動態地給負載分配資源,當負載占用的資源降低時,造成了資源浪費;當負載占用的資源上升時,無法保證服務質量。
【發明內容】
[0005]本發明實施例提供一種計算機集群的資源調度方法及系統,用于解決現有技術中計算機集群資源調度方法不能根據資源的變化情況分配資源的問題。
[0006]第一方面,本發明實施例提供一種計算機集群的資源調度方法,包括:
[0007]監控計算機節點運行的各個負載在第t個資源分配周期內的資源占用量及所述計算節點的空余資源量;t為大于等于1的整數;
[0008]根據監控獲得的所述各個負載在第t個資源分配周期內的資源占用量預測所述各個負載在第t+Ι個資源分配周期內的資源占用量;
[0009]根據預測得到的所述各個負載在所述第t+Ι個資源分配周期內的資源占用量確定所述計算節點在所述第t+ι個資源分配周期內的預留資源量;
[0010]根據監控得到的所述計算節點的所述空余資源量和確定得到的所述預留資源量確定所述計算節點在所述第t+ι個資源分配周期內的可用資源量;
[0011]將所述計算節點在所述第t+ι個資源分配周期內的可用資源量發送給資源管理器,使所述資源管理器根據所述可用資源量分配資源。
[0012]另一實施例中,所述根據監控獲得的所述各個負載在第t個資源分配周期內的資源占用量預測所述各個負載在第t+ι個資源分配周期內的資源占用量包括:
[0013]根據
[0014]Mt+i = Nt+( 1_λ)Δ?+λΔ ’ t-1
[0015]預測每個負載在所述第t+1個資源分配周期內的資源占用量;
[0016]其中,1^+1表示每個負載在所述第t+Ι個資源分配周期內的資源占用量的預測值;Nt表示每個負載在所述第t個資源分配周期內的資源占用量的實際值;λ為遺忘系數,決定每個負載以前資源占用量數據對所述預測值的減小程度;At為每個負載在所述第t個資源分配周期與所述第t-Ι個資源分配周期內資源實際使用量變動差值;Λ ’ η為所述第t個資源分配周期之前的所有資源分配周期內的資源實際使用量衰減值,A’t=(l-A)Aa+AA
t_l ο
[0017]另一實施例中,所述根據預測得到的所述各個負載在所述第t+1個資源分配周期內的資源占用量確定所述計算節點在所述第t+ι個資源分配周期內的預留資源量包括:
[0018]根據
[0019]St+i= ΣΜ」*α
[0020]確定所述計算節點在所述第t+1個資源分配周期內的預留資源量;
[0021]其中,j表示負載的標號,j為大于等于1的整數,St+1表示所述計算節點在所述第t+1個資源分配周期內的預留資源量,α表示需要為長時間運行的負載預留的資源的百分比。
[0022]另一實施例中,所述根據監控得到的所述計算節點的所述空余資源量和確定得到的所述預留資源量確定所述計算節點在所述第t+Ι個資源分配周期內的可用資源量包括:
[0023]根據At+1= T-St+1確定所述計算節點在所述第t+1個資源分配周期內的可用資源量;其中,A表示所述計算節點在所述第t+Ι個資源分配周期內的可用資源量,T表示監控獲得的所述計算節點的空余資源量。
[0024]第二方面,本發明實施例還提供一種計算機集群的資源調度方法,包括:
[0025]接收應用管理器發送的資源申請信息,所述資源申請信息包括在第t+Ι個資源分配周期內運行負載所需的資源量數據,t為大于等于1的整數;
[0026]接收計算節點發送的所述計算節點在所述第t+Ι個資源分配周期內的可用資源量;其中,所述計算節點在所述第t+Ι個資源分配周期內的可用資源量根據以下方式獲得:監控所述計算節點中運行的各個負載在資源分配周期t內的資源占用量及空余資源量,根據所述各個負載在資源分配周期t內的資源占用量預測所述各個負載在第t+Ι個資源分配周期內的資源占用量,根據所述計算節點在資源分配周期t內的空余資源量及預測得到的所述各個負載在第t+Ι個資源分配周期內的資源占用量確定所述計算節點在所述第t+Ι個資源分配周期內的可用資源量;
[0027]根據接收到的所述資源申請信息及所述計算節點在第t+Ι個資源分配周期內的可用資源量,向所述應用管理器分配在所述第t+Ι個資源分配周期內運行所述負載的資源。
[0028]另一實施例中,所述方法還包括:
[0029]接收所述計算節點發送的所述計算節點中運行的各個負載在資源分配周期t內的資源占用量;
[0030]記錄每個資源分配周期內所述各個負載的資源占用量的變化量。
[0031]第三方面,本發明實施例提供一種計算機集群的資源調度系統,包括:
[0032]計算節點、資源管理器及應用管理器,所述計算節點與所述資源管理器通信連接,所述應用管理器分別與所述計算節點及所述資源管理器通信連接;
[0033]所述計算節點用于,監控計算機節點運行的各個負載在第t個資源分配周期內的資源占用量及所述計算節點的空余資源量,t為大于等于1的整數;根據監控獲得的所述各個負載在第t個資源分配周期內的資源占用量預測所述各個負載在第t+Ι個資源分配周期內的資源占用量;根據預測得到的所述各個負載在所述第t+1個資源分配周期內的資源占用量確定所述計算節點在所述第t+ι個資源分配周期內的預留資源量;及根據監控得到的所述計算節點的所述空余資源量和確定得到的所述預留資源量確定所述計算節點在所述第t+ι個資源分配周期內的可用資源量;并用于將所述計算節點在所述第t+ι個資源分配周期內的可用資源量發送給所述資源管理器;
[0034]所述應用管理器用于,向所述資源管理器發送資源申請信息,所述資源申請信息包括在第t+ι個資源分配周期內運行負載所需的資源量數據;
[0035]所述資源管理器用于,接收所述應用管理器發送的資源申請信息及所述計算節點發送的所述計算節點在所述第t+Ι個資源分配周期內的可用資源量,并根據所述資源申請信息及所述計算節點在第t+ι個資源分配周期內的可用資源量,給所述應用管理器分配在所述第t+ι個資源分配周期內