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