負載平衡算法分類詳解
通過負載平衡,我們可以有效整頓網(wǎng)絡(luò)的性能,改善網(wǎng)絡(luò)運轉(zhuǎn)環(huán)境,那么,到底什么是負載平衡,怎樣給他進行分類呢?這就讓我們一起來看看下文的介紹,通過下文的介紹,您講了解到它的基本概念分類,以及負載平衡算法的相關(guān)內(nèi)容。
負載平衡
為了改善系統(tǒng)的性能,通過在多臺計算機之間合理地分配負載,使各臺計算機的負載基本均衡,這種計算能力共享的形式,通常被稱為負載平衡或負載共享。一般來說,"負載平衡"要達到的目標是使各臺計算機之間的負載基本均衡,而"負載共享"意味著只是簡單的負載的重新分配。
負載平衡包括兩種,一種是靜態(tài)負載平衡,一種是動態(tài)負載平衡。只是利用系統(tǒng)負載的平均信息,而忽視系統(tǒng)當前的負載狀況的方法被稱為靜態(tài)負載平衡。根據(jù)系統(tǒng)當前的負載狀況來調(diào)整任務劃分的方法被稱為動態(tài)負載平衡。
導致負載不平衡主要是由于:
某些算法的迭代大小不是固定的,但迭代的大小在編譯時卻可以被求得;
某些算法的迭代大小不是固定的,并且迭代的大小依賴于被處理的數(shù)據(jù),在編譯時無法求得;
即使迭代大小是固定的,也會有許多不定因素導致計算速度的差異。
考察這三個原因,對第一種情況可在編譯時估計各迭代的工作量,按照處理節(jié)點的處理能力分布迭代,這就是靜態(tài)負載平衡的方法。對第二、三種情況來說,必須采用動態(tài)負載平衡的手段,在運行過程中根據(jù)各個處理節(jié)點完成任務的情況,動態(tài)地遷移任務,實現(xiàn)動態(tài)負載平衡。進行動態(tài)負載平衡需要考察處理節(jié)點的處理能力,它的基本依據(jù)是根據(jù)處理節(jié)點先前的處理速度預見未來的處理速度。
負載平衡算法
一個負載平衡算法都包含以下三個組成部分:
信息策略:制定任務放置策略的制定者使用的負載和任務量,以及信息分配的方式。
傳送策略:基于任務和計算機負載,判斷是否要把一個任務傳送到其它計算機上處理。
放置策略:對于適合傳送到其它計算機處理的任務,選擇任務將被傳送的目的計算機。
負載平衡的上述三個部分之間是以不同的方式相互作用的。放置策略利用信息策略提供的負載信息,僅當任務被傳送策略判斷為適于傳送之后才行動。
總之,負載平衡的目標是:提供最短的平均任務響應時間;能適于變化的負載;是可靠的負載平衡機制。
負載平衡算法:信息策略
人們用來描述負載信息采用的參數(shù)有:
運行隊列中的任務數(shù);
系統(tǒng)調(diào)用的速率;
CPU上下文切換率;
空閑CPU時間百分比;
空閑存儲器的大小(K字節(jié));
1分鐘內(nèi)的平均負載。對于這些單個的負載描述參數(shù),即采用運行隊列中的任務數(shù)作為描述負載的參數(shù)被證明是最有效的,即它的平均任務響應時間最短,并且已經(jīng)得到廣泛應用。但是,如果為了使系統(tǒng)信息更全面而采集了更多的參數(shù),則往往由于增加了額外開銷,卻得不到所希望的性能改善。例如,采用將六個參數(shù)中的某兩個進行"AND"或"OR"組合,得到的平均響應時間反而比單個參數(shù)的平均響應時間還要差一些。
負載平衡算法:傳送策略
為了簡單起見,在選用傳送策略時,多選用閥值策略。例如,Eager等人的方法是:在判斷是否要在本地處理一個任務時,無需交換計算機之間的狀態(tài)信息,一旦服務隊列或等待服務隊列的長度大于閥值時,就傳送這個任務,而且傳送的是剛剛接收的任務。而進程遷移能夠遷移正在執(zhí)行的任務,是對這種只能傳送剛剛接收的任務的一種改進。
在模擬研究七個負載平衡算法時,其傳送策略都采用閥值策略。它的閥值策略基于兩個閥值∶計算機的負載閥值Load和任務執(zhí)行時間閥值TCPU。如果計算機的負載超過Load并且任務的執(zhí)行時間超過TCPU時,就把此任務傳送到其它計算機執(zhí)行。
負載平衡算法:放置策略
經(jīng)過總結(jié),共有以下四種放置策略。
◆集中策略
每隔P秒,其中一個計算機被指定為"負載信息中心"(LIC),接受所有其它負載的變更值,并把它們匯集到一個"負載向量"中,然后把負載向量廣播給所有其它的計算機。當一臺計算機認為一個任務適于傳送到其它計算機上執(zhí)行時,它就給LIC發(fā)送一個請求,并告知當前負載的值。LIC選一臺具有最短運行隊列長度的計算機,并且通知任務所在的計算機把任務發(fā)送給它,同時,它把目的主機負載值增加1。
◆閥值策略
隨機選擇一臺計算機,判斷若把任務傳送到那臺計算機后,那臺計算機的任務隊列長度是否會超過閥值。如果不超過閥值,就傳送此任務;否則,隨機選擇另一臺計算機,并以同樣方式判斷,繼續(xù)這樣做直到找到一臺合適的目的計算機,或探測次數(shù)超過一個靜態(tài)值限制LP,當任務真正到達計算機以后,不管狀態(tài)如何,必須處理該任務。
◆最短任務隊列策略
隨機選擇LP臺不同的計算機,察看每臺計算機的任務隊列長度,任務被傳送到具有最短任務隊列長度的計算機。當任務真正到達計算機,無論狀態(tài)如何,目的計算機必須處理該任務。對此策略的一個簡單改進時,無論何時,遇到一臺隊列長度為0的計算機時,不再繼續(xù)探測,因為可以確定此計算機是一臺可以接受的目的計算機。
◆保留策略
當一個任務從一臺計算機離開時,該計算機檢查本地負載,如果負載小于閥值T1,就探測其它計算機,并在R個負載大于T1的計算機中登記該計算機的名字,并把登記的內(nèi)容保留到一個棧中。當一個任務到達一臺超載的計算機時,就把這個任務傳送到此臺計算機棧頂?shù)挠嬎銠C上。如果一個計算機的負載低于T1,就清空棧里保留的所有計算機名。