本發(fā)明涉及計(jì)算機(jī)及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種基于主機(jī)實(shí)際負(fù)載的自適應(yīng)負(fù)載均衡方法、設(shè)備和系統(tǒng)。
背景技術(shù):
負(fù)載均衡(又稱為負(fù)載分擔(dān)),是由多臺(tái)服務(wù)器以對(duì)稱的方式組成一個(gè)服務(wù)器集合,每臺(tái)服務(wù)器都具有等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無須其他服務(wù)器的輔助。通過某種負(fù)載分擔(dān)技術(shù),將外部發(fā)送來的請(qǐng)求分擔(dān)給多個(gè)服務(wù)器或網(wǎng)絡(luò)設(shè)備,例如web服務(wù)器、ftp服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,而接收到請(qǐng)求的服務(wù)器獨(dú)立地回應(yīng)客戶的請(qǐng)求,從而提高了業(yè)務(wù)處理能力,保證了業(yè)務(wù)的高可用性。
目前普遍使用的數(shù)據(jù)庫集群系統(tǒng)負(fù)載均衡方法包括隨機(jī)選擇法、輪詢法和加權(quán)輪詢法。其中,隨機(jī)選擇法在后端中隨機(jī)選擇一個(gè)節(jié)點(diǎn)來執(zhí)行用戶查詢請(qǐng)求,其完全不了解后端狀態(tài)也完全沒有可控性。輪詢法輪流選取后端節(jié)點(diǎn)執(zhí)行用戶查詢請(qǐng)求,其雖然可以使每個(gè)后端都有任務(wù),但并不能做到各個(gè)后端任務(wù)的最優(yōu)分配。加權(quán)輪詢法給不同的數(shù)據(jù)庫節(jié)點(diǎn)賦予不同的權(quán)值,但其通常還是采用靜態(tài)權(quán)重的方法按照固定比例向目標(biāo)服務(wù)器分發(fā)流量,其需要憑借人工經(jīng)驗(yàn)指定負(fù)載分擔(dān)參數(shù),擴(kuò)展性、靈活性、精確性都比較低。
因此,需要提供一種能夠?qū)崿F(xiàn)業(yè)務(wù)的最優(yōu)分配的負(fù)載均衡方法。
技術(shù)實(shí)現(xiàn)要素:
為此,本發(fā)明提供一種基于主機(jī)實(shí)際負(fù)載的自適應(yīng)負(fù)載均衡方法、設(shè)備和系統(tǒng),以力圖解決或至少緩解上面存在的問題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于主機(jī)實(shí)際負(fù)載的自適應(yīng)負(fù)載均衡方法,適于在負(fù)載均衡設(shè)備中執(zhí)行,該負(fù)載均衡設(shè)備與多個(gè)服務(wù)器主機(jī)通信連接,且分別存儲(chǔ)有各服務(wù)器在不同的性能指標(biāo)下可處理會(huì)話數(shù)的預(yù)測(cè)模型,該方法包括步驟:定期收集各服務(wù)器的當(dāng)前性能指標(biāo),并分別將其構(gòu)建為指標(biāo)特征向量;分別將各服務(wù)器的指標(biāo)特征向量輸入到對(duì)應(yīng)的預(yù)測(cè)模型中,得到各服務(wù)器在當(dāng)前性能指標(biāo)下的可處理會(huì)話數(shù);以及根據(jù)各服務(wù)器的可處理會(huì)話數(shù)為其設(shè)置負(fù)載分擔(dān)權(quán)重,并根據(jù)各服務(wù)器的負(fù)載分擔(dān)權(quán)重進(jìn)行相應(yīng)的流量分發(fā)。
可選地,在根據(jù)本發(fā)明的方法中,某服務(wù)器在不同的主機(jī)資源下可處理會(huì)話數(shù)的預(yù)測(cè)模型適于根據(jù)以下方法得到:在未進(jìn)行負(fù)載分擔(dān)的情況下,直接將會(huì)話流量分發(fā)給該服務(wù)器,并按照預(yù)定時(shí)間間隔不斷收集該服務(wù)器的各項(xiàng)性能指標(biāo)及其當(dāng)前正在處理的會(huì)話數(shù),直至某個(gè)性能指標(biāo)超過該指標(biāo)閾值時(shí)停止收集;分別將不同時(shí)刻下的各項(xiàng)性能指標(biāo)構(gòu)建為指標(biāo)特征向量,從而得到多組指標(biāo)特征向量與該性能指標(biāo)下可處理會(huì)話數(shù)的對(duì)應(yīng)關(guān)系;以及分別以各指標(biāo)特征向量為輸入值,以對(duì)應(yīng)的可處理會(huì)話數(shù)為輸出值,對(duì)預(yù)測(cè)模型進(jìn)行訓(xùn)練求解,得到服務(wù)器在不同的性能指標(biāo)下可處理會(huì)話數(shù)的計(jì)算方法。
可選地,在根據(jù)本發(fā)明的方法中,預(yù)測(cè)模型的計(jì)算公式為:hθ(x)=θ0+θ1x+θ2x2,其中,x為指標(biāo)特征向量,hθ為該性能指標(biāo)下可處理的會(huì)話數(shù),θ0、θ1和θ2均為特征權(quán)重向量。
可選地,在根據(jù)本發(fā)明的方法中,性能指標(biāo)包括cpu使用率、內(nèi)存使用量、io使用率、平均會(huì)話響應(yīng)時(shí)間、平均會(huì)話存活時(shí)間和網(wǎng)絡(luò)使用量的至少一種。
可選地,在根據(jù)本發(fā)明的方法中,指標(biāo)特征向量為(cpu使用率,內(nèi)存使用量,io使用率,平均會(huì)話響應(yīng)時(shí)間,平均會(huì)話存活時(shí)間,網(wǎng)絡(luò)使用量)。
可選地,在根據(jù)本發(fā)明的方法中,還包括:對(duì)于定期收集到的各服務(wù)器的當(dāng)前性能指標(biāo),分別計(jì)算預(yù)設(shè)時(shí)長(zhǎng)內(nèi)任意兩個(gè)相鄰收集時(shí)間的兩組性能指標(biāo)的差值和當(dāng)前正在處理會(huì)話數(shù)的差值,得到對(duì)應(yīng)時(shí)段內(nèi)的差值指標(biāo)和差值會(huì)話數(shù);分別將各時(shí)段內(nèi)的差值指標(biāo)構(gòu)建為指標(biāo)特征向量,并將其輸入到預(yù)測(cè)模型中,得到對(duì)應(yīng)時(shí)段內(nèi)的預(yù)測(cè)處理會(huì)話數(shù);分別根據(jù)各時(shí)段內(nèi)的預(yù)測(cè)處理會(huì)話數(shù)與差值會(huì)話數(shù)計(jì)算對(duì)應(yīng)的預(yù)測(cè)偏差值;以及計(jì)算預(yù)設(shè)時(shí)長(zhǎng)內(nèi)所有預(yù)測(cè)偏差值的平均值,如果該平均值高于預(yù)設(shè)閾值,則重新對(duì)該服務(wù)器的預(yù)測(cè)模型進(jìn)行訓(xùn)練。
可選地,在根據(jù)本發(fā)明的方法中,預(yù)測(cè)偏差值=(預(yù)測(cè)處理的會(huì)話數(shù)-差值會(huì)話數(shù))/差值會(huì)話數(shù)。
可選地,在根據(jù)本發(fā)明的方法中,重新對(duì)該服務(wù)器的預(yù)測(cè)模型進(jìn)行訓(xùn)練的步驟包括:將該服務(wù)器的負(fù)載分擔(dān)權(quán)重調(diào)整為0,并以固定速率向該服務(wù)器分發(fā)流量;按照預(yù)設(shè)時(shí)間間隔收集該服務(wù)器的當(dāng)前性能指標(biāo)及其當(dāng)前正在處理的會(huì)話數(shù),直至某個(gè)性能指標(biāo)超過該指標(biāo)閾值時(shí)停止收集;以新收集的第一條性能指標(biāo)作為基準(zhǔn)指標(biāo),計(jì)算后續(xù)所有性能指標(biāo)與該基準(zhǔn)指標(biāo)之間的差值,并將各差值構(gòu)建為指標(biāo)特征向量,從而得到多組指標(biāo)特征向量與該差值下可處理會(huì)話數(shù)的對(duì)應(yīng)關(guān)系;以及分別以各指標(biāo)特征向量為輸入值,以對(duì)應(yīng)的可處理會(huì)話數(shù)為輸出值,重新對(duì)預(yù)測(cè)模型進(jìn)行訓(xùn)練求解,得到服務(wù)器在不同的性能指標(biāo)下可處理會(huì)話數(shù)的新計(jì)算方法。
可選地,在根據(jù)本發(fā)明的方法中,還包括:定期刷新各服務(wù)器的負(fù)載分擔(dān)權(quán)重,并根據(jù)當(dāng)前各服務(wù)器的負(fù)載分擔(dān)權(quán)重對(duì)新來的會(huì)話進(jìn)行流量分發(fā)。
可選地,在根據(jù)本發(fā)明的方法中,負(fù)載均衡設(shè)備中存儲(chǔ)有流表數(shù)據(jù)庫,所述根據(jù)各負(fù)載分擔(dān)權(quán)重進(jìn)行相應(yīng)的流量分發(fā)的步驟包括:當(dāng)會(huì)話的第一個(gè)報(bào)文到達(dá)時(shí),根據(jù)各服務(wù)器的負(fù)載分擔(dān)權(quán)重將該各話分發(fā)給相應(yīng)的服務(wù)器,并將該會(huì)話的會(huì)話五元組和所分配的服務(wù)器存入到流表數(shù)據(jù)庫中;根據(jù)會(huì)話五元組判斷該會(huì)話的其他后續(xù)流量,并不再對(duì)該后續(xù)流量進(jìn)行負(fù)載分擔(dān)計(jì)算,而直接將其分發(fā)給第一個(gè)報(bào)文所分配的服務(wù)器;以及當(dāng)該會(huì)話已處理結(jié)束后,從所述流表數(shù)據(jù)庫中刪除該會(huì)話的會(huì)話五元組和所分配的服務(wù)器。
可選地,在根據(jù)本發(fā)明的方法中,定期收集各服務(wù)器的當(dāng)前性能指標(biāo),并分別將其構(gòu)建為指標(biāo)特征向量的步驟包括:根據(jù)各服務(wù)器的當(dāng)前性能指標(biāo)計(jì)算其剩余性能指標(biāo),并分別將各剩余性能指標(biāo)構(gòu)建為指標(biāo)特征向量。
可選地,在根據(jù)本發(fā)明的方法中,預(yù)定時(shí)間間隔為10ms,平均會(huì)話響應(yīng)時(shí)間的指標(biāo)閾值為1s,預(yù)設(shè)時(shí)長(zhǎng)為1小時(shí),預(yù)設(shè)閾值為30%,固定速率為每秒鐘分配10萬個(gè)會(huì)話。
根據(jù)本發(fā)明的又一個(gè)方面,提供一種負(fù)載均衡設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器;以及一個(gè)或多個(gè)程序,其中所述一個(gè)或多個(gè)程序存儲(chǔ)在所述存儲(chǔ)器中并被配置為由所述一個(gè)或多個(gè)處理器執(zhí)行,所述一個(gè)或多個(gè)程序包括用于執(zhí)行如上所述的方法的指令。
根據(jù)本發(fā)明的又一個(gè)方面,提供一種存儲(chǔ)一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中一個(gè)或多個(gè)程序包括指令,該指令當(dāng)由計(jì)算設(shè)備執(zhí)行時(shí),使得計(jì)算設(shè)備執(zhí)行如上所述的方法。
根據(jù)本發(fā)明的又一個(gè)方面,提供一種負(fù)載均衡系統(tǒng),包括如上所述的負(fù)載均衡設(shè)備,以及與該負(fù)載均衡設(shè)備通信連接的多個(gè)服務(wù)器。
根據(jù)本發(fā)明提供的技術(shù)方案,首先在負(fù)載均衡設(shè)備中對(duì)各服務(wù)器在不同性能指標(biāo)下所能處理的會(huì)話數(shù)進(jìn)行模型訓(xùn)練,然后實(shí)時(shí)收集服務(wù)器主機(jī)各項(xiàng)性能指標(biāo),如cpu使用率、內(nèi)存用量、磁盤io負(fù)載、當(dāng)前會(huì)話數(shù)、平均會(huì)話響應(yīng)時(shí)間、平均會(huì)話存活時(shí)間和上下行網(wǎng)絡(luò)帶寬等,從而得到當(dāng)前各服務(wù)器的各項(xiàng)剩余性能指標(biāo)。然后,根據(jù)將服務(wù)器的當(dāng)前剩余性能指標(biāo)輸入到該服務(wù)器的預(yù)測(cè)模型中,利用機(jī)器學(xué)習(xí)算法預(yù)測(cè)該服務(wù)器當(dāng)前的可處理會(huì)話數(shù)。最后,根據(jù)各服務(wù)器的可處理會(huì)話數(shù)的比值為該服務(wù)器設(shè)置負(fù)載分擔(dān)權(quán)重,從而動(dòng)態(tài)計(jì)算出各個(gè)服務(wù)器主機(jī)負(fù)載分擔(dān)的權(quán)重比例,并進(jìn)行相應(yīng)的流量分發(fā)。本發(fā)明能夠充分利用已有資源對(duì)業(yè)務(wù)調(diào)度進(jìn)行高效處理,實(shí)現(xiàn)業(yè)務(wù)請(qǐng)求的最優(yōu)動(dòng)態(tài)分配,而且集群成員節(jié)點(diǎn)擴(kuò)充或者故障時(shí)也能夠彈性處理,另外還能靈活支持集群成員異構(gòu)。
附圖說明
為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實(shí)踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的示例負(fù)載均衡系統(tǒng)100的示意圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的示例負(fù)載均衡設(shè)備200的結(jié)構(gòu)框圖;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于主機(jī)實(shí)際負(fù)載的自適應(yīng)負(fù)載均衡方法300的流程圖;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的預(yù)測(cè)模型的偏差檢測(cè)方法400的流程圖;以及
圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的重新訓(xùn)練預(yù)測(cè)模型的方法500的流程圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡系統(tǒng)100的示意圖。圖1所示的負(fù)載均衡系統(tǒng)100包括負(fù)載均衡設(shè)備200、數(shù)據(jù)存儲(chǔ)裝置120以及多個(gè)服務(wù)器110(如圖1中的服務(wù)器1-n),其中,負(fù)載均衡設(shè)備200和多個(gè)服務(wù)器110之間通過數(shù)據(jù)網(wǎng)絡(luò)連接。應(yīng)當(dāng)指出,圖1中的負(fù)載均衡系統(tǒng)100僅是示例性的,在具體的實(shí)踐情況中,負(fù)載均衡系統(tǒng)100中可以有不同數(shù)量的負(fù)載均衡設(shè)備200、數(shù)據(jù)存儲(chǔ)裝置120和服務(wù)器110,本發(fā)明對(duì)系統(tǒng)100中所包括的負(fù)載均衡設(shè)備、數(shù)據(jù)存儲(chǔ)裝置以及服務(wù)器的數(shù)目不做限制,這些設(shè)施也可以駐留在多個(gè)地理位置中。
負(fù)載均衡設(shè)備200可以實(shí)現(xiàn)為服務(wù)器,例如文件服務(wù)器、數(shù)據(jù)存儲(chǔ)裝置服務(wù)器、應(yīng)用程序服務(wù)器和web服務(wù)器等,也可以實(shí)現(xiàn)為包括桌面計(jì)算機(jī)和筆記本計(jì)算機(jī)配置的個(gè)人計(jì)算機(jī),還可以實(shí)現(xiàn)為小尺寸便攜(或者移動(dòng))電子設(shè)備的一部分,這些電子設(shè)備可以是諸如手機(jī)、平板電腦、個(gè)人媒體播放器設(shè)備、無線網(wǎng)絡(luò)瀏覽設(shè)備、可穿戴設(shè)備(如智能手表、智能眼鏡等)、應(yīng)用專用設(shè)備、或者可以包括上面任何功能的混合設(shè)備。負(fù)載均衡設(shè)備200中部署有資源調(diào)度應(yīng)用,適于將來自客戶端的多個(gè)請(qǐng)求進(jìn)行負(fù)載分擔(dān)后再分發(fā)給相應(yīng)的服務(wù)器進(jìn)行處理,以實(shí)現(xiàn)各節(jié)點(diǎn)的負(fù)載均衡。需要說明的是,負(fù)載均衡設(shè)備200也可以設(shè)置為多個(gè),圖1中只是示例性的示出了其中一個(gè)。
服務(wù)器110可以是由若干臺(tái)服務(wù)器組成的服務(wù)器集群,或者是一個(gè)云計(jì)算服務(wù)中心。此外,用于組成服務(wù)器集群或云計(jì)算服務(wù)中心的多個(gè)服務(wù)器可以駐留在多個(gè)地理位置中,本發(fā)明對(duì)服務(wù)器110的部署方式不做限制。服務(wù)器110處理負(fù)載均衡設(shè)備200分配過來的服務(wù)請(qǐng)求,并向?qū)?yīng)的客戶端提供相關(guān)網(wǎng)絡(luò)服務(wù),即響應(yīng)于該請(qǐng)求向用戶返回查詢結(jié)果。
服務(wù)器110可以定期獲取主機(jī)各項(xiàng)性能指標(biāo),并將獲取到的性能指標(biāo),打包封裝成ipfix報(bào)文(參見rfc7011)。這里,獲取間隔可以根據(jù)實(shí)際需要配置,例如可以設(shè)置在10~1000ms范圍。之后,服務(wù)器110作為ipfix協(xié)議客戶端向負(fù)載均衡設(shè)備200上報(bào)性能指標(biāo)數(shù)據(jù)。需要說明的是,由于當(dāng)前ipfix協(xié)議不能完全支持本發(fā)明中所定義的性能指標(biāo),因此需要對(duì)其進(jìn)行擴(kuò)展,具體可參見ipflowinformationexport(ipfix)entities(http://www.iana.org/assignments/ipfix/ipfix.xhtml)中的擴(kuò)展方法。而另一方面,負(fù)載均衡設(shè)備200作為ipfix協(xié)議服務(wù)端,可以監(jiān)聽ipfix協(xié)議端口,以及收集來自各個(gè)服務(wù)器主機(jī)上報(bào)的性能指標(biāo),并分別將其存入到數(shù)據(jù)存儲(chǔ)裝置120中。
數(shù)據(jù)存儲(chǔ)裝置120可以是數(shù)據(jù)庫,其既可以作為本地?cái)?shù)據(jù)庫駐留于負(fù)載均衡設(shè)備200中,也可以作為遠(yuǎn)程數(shù)據(jù)庫設(shè)置于負(fù)載均衡設(shè)備200之外,本發(fā)明對(duì)數(shù)據(jù)存儲(chǔ)裝置110的部署方式不做限制。根據(jù)一種實(shí)施例,數(shù)據(jù)存儲(chǔ)裝置120可以是redis內(nèi)存數(shù)據(jù)庫,這樣在對(duì)流表數(shù)據(jù)進(jìn)行頻繁查詢時(shí),可以保證較高的查詢效率。
圖2布置為實(shí)現(xiàn)根據(jù)本發(fā)明的基于主機(jī)實(shí)際負(fù)載的自適應(yīng)負(fù)載均衡方法300的示例負(fù)載均衡設(shè)備200的結(jié)構(gòu)框圖。如圖2所示,在基本配置202中,負(fù)載均衡設(shè)備200典型地包括系統(tǒng)存儲(chǔ)器206和一個(gè)或者多個(gè)處理器204。存儲(chǔ)器總線208可以用于在處理器204和系統(tǒng)存儲(chǔ)器206之間的通信。
取決于期望的配置,處理器204可以是任何類型的處理,包括但不限于:微處理器(μp)、微控制器(μc)、數(shù)字信息處理器(dsp)或者它們的任何組合。處理器204可以包括諸如一級(jí)高速緩存210和二級(jí)高速緩存212之類的一個(gè)或者多個(gè)級(jí)別的高速緩存、處理器核心214和寄存器216。示例的處理器核心214可以包括運(yùn)算邏輯單元(alu)、浮點(diǎn)數(shù)單元(fpu)、數(shù)字信號(hào)處理核心(dsp核心)或者它們的任何組合。示例的存儲(chǔ)器控制器218可以與處理器204一起使用,或者在一些實(shí)現(xiàn)中,存儲(chǔ)器控制器218可以是處理器204的一個(gè)內(nèi)部部分。
取決于期望的配置,系統(tǒng)存儲(chǔ)器206可以是任意類型的存儲(chǔ)器,包括但不限于:易失性存儲(chǔ)器(諸如ram)、非易失性存儲(chǔ)器(諸如rom、閃存等)或者它們的任何組合。系統(tǒng)存儲(chǔ)器206可以包括操作系統(tǒng)220、一個(gè)或者多個(gè)應(yīng)用222以及程序數(shù)據(jù)224。在一些實(shí)施方式中,應(yīng)用222可以布置為在操作系統(tǒng)上利用程序數(shù)據(jù)224進(jìn)行操作。
負(fù)載均衡設(shè)備200還可以包括有助于從各種接口設(shè)備(例如,輸出設(shè)備242、外設(shè)接口244和通信設(shè)備246)到基本配置102經(jīng)由總線/接口控制器230的通信的接口總線240。示例的輸出設(shè)備242包括圖形處理單元248和音頻處理單元250。它們可以被配置為有助于經(jīng)由一個(gè)或者多個(gè)a/v端口252與諸如顯示器或者揚(yáng)聲器之類的各種外部設(shè)備進(jìn)行通信。示例外設(shè)接口244可以包括串行接口控制器254和并行接口控制器256,它們可以被配置為有助于經(jīng)由一個(gè)或者多個(gè)i/o端口258和諸如輸入設(shè)備(例如,鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備)或者其他外設(shè)(例如打印機(jī)、掃描儀等)之類的外部設(shè)備進(jìn)行通信。示例的通信設(shè)備246可以包括網(wǎng)絡(luò)控制器260,其可以被布置為便于經(jīng)由一個(gè)或者多個(gè)通信端口264與一個(gè)或者多個(gè)其他計(jì)算設(shè)備262通過網(wǎng)絡(luò)通信鏈路的通信。
網(wǎng)絡(luò)通信鏈路可以是通信介質(zhì)的一個(gè)示例。通信介質(zhì)通常可以體現(xiàn)為在諸如載波或者其他傳輸機(jī)制之類的調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,并且可以包括任何信息遞送介質(zhì)?!罢{(diào)制數(shù)據(jù)信號(hào)”可以這樣的信號(hào),它的數(shù)據(jù)集中的一個(gè)或者多個(gè)或者它的改變可以在信號(hào)中編碼信息的方式進(jìn)行。作為非限制性的示例,通信介質(zhì)可以包括諸如有線網(wǎng)絡(luò)或者專線網(wǎng)絡(luò)之類的有線介質(zhì),以及諸如聲音、射頻(rf)、微波、紅外(ir)或者其它無線介質(zhì)在內(nèi)的各種無線介質(zhì)。這里使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)可以包括存儲(chǔ)介質(zhì)和通信介質(zhì)二者。
負(fù)載均衡設(shè)備200可以實(shí)現(xiàn)為小尺寸便攜(或者移動(dòng))電子設(shè)備的一部分。負(fù)載均衡設(shè)備200還可以實(shí)現(xiàn)為包括桌面計(jì)算機(jī)和筆記本計(jì)算機(jī)配置的個(gè)人計(jì)算機(jī)。在一些實(shí)施例中,負(fù)載均衡設(shè)備200被配置為執(zhí)行根據(jù)本發(fā)明的基于主機(jī)實(shí)際負(fù)載的自適應(yīng)負(fù)載均衡方法300,應(yīng)用222中包括用于執(zhí)行方法300的一個(gè)或多個(gè)程序。
此外,根據(jù)本發(fā)明的負(fù)載均衡設(shè)備200中還分別存儲(chǔ)有各服務(wù)器在不同性能指標(biāo)下的可處理會(huì)話數(shù)的預(yù)測(cè)模型。具體地,負(fù)載均衡設(shè)備200可以根據(jù)如下方法得到各服務(wù)器的預(yù)測(cè)模型:
首先,在未進(jìn)行負(fù)載分擔(dān)的情況下,直接將會(huì)話流量分發(fā)給某個(gè)特定的服務(wù)器,并按照預(yù)定時(shí)間間隔不斷收集該服務(wù)器的各項(xiàng)性能指標(biāo)及其當(dāng)前正在處理的會(huì)話數(shù),直至某個(gè)性能指標(biāo)超過該指標(biāo)閾值時(shí)停止收集。其中,預(yù)定時(shí)間間隔可以是指標(biāo)收集的最小時(shí)間間隔,如10ms,以便收集到多組數(shù)據(jù)提高預(yù)測(cè)模型準(zhǔn)確性;當(dāng)然也可以根據(jù)需要設(shè)置為其他數(shù)值,本發(fā)明對(duì)此不作限制。
另外,性能指標(biāo)可以包括cpu使用率、內(nèi)存使用量、io使用率、平均會(huì)話響應(yīng)時(shí)間、平均會(huì)話存活時(shí)間和網(wǎng)絡(luò)使用量的至少一種。當(dāng)某個(gè)性能指標(biāo)超過其指標(biāo)閾值時(shí)(例如平均會(huì)話響應(yīng)時(shí)間超過1s時(shí)),當(dāng)前服務(wù)器的性能指標(biāo)收集完成,可以切換到下一個(gè)服務(wù)器。當(dāng)一輪切換過后,負(fù)載均衡設(shè)備200收集到了所有服務(wù)器的性能指標(biāo)。當(dāng)然,這里也可以重復(fù)幾次該收集過程,并取其平均值,這樣更接近實(shí)際情況。
隨后,分別將不同時(shí)刻下的各項(xiàng)性能指標(biāo)構(gòu)建為指標(biāo)特征向量,從而得到多組指標(biāo)特征向量與該性能指標(biāo)下可處理會(huì)話數(shù)的對(duì)應(yīng)關(guān)系。
根據(jù)一個(gè)實(shí)施例,指標(biāo)特征向量可以表述為(cpu使用率,內(nèi)存使用量,io使用率,平均會(huì)話響應(yīng)時(shí)間,平均會(huì)話存活時(shí)間,網(wǎng)絡(luò)使用量)。例如(90%,8g,80%,100ms,200ms,1gbps)的意思即為:消耗90%的cpu,8g內(nèi)存,80%的磁盤io,1gbps網(wǎng)絡(luò)帶寬資源,平均會(huì)話響應(yīng)時(shí)間為100ms,平均會(huì)話存活時(shí)間200ms的主機(jī)資源下。這樣,就可以得到每個(gè)服務(wù)器中消耗不同的主機(jī)資源所能處理的會(huì)話數(shù),以下示出了一些訓(xùn)練數(shù)據(jù)集中的樣例數(shù)據(jù):
x1=<10%,5%,5%,5ms,100ms,0.1g>,h(x1)=10000;
x2=<20%,10%,5%,7ms,100ms,0.2g>,h(x2)=20000;
x3=<40%,20%,10%,8ms,120ms,0.3g>,h(x3)=40000;
隨后,分別以各指標(biāo)特征向量為輸入值,以對(duì)應(yīng)的可處理會(huì)話數(shù)為輸出值,對(duì)預(yù)測(cè)模型進(jìn)行訓(xùn)練求解,得到服務(wù)器在不同的性能指標(biāo)下可處理會(huì)話數(shù)的計(jì)算方法。
根據(jù)一個(gè)實(shí)施例,預(yù)測(cè)模型的計(jì)算公式可以為:
hθ(x)=θ0+θ1x+θ2x2(1)
其中,x為指標(biāo)特征向量,hθ(x)為該性能指標(biāo)下可處理的會(huì)話數(shù),θ0、θ1和θ2均為特征權(quán)重向量。根據(jù)以上訓(xùn)練數(shù)據(jù)集對(duì)該公式進(jìn)行訓(xùn)練求解,即可得到該預(yù)測(cè)模型的計(jì)算方法。
這里采用的是多項(xiàng)式回歸算法建立的模型預(yù)測(cè),當(dāng)然也可以使用其他計(jì)算公式,本發(fā)明對(duì)此不作限制。由于本模型特性和樣本數(shù)量都不多,損失函數(shù)可以采用批量梯度下降法,如可以參考如下公式:
對(duì)該損失函數(shù)進(jìn)行求導(dǎo)后,可以得到:
其中,m為樣本個(gè)數(shù),i是樣本的標(biāo)號(hào),j=0,1,2,其實(shí)際上是對(duì)x和x平方的簡(jiǎn)寫,
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于主機(jī)實(shí)際負(fù)載的自適應(yīng)負(fù)載均衡300的流程圖。如圖3所述,該方法適于步驟s320。
在步驟s320中,定期收集各服務(wù)器的當(dāng)前性能指標(biāo),并分別將其構(gòu)建為指標(biāo)特征向量。其中,步驟s320中的內(nèi)容進(jìn)一步地可以包括:根據(jù)各服務(wù)器的當(dāng)前性能指標(biāo)計(jì)算其剩余性能指標(biāo),并分別將各剩余性能指標(biāo)構(gòu)建為指標(biāo)特征向量。其中,定期收集時(shí)間可以根據(jù)需要進(jìn)行設(shè)置,如可設(shè)置為1s~10s,其通??梢源笥谀P陀?xùn)練時(shí)的指標(biāo)收集時(shí)間間隔。
例如,若當(dāng)前服務(wù)器的各項(xiàng)性能指標(biāo)分別為(cpu使用率,內(nèi)存使用量,io使用率,平均會(huì)話響應(yīng)時(shí)間,平均會(huì)話存活時(shí)間,網(wǎng)絡(luò)使用量)=(20%,2g,10%,5ms,100ms,0.1g),則剩余資源的cpu可用率=80%,內(nèi)存可使用=30g,io可使用量=90%,網(wǎng)絡(luò)帶寬可使用量=9.9gbps,將其構(gòu)建為剩余資源的指標(biāo)特征向量,即為(80%,30g,90%,500ms,100ms,9.9g)。這里,平均會(huì)話響應(yīng)時(shí)間可以根據(jù)需求進(jìn)行調(diào)整,根據(jù)一個(gè)實(shí)施例,其可以取500ms,超過500ms則會(huì)影響用戶web服務(wù)的體驗(yàn)。
隨后,在步驟s340中,分別將各服務(wù)器的指標(biāo)特征向量輸入到對(duì)應(yīng)的預(yù)測(cè)模型中,得到各服務(wù)器在當(dāng)前性能指標(biāo)下的可處理會(huì)話數(shù)。
例如,在上述例子中,將剩余資源的指標(biāo)特征向量(80%,30g,90%,500ms,100ms,9.9g)輸入到公式(1)中,即可得到該服務(wù)器在當(dāng)前剩余資源下的可處理會(huì)話數(shù)。依照上述方法對(duì)其他服務(wù)器也進(jìn)行求解,就可分別得到各服務(wù)器在當(dāng)前性能指標(biāo)下的可處理會(huì)話數(shù)。
隨后,在步驟s360中,根據(jù)各服務(wù)器的可處理會(huì)話數(shù)為其設(shè)置負(fù)載分擔(dān)權(quán)重,并根據(jù)各服務(wù)器的負(fù)載分擔(dān)權(quán)重進(jìn)行相應(yīng)的流量分發(fā)。進(jìn)一步地,其還可以定期刷新各服務(wù)器的負(fù)載分擔(dān)權(quán)重,并根據(jù)當(dāng)前各服務(wù)器的負(fù)載分擔(dān)權(quán)重對(duì)新來的會(huì)話進(jìn)行流量分發(fā)。
根據(jù)一個(gè)實(shí)施例,步驟s360可以包括:根據(jù)各服務(wù)器的可處理會(huì)話數(shù)的比值為其設(shè)置負(fù)載分擔(dān)權(quán)重,并將新來的會(huì)話按照同樣比值進(jìn)行分組,并分別把每組會(huì)話分配給對(duì)應(yīng)的服務(wù)器。
這里,若負(fù)載均衡系統(tǒng)100中n個(gè)服務(wù)器,其中m(m≤n)個(gè)服務(wù)器的可處理會(huì)話數(shù)分別為h1、h2、h3…、hm,則其比值為h1:h2:h3…h(huán)m;對(duì)于新來的k個(gè)會(huì)話,將其按照同樣的比值分為m等份,并分別把每份會(huì)話分配給對(duì)應(yīng)的服務(wù)器。比如,若三個(gè)服務(wù)器的當(dāng)前可處理會(huì)話數(shù)分別為900、700和400,即其比值為9:7:4,此時(shí)若新來100個(gè)會(huì)話,則將這100個(gè)會(huì)話按照上述比例分為45、35和20三組,并分別將每個(gè)分組分發(fā)給對(duì)應(yīng)的服務(wù)器,即45會(huì)話組分配給可處理會(huì)話數(shù)為900的服務(wù)器,35會(huì)話組分配給可處理會(huì)話數(shù)為700的服務(wù)器,
這里,如果會(huì)話數(shù)k比較多,則可以取m=n,即將會(huì)話分配給所有服務(wù)器進(jìn)行負(fù)載分擔(dān);如果會(huì)話數(shù)k比較少,則可以從中選出一部分可處理會(huì)話值較大的服務(wù)器進(jìn)行負(fù)載分擔(dān),即此時(shí)m<n;如果只來了一個(gè)新會(huì)話,則可以根據(jù)需要將其分配給可處理會(huì)話數(shù)最大的那個(gè)服務(wù)器進(jìn)行處理,也可以按照常規(guī)的輪詢法或隨機(jī)選擇法分配。當(dāng)然,這些都只是示例性說明,負(fù)載分擔(dān)方法還可以根據(jù)現(xiàn)有的任意方法進(jìn)行設(shè)置和分配,本發(fā)明對(duì)此不作限制。
根據(jù)一個(gè)實(shí)施例,負(fù)載均衡設(shè)備200中還可以存儲(chǔ)流表數(shù)據(jù)庫,流表數(shù)據(jù)庫用于存儲(chǔ)會(huì)話五元組和該會(huì)話所分配的服務(wù)器,根據(jù)各負(fù)載分擔(dān)權(quán)重進(jìn)行相應(yīng)的流量分發(fā)的步驟可以包括:當(dāng)會(huì)話的第一個(gè)報(bào)文到達(dá)時(shí),根據(jù)各服務(wù)器的負(fù)載分擔(dān)權(quán)重將該會(huì)話分發(fā)給相應(yīng)的服務(wù)器,并將該會(huì)話的會(huì)話五元組和所分配的服務(wù)器存入到流表數(shù)據(jù)庫中;根據(jù)會(huì)話五元組判斷該會(huì)話的其他后續(xù)流量,并不再對(duì)該后續(xù)流量進(jìn)行負(fù)載分擔(dān)計(jì)算,而直接將其分發(fā)給第一個(gè)報(bào)文所分配的服務(wù)器;以及當(dāng)該會(huì)話已處理結(jié)束后,從流表數(shù)據(jù)庫中刪除該會(huì)話的會(huì)話五元組和所分配的服務(wù)器。
也就是,負(fù)載均衡設(shè)備200將分發(fā)的會(huì)話五元組(源ip地址,源端口,目的ip地址,目的端口和傳輸層協(xié)議號(hào))記錄到流表數(shù)據(jù)庫中,在本次會(huì)話的生命周期內(nèi),該會(huì)話的后續(xù)流量不會(huì)被分配到其他服務(wù)器,而是直接發(fā)送給相同的服務(wù)器,從而保證流量的同源同宿關(guān)系。當(dāng)本次會(huì)話完成后,其會(huì)話五元組會(huì)從流表數(shù)據(jù)庫中刪除,后續(xù)再有相同五元組的報(bào)文到來時(shí),會(huì)重新按照負(fù)載分擔(dān)權(quán)重來分配。負(fù)載分擔(dān)是發(fā)生在每個(gè)會(huì)話的第一個(gè)報(bào)文到達(dá)時(shí)。
從以上內(nèi)容可知,預(yù)測(cè)模型的建立與模型訓(xùn)練過程中實(shí)際運(yùn)行的業(yè)務(wù)密不可分。因此,當(dāng)服務(wù)器上的業(yè)務(wù)變更時(shí),需要重新對(duì)模型進(jìn)行訓(xùn)練。例如,服務(wù)器原來提供的是網(wǎng)頁瀏覽服務(wù),后來該服務(wù)器被用作提供科學(xué)計(jì)算服務(wù),而不同服務(wù)對(duì)系統(tǒng)資源的消耗是不一樣的,所以原來的模型就不再適用,需要重新對(duì)其重新訓(xùn)練。
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的預(yù)測(cè)模型的偏差檢測(cè)方法400的流程圖,其可以用來判斷是否需要對(duì)模型進(jìn)行重新訓(xùn)練。
如圖4所示,方法始于步驟s420,對(duì)于定期收集到的各服務(wù)器的當(dāng)前性能指標(biāo),分別計(jì)算預(yù)設(shè)時(shí)長(zhǎng)內(nèi)任意兩個(gè)相鄰收集時(shí)間的兩組性能指標(biāo)的差值和當(dāng)前正在處理會(huì)話數(shù)的差值,得到對(duì)應(yīng)時(shí)段內(nèi)的差值指標(biāo)和差值會(huì)話數(shù)。
也就是,對(duì)于獲取到的預(yù)設(shè)時(shí)長(zhǎng)內(nèi)的性能指標(biāo)數(shù)據(jù),將各性能指標(biāo)數(shù)據(jù)按照時(shí)間排序,兩兩相減,獲得性能指標(biāo)差值。這個(gè)差值體現(xiàn)了在兩次獲取性能指標(biāo)之間的時(shí)間內(nèi),服務(wù)器消耗的系統(tǒng)資源和處理能力,即處理了多少條會(huì)話。這里,對(duì)于平均會(huì)話響應(yīng)時(shí)間和平均會(huì)話存活時(shí)間,如果其前后兩個(gè)值相同,則可以不用求差值,直接按原數(shù)值即可;若不相等,則可以取兩個(gè)值的平均值。其中,預(yù)設(shè)時(shí)長(zhǎng)可以為1h,當(dāng)然也可以根據(jù)需要設(shè)置為其他數(shù)值,本發(fā)明對(duì)此不作限制。
隨后,在步驟s440中,分別將各時(shí)段內(nèi)的差值指標(biāo)構(gòu)建為指標(biāo)特征向量,并將其輸入到預(yù)測(cè)模型中,得到對(duì)應(yīng)時(shí)段內(nèi)的預(yù)測(cè)處理會(huì)話數(shù)。
例如,設(shè)第一次和第二次收集時(shí)的各性能指標(biāo)分別如上表的前兩行所示,則兩次數(shù)據(jù)的性能指標(biāo)差值如第三行所示,構(gòu)造的特征向量為(10%,1%,1%,5ms,100ms,0.1g)。將其輸入到公式(1)中,即可得到在第一次和第二次收集中服務(wù)器理應(yīng)處理的會(huì)話數(shù),即預(yù)測(cè)處理的會(huì)話數(shù),將該預(yù)測(cè)值與實(shí)際處理的差值會(huì)話數(shù)作比較,即可知道該服務(wù)器的當(dāng)前預(yù)測(cè)模型是否準(zhǔn)確。
隨后,在步驟s460中,分別根據(jù)各時(shí)段內(nèi)的預(yù)測(cè)處理會(huì)話數(shù)與差值會(huì)話數(shù)計(jì)算對(duì)應(yīng)的預(yù)測(cè)偏差值。其中,預(yù)測(cè)偏差值=(預(yù)測(cè)處理的會(huì)話數(shù)-差值會(huì)話數(shù))/差值會(huì)話數(shù),當(dāng)然也可以根據(jù)需要設(shè)置為其他公式,本發(fā)明對(duì)此不作限制。
隨后,在步驟s480中,計(jì)算預(yù)設(shè)時(shí)長(zhǎng)內(nèi)所有預(yù)測(cè)偏差值的平均值,如果該平均值高于預(yù)設(shè)閾值,則判定為服務(wù)器出現(xiàn)了軟硬件配置變化,需要重新對(duì)該服務(wù)器的預(yù)測(cè)模型進(jìn)行訓(xùn)練。其中,預(yù)設(shè)閾值可以為30%,當(dāng)然也可以根據(jù)需要設(shè)置為其他數(shù)值,本發(fā)明對(duì)此不作限制。
圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的重新訓(xùn)練預(yù)測(cè)模型的方法500的流程圖,如圖5所示,方法500始于步驟s520。
在步驟s520中,對(duì)于某個(gè)需要重新訓(xùn)練預(yù)測(cè)模型的服務(wù)器,將該服務(wù)器的負(fù)載分擔(dān)權(quán)重調(diào)整為0,不讓該服務(wù)器參與負(fù)載分擔(dān),并以固定速率向該服務(wù)器分發(fā)流量,例如每秒鐘分配100000個(gè)會(huì)話。
隨后,在步驟s540中,按照預(yù)設(shè)時(shí)間間隔收集該服務(wù)器的當(dāng)前性能指標(biāo)及其當(dāng)前正在處理的會(huì)話數(shù),直至某個(gè)性能指標(biāo)超過該指標(biāo)閾值時(shí)停止收集。這里,可以按照指標(biāo)收集間隔的最小時(shí)間間隔,如10ms。這里,當(dāng)負(fù)載均衡設(shè)備發(fā)現(xiàn)某個(gè)服務(wù)器的預(yù)測(cè)模型需要調(diào)整時(shí),將通知該服務(wù)器上進(jìn)入訓(xùn)練模式,此時(shí)該服務(wù)器將按照最小時(shí)間間隔進(jìn)行性能指標(biāo)上報(bào)。
隨后,在步驟s560中,以新收集的第一條性能指標(biāo)作為基準(zhǔn)指標(biāo),計(jì)算后續(xù)所有性能指標(biāo)與該基準(zhǔn)指標(biāo)之間的差值,并將各差值構(gòu)建為指標(biāo)特征向量,從而得到多組指標(biāo)特征向量與該差值下可處理會(huì)話數(shù)的對(duì)應(yīng)關(guān)系.
隨后,在步驟s580中,分別以各指標(biāo)特征向量為輸入值,以對(duì)應(yīng)的可處理會(huì)話數(shù)為輸出值,重新對(duì)預(yù)測(cè)模型進(jìn)行訓(xùn)練求解,得到服務(wù)器在不同的性能指標(biāo)下可處理會(huì)話數(shù)的新計(jì)算方法。之后,就可以根據(jù)該新的預(yù)測(cè)模型對(duì)該服務(wù)器進(jìn)行負(fù)載分擔(dān)。
根據(jù)本發(fā)明的技術(shù)方案,實(shí)時(shí)收集服務(wù)器主機(jī)的各項(xiàng)性能指標(biāo)后,利用機(jī)器學(xué)習(xí)算法預(yù)測(cè)該服務(wù)器當(dāng)前能接收的新服務(wù)器請(qǐng)求數(shù),從而動(dòng)態(tài)計(jì)算出各個(gè)服務(wù)器主機(jī)負(fù)載分擔(dān)的權(quán)重比例,以及進(jìn)行相應(yīng)的流量分發(fā)。這樣能夠?qū)崿F(xiàn)主機(jī)資源的最大利用,提高業(yè)務(wù)處理的整體效率。而且,負(fù)載均衡設(shè)備還能將分發(fā)的會(huì)話五元組記錄到流表數(shù)據(jù)庫,后續(xù)流量都會(huì)發(fā)送給相同的服務(wù)器,從而保證流量的同源同宿關(guān)系。另外,本發(fā)明還能實(shí)時(shí)監(jiān)測(cè)服務(wù)器是否發(fā)生了業(yè)務(wù)變更,并當(dāng)其發(fā)生業(yè)務(wù)變更時(shí)重新對(duì)該服務(wù)器的預(yù)測(cè)模型進(jìn)行訓(xùn)練。
a8、如a1或a6所述的方法,其中,所述重新對(duì)該服務(wù)器的預(yù)測(cè)模型進(jìn)行訓(xùn)練的步驟包括:將該服務(wù)器的負(fù)載分擔(dān)權(quán)重調(diào)整為0,并以固定速率向該服務(wù)器分發(fā)流量;按照預(yù)設(shè)時(shí)間間隔收集該服務(wù)器的當(dāng)前性能指標(biāo)及其當(dāng)前正在處理的會(huì)話數(shù),直至某個(gè)性能指標(biāo)超過該指標(biāo)閾值時(shí)停止收集;以新收集的第一條性能指標(biāo)作為基準(zhǔn)指標(biāo),計(jì)算后續(xù)所有性能指標(biāo)與該基準(zhǔn)指標(biāo)之間的差值,并將各差值構(gòu)建為指標(biāo)特征向量,從而得到多組指標(biāo)特征向量與該差值下可處理會(huì)話數(shù)的對(duì)應(yīng)關(guān)系;以及分別以各指標(biāo)特征向量為輸入值,以對(duì)應(yīng)的可處理會(huì)話數(shù)為輸出值,重新對(duì)預(yù)測(cè)模型進(jìn)行訓(xùn)練求解,得到服務(wù)器在不同的性能指標(biāo)下可處理會(huì)話數(shù)的新計(jì)算方法。
a9、如a1所述的方法,還包括:定期刷新各服務(wù)器的負(fù)載分擔(dān)權(quán)重,并根據(jù)當(dāng)前各服務(wù)器的負(fù)載分擔(dān)權(quán)重對(duì)新來的會(huì)話進(jìn)行流量分發(fā)。
a10、如a1所述的方法,其中,所述負(fù)載均衡設(shè)備中存儲(chǔ)有流表數(shù)據(jù)庫,所述根據(jù)各服務(wù)器的負(fù)載分擔(dān)權(quán)重進(jìn)行相應(yīng)的流量分發(fā)的步驟包括:當(dāng)會(huì)話的第一個(gè)報(bào)文到達(dá)時(shí),根據(jù)各服務(wù)器的負(fù)載分擔(dān)權(quán)重將該各話分發(fā)給相應(yīng)的服務(wù)器,并將該會(huì)話的會(huì)話五元組和所分配的服務(wù)器存入到流表數(shù)據(jù)庫中;根據(jù)會(huì)話五元組判斷該會(huì)話的其他后續(xù)流量,并不再對(duì)該后續(xù)流量進(jìn)行負(fù)載分擔(dān)計(jì)算,而直接將其分發(fā)給第一個(gè)報(bào)文所分配的服務(wù)器;以及當(dāng)該會(huì)話已處理結(jié)束后,從所述流表數(shù)據(jù)庫中刪除該會(huì)話的會(huì)話五元組和所分配的服務(wù)器。
a11、如a1所述的方法,其中,所述定期收集各服務(wù)器的當(dāng)前性能指標(biāo),并分別將其構(gòu)建為指標(biāo)特征向量的步驟包括:根據(jù)各服務(wù)器的當(dāng)前性能指標(biāo)計(jì)算其剩余性能指標(biāo),并分別將各剩余性能指標(biāo)構(gòu)建為指標(biāo)特征向量。
a12、如a1-a8中任一項(xiàng)所述的方法,其中,所述預(yù)定時(shí)間間隔為10ms,所述平均會(huì)話響應(yīng)時(shí)間的指標(biāo)閾值為1s,所述預(yù)設(shè)時(shí)長(zhǎng)為1小時(shí),所述預(yù)設(shè)閾值為30%,所述固定速率為每秒鐘分配10萬個(gè)會(huì)話。
這里描述的各種技術(shù)可結(jié)合硬件或軟件,或者它們的組合一起實(shí)現(xiàn)。從而,本發(fā)明的方法和設(shè)備,或者本發(fā)明的方法和設(shè)備的某些方面或部分可采取嵌入有形媒介,例如軟盤、cd-rom、硬盤驅(qū)動(dòng)器或者其它任意機(jī)器可讀的存儲(chǔ)介質(zhì)中的程序代碼(即指令)的形式,其中當(dāng)程序被載入諸如計(jì)算機(jī)之類的機(jī)器,并被所述機(jī)器執(zhí)行時(shí),所述機(jī)器變成實(shí)踐本發(fā)明的設(shè)備。
在程序代碼在可編程計(jì)算機(jī)上執(zhí)行的情況下,計(jì)算設(shè)備一般包括處理器、處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件),至少一個(gè)輸入裝置,和至少一個(gè)輸出裝置。其中,存儲(chǔ)器被配置用于存儲(chǔ)程序代碼;處理器被配置用于根據(jù)該存儲(chǔ)器中存儲(chǔ)的所述程序代碼中的指令,執(zhí)行本發(fā)明的基于主機(jī)實(shí)際負(fù)載的自適應(yīng)負(fù)載均衡方法。
以示例而非限制的方式,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息。通信介質(zhì)一般以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。以上的任一種的組合也包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
在此處所提供的說明書中,算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與本發(fā)明的示例一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以任意的組合方式來使用。
此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對(duì)象僅僅表示涉及類似對(duì)象的不同實(shí)例,并且并不意圖暗示這樣被描述的對(duì)象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對(duì)于本發(fā)明的范圍,對(duì)本發(fā)明所做的公開是說明性的而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。