LVS十種調(diào)度算法
1、靜態(tài)調(diào)度:
①rr(Round Robin):輪詢(xún)調(diào)度,輪叫調(diào)度
輪詢(xún)調(diào)度算法的原理是每一次把來(lái)自用戶(hù)的請(qǐng)求輪流分配給內(nèi)部中的服務(wù)器,從1開(kāi)始,直到N(內(nèi)部服務(wù)器個(gè)數(shù)),然后重新開(kāi)始循環(huán)。算法的優(yōu)點(diǎn)是其簡(jiǎn)潔性,它無(wú)需記錄當(dāng)前所有連接的狀態(tài),所以它是一種無(wú)狀態(tài)調(diào)度?!咎崾荆哼@里是不考慮每臺(tái)服務(wù)器的處理能力】
②wrr:weight,加權(quán)(以權(quán)重之間的比例實(shí)現(xiàn)在各主機(jī)之間進(jìn)行調(diào)度)
由于每臺(tái)服務(wù)器的配置、安裝的業(yè)務(wù)應(yīng)用等不同,其處理能力會(huì)不一樣。所以,我們根據(jù)服務(wù)器的不同處理能力,給每個(gè)服務(wù)器分配不同的權(quán)值,使其能夠接受相應(yīng)權(quán)值數(shù)的服務(wù)請(qǐng)求。
③sh:source hashing,源地址散列。主要實(shí)現(xiàn)會(huì)話(huà)綁定,能夠?qū)⒋饲敖⒌膕ession信息保留了
源地址散列調(diào)度算法正好與目標(biāo)地址散列調(diào)度算法相反,它根據(jù)請(qǐng)求的源IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器是可用的并且沒(méi)有超負(fù)荷,將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。它采用的散列函數(shù)與目標(biāo)地址散列調(diào)度算法的相同。它的算法流程與目標(biāo)地址散列調(diào)度算法的基本相似,除了將請(qǐng)求的目標(biāo)IP地址換成請(qǐng)求的源IP地址,所以這里不一個(gè)一個(gè)敘述。
④Dh:Destination hashing:目標(biāo)地址散列。把同一個(gè)IP地址的請(qǐng)求,發(fā)送給同一個(gè)server。
目標(biāo)地址散列調(diào)度算法也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,它是一種靜態(tài)映射算法,通過(guò)一個(gè)散列(Hash)函數(shù)將一個(gè)目標(biāo)IP地址映射到一臺(tái)服務(wù)器。目標(biāo)地址散列調(diào)度算法先根據(jù)請(qǐng)求的目標(biāo)IP地址,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對(duì)應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載,將請(qǐng)求發(fā)送到該服務(wù)器,否則返回空。
2、動(dòng)態(tài)調(diào)度
①lc(Least-Connection):最少連接
最少連接調(diào)度算法是把新的連接請(qǐng)求分配到當(dāng)前連接數(shù)最小的服務(wù)器,最小連接調(diào)度是一種動(dòng)態(tài)調(diào)度短算法,它通過(guò)服務(wù)器當(dāng)前所活躍的連接數(shù)來(lái)估計(jì)服務(wù)器的負(fù)載均衡,調(diào)度器需要記錄各個(gè)服務(wù)器已建立連接的數(shù)目,當(dāng)一個(gè)請(qǐng)求被調(diào)度到某臺(tái)服務(wù)器,其連接數(shù)加1,當(dāng)連接中止或超時(shí),其連接數(shù)減一,在系統(tǒng)實(shí)現(xiàn)時(shí),我們也引入當(dāng)服務(wù)器的權(quán)值為0時(shí),表示該服務(wù)器不可用而不被調(diào)度。
簡(jiǎn)單算法:active*256+inactive(誰(shuí)的小,挑誰(shuí))
②wlc(Weighted Least-Connection Scheduling):加權(quán)最少連接。
加權(quán)最小連接調(diào)度算法是最小連接調(diào)度的超集,各個(gè)服務(wù)器用相應(yīng)的權(quán)值表示其處理性能。服務(wù)器的缺省權(quán)值為1,系統(tǒng)管理員可以動(dòng)態(tài)地設(shè)置服務(wù)器的權(quán)限,加權(quán)最小連接調(diào)度在調(diào)度新連接時(shí)盡可能使服務(wù)器的已建立連接數(shù)和其權(quán)值成比例。
簡(jiǎn)單算法:(active*256+inactive)/weight【(活動(dòng)的連接數(shù)+1)/除以權(quán)重】(誰(shuí)的小,挑誰(shuí))
③sed(Shortest Expected Delay):最短期望延遲
基于wlc算法
簡(jiǎn)單算法:(active+1)*256/weight 【(活動(dòng)的連接數(shù)+1)*256/除以權(quán)重】
④nq(never queue):永不排隊(duì)(改進(jìn)的sed)
無(wú)需隊(duì)列,如果有臺(tái)realserver的連接數(shù)=0就直接分配過(guò)去,不需要在進(jìn)行sed運(yùn)算。
⑤LBLC(Locality-Based Least Conn