在計算機硬件價格下降、計算機網絡拓撲發展的情況下,分布式計算機系統給用戶提供了一個豐富的資源集合。人們在研究分布式系統時,就注意到了這樣一個問題:在一個由網絡連接起來的多計算機環境中,在某一時刻,一些計算機的負載比較重,而另外一些計算機的負載卻比較輕。平衡各計算機之間的負載是任務分配與調度的一個主要目標,它能夠提高整個系統的性能。
為了改善系統的性能,通過在多台計算機之間合理地分配負載,使各台計算機的負載基本均衡,這種計算能力共享的形式,通常被稱為負載平衡或負載共享。一般來說,"負載平衡"要達到的目標是使各台計算機之間的負載基本均衡,而"負載共享"意味著只是簡單的負載的重新分配。
負載平衡包括兩種,一種是靜態負載平衡,一種是動態負載平衡。只是利用系統負載的平均信息,而忽視系統當前的負載狀況的方法被稱為靜態負載平衡。根據系統當前的負載狀況來調整任務劃分的方法被稱為動態負載平衡。
導致負載不平衡主要是由於:
考察這三個原因,對第一種情況可在編譯時估計各迭代的工作量,按照處理節點的處理能力分布迭代,這就是靜態負載平衡的方法。對第二、三種情況來說,必須采用動態負載平衡的手段,在運行過程中根據各個處理節點完成任務的情況,動態地遷移任務,實現動態負載平衡。進行動態負載平衡需要考察處理節點的處理能力,它的基本依據是根據處理節點先前的處理速度預見未來的處理速度。
負載平衡算法
一個負載平衡算法都包含以下三個組成部分:
負載平衡的上述三個部分之間是以不同的方式相互作用的。放置策略利用信息策略提供的負載信息,僅當任務被傳送策略判斷為適於傳送之後才行動。
總之,負載平衡的目標是:提供最短的平均任務響應時間;能適於變化的負載;是可靠的負載平衡機制。
信息策略
人們用來描述負載信息采用的參數有:
傳送策略
為了簡單起見,在選用傳送策略時,多選用閥值策略。例如,Eager等人的方法是:在判斷是否要在本地處理一個任務時,無需交換計算機之間的狀態信息,一旦服務隊列或等待服務隊列的長度大於閥值時,就傳送這個任務,而且傳送的是剛剛接收的任務。而進程遷移能夠遷移正在執行的任務,是對這種只能傳送剛剛接收的任務的一種改進。
Zhou在模擬研究七個負載平衡算法時,其傳送策略都采用閥值策略。它的閥值策略基於兩個閥值∶計算機的負載閥值Load和任務執行時間閥值TCPU。如果計算機的負載超過Load並且任務的執行時間超過TCPU時,就把此任務傳送到其它計算機執行。
放置策略
經過總結,共有以下四種放置策略。