劉立幫,黃 剛
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210003)
一種多層網(wǎng)絡(luò)下動(dòng)態(tài)負(fù)載均衡算法
劉立幫,黃 剛
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210003)
分布式系統(tǒng)由若干個(gè)獨(dú)立的節(jié)點(diǎn)組成,一些節(jié)點(diǎn)由于接收到大量請(qǐng)求而過(guò)載,還有一些節(jié)點(diǎn)卻負(fù)擔(dān)較少的請(qǐng)求任務(wù)。通過(guò)負(fù)載均衡技術(shù)可以使節(jié)點(diǎn)間的負(fù)載分配更加合理,最大化利用服務(wù)器集群的處理能力,達(dá)到擴(kuò)展服務(wù)器集群的帶寬和增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性的目的。傳統(tǒng)的集中式負(fù)載均衡方案采用靜態(tài)負(fù)載均衡算法,由控制器全權(quán)負(fù)責(zé)任務(wù)分配。它的優(yōu)點(diǎn)是功耗低而且穩(wěn)定性強(qiáng),缺點(diǎn)則是負(fù)載均衡效果不是最佳,總體處理速度較慢,中央控制器節(jié)點(diǎn)由于負(fù)擔(dān)重容易成為系統(tǒng)瓶頸。同時(shí),它的系統(tǒng)擴(kuò)展在大規(guī)模集群中表現(xiàn)差。相比之下完全分布式方案是可擴(kuò)展的,由于所有節(jié)點(diǎn)既是處理節(jié)點(diǎn),也是分發(fā)器,而調(diào)度器只負(fù)責(zé)任務(wù)調(diào)度,從而減輕了控制器的負(fù)擔(dān),避免成為系統(tǒng)瓶頸。提出了一種異構(gòu)分布式計(jì)算系統(tǒng)集群的負(fù)載均衡策略。該算法采集各個(gè)節(jié)點(diǎn)CPU使用率、存儲(chǔ)器使用率兩個(gè)系統(tǒng)參數(shù),以決定各節(jié)點(diǎn)的工作量。同時(shí),設(shè)計(jì)兩層結(jié)構(gòu),解決全局通信負(fù)擔(dān)較重的問(wèn)題。仿真結(jié)果表明,該算法有效提高了負(fù)載均衡的效率。
集群負(fù)載均衡;分布式系統(tǒng);異構(gòu)網(wǎng)絡(luò);節(jié)點(diǎn)虛擬化
隨著用戶需求的增長(zhǎng)和云計(jì)算的日益普及,以及Internet上廣泛的分布式應(yīng)用對(duì)服務(wù)質(zhì)量(QoS)需求的增長(zhǎng),各種服務(wù)應(yīng)用對(duì)網(wǎng)絡(luò)所能提供的QoS提出了更高的要求。與此同時(shí),企業(yè)間的競(jìng)爭(zhēng)也要求服務(wù)提供商能提供更加快速、穩(wěn)定的服務(wù)[1]。通過(guò)負(fù)載均衡(Load Balance)技術(shù)可以使節(jié)點(diǎn)間的負(fù)載分配更加合理,最大化利用服務(wù)器集群的處理能力,達(dá)到擴(kuò)展服務(wù)器集群的帶寬和增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性的目的。服務(wù)器集群通過(guò)負(fù)載均衡技術(shù)可以將大量的數(shù)據(jù)流量和并發(fā)訪問(wèn)均衡分?jǐn)偟蕉鄠€(gè)節(jié)點(diǎn)分別進(jìn)行處理,以減少用戶等待和用戶響應(yīng)時(shí)間,并將單個(gè)負(fù)載較重節(jié)點(diǎn)的運(yùn)算分?jǐn)偟蕉鄠€(gè)節(jié)點(diǎn)進(jìn)行并行處理,最大化地發(fā)揮集群的運(yùn)算和服務(wù)能力。
分布式系統(tǒng)是若干獨(dú)立計(jì)算機(jī)的集合,主要目的是使用戶能夠方便地訪問(wèn)、獲取遠(yuǎn)程資源,這些資源包括計(jì)算機(jī)、存儲(chǔ)設(shè)備、數(shù)據(jù)、文件、Web網(wǎng)頁(yè)以及網(wǎng)絡(luò)。因?yàn)樵谔峁┻@些資源的系統(tǒng)中的服務(wù)節(jié)點(diǎn)存在巨大差異,所以,討論分布式環(huán)境下的負(fù)載均衡問(wèn)題首先要考慮系統(tǒng)中各個(gè)計(jì)算機(jī)之間的差別,以及計(jì)算機(jī)之間通信方式的差別。
進(jìn)一步講,環(huán)境的動(dòng)態(tài)網(wǎng)絡(luò)拓?fù)湟膊⒎枪潭ā_@項(xiàng)工作的重點(diǎn)是設(shè)計(jì)一種考慮分布式環(huán)境的動(dòng)態(tài)、可擴(kuò)展性和異構(gòu)性的負(fù)載均衡算法。
研究人員對(duì)于分布式計(jì)算系統(tǒng)負(fù)載均衡問(wèn)題進(jìn)行了深入研究,對(duì)于該問(wèn)題通常有兩種方法:
(1)靜態(tài)負(fù)載平衡方法。它取決于靜態(tài)信息,例如CPU能力、內(nèi)存性能等來(lái)做出負(fù)載平衡決策。
(2)動(dòng)態(tài)負(fù)載平衡策略[2-3]。該方法嘗試獲取系統(tǒng)的當(dāng)前狀態(tài),并以此為依據(jù)做出決策,因此,能夠進(jìn)一步提高系統(tǒng)性能。
傳統(tǒng)的負(fù)載均衡算法,比如隨機(jī)法、輪轉(zhuǎn)調(diào)度算法[4](Round-Robin scheduling,RR)、最小連接數(shù)法(Least-Connection scheduling,LC)等,也有一些基于這些傳統(tǒng)算法改進(jìn)而來(lái)的算法,這些算法在海量的請(qǐng)求壓力和復(fù)雜的異構(gòu)網(wǎng)絡(luò)環(huán)境下顯得力不從心。
DLB算法被提出[5-12]以監(jiān)視資源利用率,即,CPU、內(nèi)存磁盤(pán)、I/O等,然后計(jì)算它們的加權(quán)作為服務(wù)器的負(fù)載。有研究者在此基礎(chǔ)上引入了反饋,動(dòng)態(tài)調(diào)整每個(gè)資源的權(quán)重;提出了模糊控制理論將服務(wù)器負(fù)載分成不同的層次。但是這些算法仍沒(méi)有解決一個(gè)問(wèn)題:在監(jiān)控的時(shí)間間隔之間,節(jié)點(diǎn)性能發(fā)生改變,而此時(shí)服務(wù)器管理節(jié)點(diǎn)并沒(méi)有及時(shí)獲知,導(dǎo)致請(qǐng)求被優(yōu)先分配到管理節(jié)點(diǎn)認(rèn)為性能較優(yōu)越的服務(wù)器節(jié)點(diǎn)上,因此產(chǎn)生負(fù)載不均的情況。而如果片面縮短DLB算法中的時(shí)間間隔,將會(huì)大大增加系統(tǒng)開(kāi)銷。
傳統(tǒng)的分布式系統(tǒng)模型中的每個(gè)節(jié)點(diǎn)都可以作為一個(gè)發(fā)送器或接收器。一個(gè)節(jié)點(diǎn)作為發(fā)送方,如果當(dāng)時(shí)的工作量級(jí)大于它的容量。然后,嘗試與鄰國(guó)銷售當(dāng)前的負(fù)載平衡其負(fù)載。為了使系統(tǒng)的工作原理有效,每個(gè)節(jié)點(diǎn)需要具備網(wǎng)絡(luò)中所有其他節(jié)點(diǎn)的知識(shí)。這是該系統(tǒng)的最大缺點(diǎn)。發(fā)送器/接收器通過(guò)發(fā)送廣播消息到所有其他節(jié)點(diǎn),并期望一個(gè)響應(yīng)于發(fā)現(xiàn)的節(jié)點(diǎn)。創(chuàng)建時(shí)會(huì)涉及所有節(jié)點(diǎn)一定的通信開(kāi)銷。
為了解決以上問(wèn)題,降低負(fù)載平衡過(guò)程的復(fù)雜性,并兼顧異質(zhì)性和可擴(kuò)展性,文中嘗試使用兩級(jí)策略,以平衡節(jié)點(diǎn)之間的工作量負(fù)載。異構(gòu)系統(tǒng)被劃分為若干個(gè)簇,而每個(gè)簇由若干個(gè)節(jié)點(diǎn)組成。
負(fù)載平衡的一個(gè)重要因素是在負(fù)載均衡算法中使用的負(fù)載指標(biāo)。在DLB算法的基礎(chǔ)上,提出的算法使用節(jié)點(diǎn)的處理器和內(nèi)存利用率、節(jié)點(diǎn)中排隊(duì)的作業(yè)數(shù)量以及節(jié)點(diǎn)的處理能力三元組負(fù)荷指標(biāo)。通過(guò)所使用的負(fù)載量度計(jì)算幾個(gè)現(xiàn)有負(fù)載尺度,提供關(guān)于一個(gè)節(jié)點(diǎn)的負(fù)載的更多信息。
整個(gè)負(fù)載平衡分為兩個(gè)過(guò)程。首先,系統(tǒng)負(fù)載會(huì)以各個(gè)簇的處理能力為標(biāo)準(zhǔn),將作業(yè)均衡分配至各個(gè)簇,簇依據(jù)各個(gè)節(jié)點(diǎn)的處理能力將作業(yè)均衡分配至節(jié)點(diǎn)。當(dāng)系統(tǒng)開(kāi)始處理工作以后,各個(gè)節(jié)點(diǎn)依據(jù)當(dāng)前負(fù)載計(jì)算得出的負(fù)載率,將其傳遞至簇管理節(jié)點(diǎn),并為自己設(shè)定負(fù)載率閾值。如果超出閾值,則重新計(jì)算負(fù)載率向管理節(jié)點(diǎn)反饋。此時(shí)管理節(jié)點(diǎn)為此節(jié)點(diǎn)更新權(quán)值,繼續(xù)分配任務(wù)。如果節(jié)點(diǎn)超載,則在向管理節(jié)點(diǎn)更新權(quán)值的同時(shí)嘗試將作業(yè)分給簇內(nèi)負(fù)載較輕的節(jié)點(diǎn),如果不成功則嘗試向其他簇尋求負(fù)載較輕的節(jié)點(diǎn)。
仿真結(jié)果表明,提出的方法明顯地減少了作業(yè)的平均響應(yīng)時(shí)間。
考慮N個(gè)異質(zhì)節(jié)點(diǎn)P1,P2,…,PN通過(guò)通信網(wǎng)絡(luò)連接。每個(gè)節(jié)點(diǎn)具有一些計(jì)算設(shè)備和本地存儲(chǔ)器。對(duì)于分布式系統(tǒng),假定作業(yè)在任何節(jié)點(diǎn)都按泊松率λi到達(dá)。而作業(yè)的服務(wù)時(shí)間服從指數(shù)分布,即每個(gè)作業(yè)的完成時(shí)間之間沒(méi)有依賴關(guān)系。作業(yè)被假定為獨(dú)立的,可以在任何節(jié)點(diǎn)上執(zhí)行。作業(yè)的連接時(shí)間長(zhǎng)短各異,任務(wù)大小不同,在這里認(rèn)為每一種類型的作業(yè)在所有作業(yè)中的分布是均勻的。因此,每個(gè)節(jié)點(diǎn)作為一個(gè)M/M/1隊(duì)列。節(jié)點(diǎn)接收作業(yè)請(qǐng)求并將其存入緩沖區(qū),按照先來(lái)先服務(wù)的策略完成所有作業(yè)。該模型中的網(wǎng)絡(luò)被組織成多個(gè)小型集群。每個(gè)小型集群都有指定為群集管理器的節(jié)點(diǎn),它負(fù)責(zé)收集集群內(nèi)普通節(jié)點(diǎn)的負(fù)載信息,然后根據(jù)信息為子節(jié)點(diǎn)計(jì)算權(quán)值,并按照權(quán)值為其分配作業(yè)。
當(dāng)某一集群中的節(jié)點(diǎn)出現(xiàn)負(fù)載不均衡時(shí),該節(jié)點(diǎn)向其管理節(jié)點(diǎn)(CM)反饋。CM接收到反饋后,嘗試在本集群中進(jìn)行負(fù)載均衡。而當(dāng)CM發(fā)現(xiàn)本集群中所有節(jié)點(diǎn)均產(chǎn)生過(guò)載時(shí),嘗試向主節(jié)點(diǎn)反饋,并由主節(jié)點(diǎn)進(jìn)行全局負(fù)載均衡。全局平衡是通過(guò)平衡相鄰集群之間的負(fù)載來(lái)實(shí)現(xiàn)。這種結(jié)構(gòu)分散了負(fù)載平衡過(guò)程,盡量減少通信開(kāi)銷,所以它可以擴(kuò)展到大系統(tǒng)。
分層負(fù)載均衡系統(tǒng)模型如圖1所示。
圖1 分層負(fù)載均衡系統(tǒng)模型圖
每個(gè)節(jié)點(diǎn)負(fù)責(zé):
(1)保持自身的工作負(fù)荷信息。
(2)發(fā)送該工作負(fù)載信息到CM。
(3)執(zhí)行負(fù)載均衡通過(guò)其集群管理器的決定。
除了節(jié)點(diǎn)基本功能,CM還負(fù)責(zé):
(1)接收并保存其他提交的工作節(jié)點(diǎn)負(fù)荷信息。
(2)決定何時(shí)啟動(dòng)本地負(fù)載均衡。
(3)向每個(gè)工作節(jié)點(diǎn)發(fā)送負(fù)載均衡決定。
(4)決定發(fā)起全局負(fù)載均衡。
為了進(jìn)行負(fù)載平衡,每個(gè)管理節(jié)點(diǎn)負(fù)責(zé)維護(hù)子節(jié)點(diǎn)信息表。參數(shù)如表1所示。
表1 參數(shù)表
3.1 CLB策略概述
集群中所有節(jié)點(diǎn)獲取自身性能參數(shù)信息,并把信息發(fā)送給CM,CM統(tǒng)計(jì)本組節(jié)點(diǎn)權(quán)值信息,計(jì)算出本組集群節(jié)點(diǎn)剩余權(quán)值信息,并將信息填入節(jié)點(diǎn)信息表。然后,CM按照節(jié)點(diǎn)信息表,將作業(yè)分配至各個(gè)節(jié)點(diǎn)。同時(shí),CM計(jì)算本組節(jié)點(diǎn)負(fù)載均值,并提升10%作為超載閾值。如果有節(jié)點(diǎn)負(fù)載超過(guò)此閾值,則視為此節(jié)點(diǎn)過(guò)載,并啟動(dòng)局部負(fù)載均衡策略,將此節(jié)點(diǎn)作業(yè)轉(zhuǎn)發(fā)至其他非過(guò)載節(jié)點(diǎn)處理。設(shè)定負(fù)載率80%為全局閾值,如果本組所有節(jié)點(diǎn)負(fù)載均超過(guò)80%,則認(rèn)為本組集群過(guò)載,啟動(dòng)全局負(fù)載均衡策略,將本組集群中各節(jié)點(diǎn)的作業(yè)轉(zhuǎn)發(fā)至其他組集群,同時(shí),主節(jié)點(diǎn)減少向本集群轉(zhuǎn)發(fā)作業(yè)。
負(fù)載均衡過(guò)程開(kāi)始從下級(jí)接收負(fù)載更新消息。在Te每個(gè)周期的時(shí)間間隔稱為估計(jì)間隔,每個(gè)處理器Pi系統(tǒng)計(jì)算其負(fù)載信息的參數(shù),然后將信息發(fā)送到集群管理器。
負(fù)載均衡策略包括以下階段:
(1)在每個(gè)Te,每個(gè)節(jié)點(diǎn)獲取自身信息,并發(fā)送負(fù)荷指標(biāo)到集群管理器CM。
(2)CM從本集群中的各個(gè)節(jié)點(diǎn)處接收信息,計(jì)算并產(chǎn)生轉(zhuǎn)發(fā)表。同時(shí),判斷本集群是否處于飽和狀態(tài)。
(3)如果集群已經(jīng)飽和,則CM啟動(dòng)全局負(fù)載均衡。否則檢查穩(wěn)定性標(biāo)準(zhǔn),以確定是否需要本地負(fù)載均衡。
(4)CM啟動(dòng)本地負(fù)載均衡。由CM協(xié)調(diào)集群內(nèi)節(jié)點(diǎn),把作業(yè)從超載節(jié)點(diǎn)轉(zhuǎn)移到欠載節(jié)點(diǎn)。重復(fù)這個(gè)過(guò)程,直到該集群達(dá)到平衡。
3.2 CLB集群負(fù)載均衡過(guò)程
3.2.1 工作節(jié)點(diǎn)性能參數(shù)獲取
節(jié)點(diǎn)的負(fù)載情況在算法中起到至關(guān)重要的作用[13-14]。文中采集各節(jié)點(diǎn)CPU性能、內(nèi)存性能、CPU利用率、內(nèi)存利用率等多項(xiàng)指標(biāo)。其中,CPU性能、內(nèi)存性能指標(biāo)為常量。
(1)CPU處理能力:該算法中,通過(guò)調(diào)用系統(tǒng)接口獲取服務(wù)器的CPU參數(shù),包括核心數(shù)量和主頻等,并為其設(shè)定權(quán)值。用Ci表示,范圍為0~1。
(2)內(nèi)存參數(shù):同樣,獲取計(jì)算機(jī)的物理內(nèi)存和虛擬內(nèi)存的大小,以便設(shè)置內(nèi)存權(quán)值。用Mi表示,范圍為0~1。
(3)節(jié)點(diǎn)的可用性由節(jié)點(diǎn)CPU剩余和內(nèi)存剩余決定,如果節(jié)點(diǎn)的這兩個(gè)指標(biāo)參數(shù)值較高,則反映此節(jié)點(diǎn)是空閑節(jié)點(diǎn),反之,則是繁忙節(jié)點(diǎn)。這里由CPU利用率(CPUrate)和內(nèi)存利用率(Rrate)計(jì)算節(jié)點(diǎn)的性能剩余指標(biāo)W(i)(idle)。
(4)對(duì)任何服務(wù)節(jié)點(diǎn)Pi來(lái)講,假設(shè)所有作業(yè)到達(dá)的時(shí)間間隔服從泊松分布,則節(jié)點(diǎn)總連接數(shù)服從強(qiáng)度為λ的泊松過(guò)程,即單位時(shí)間內(nèi)節(jié)點(diǎn)的連接總數(shù)為λ,也即認(rèn)為每個(gè)作業(yè)到達(dá)時(shí)間間隔為1/λ。節(jié)點(diǎn)響應(yīng)時(shí)間是從節(jié)點(diǎn)接收請(qǐng)求到返回服務(wù)信息所花費(fèi)的總時(shí)間,平均節(jié)點(diǎn)響應(yīng)時(shí)間在衡量節(jié)點(diǎn)負(fù)載時(shí)更有意義。類似的,認(rèn)為在單位時(shí)間內(nèi),節(jié)點(diǎn)響應(yīng)的請(qǐng)求數(shù)μ為節(jié)點(diǎn)響應(yīng)時(shí)間的倒數(shù),即節(jié)點(diǎn)響應(yīng)時(shí)間為1/μ。所有工作被認(rèn)為是獨(dú)立的。
(5)需要采集系統(tǒng)連接數(shù)Na和系統(tǒng)響應(yīng)時(shí)間Tr來(lái)評(píng)價(jià)該算法與其他算法孰優(yōu)孰劣。系統(tǒng)連接數(shù)是在時(shí)刻T時(shí),節(jié)點(diǎn)所建立的連接數(shù),反映節(jié)點(diǎn)當(dāng)前的負(fù)載情況。系統(tǒng)響應(yīng)時(shí)間是從服務(wù)器接收到請(qǐng)求至響應(yīng)請(qǐng)求所花費(fèi)時(shí)間的總量,反映服務(wù)器在處理作業(yè)時(shí)的效率。
3.2.2 工作負(fù)載評(píng)估
在評(píng)估節(jié)點(diǎn)工作負(fù)載時(shí),需要建立權(quán)值衡量函數(shù)模型。對(duì)于在集群中建立節(jié)點(diǎn)服務(wù)器工作負(fù)載的數(shù)學(xué)模型,Watts和Taylor[3]通過(guò)研究證明:使用線性加權(quán)法可以定量描述服務(wù)器負(fù)載量的有效性。故文中采用該方法建立改進(jìn)算法的數(shù)學(xué)模型。
線性加權(quán)法[15]的理論思路是:各個(gè)度量指標(biāo)在總目標(biāo)數(shù)值中所占的重要程度是不同的,那么就可以根據(jù)其各自的重要性分別為它們?cè)O(shè)定系數(shù),并將這些帶有系數(shù)的度量指標(biāo)值相加,最終得到總目標(biāo)的值。這樣,在多個(gè)指標(biāo)共同作用且作用力不同的情況下,得到的目標(biāo)值能夠很好地反映實(shí)際情況。
因此,可以得出改進(jìn)的基于多衡量指標(biāo)的負(fù)載均衡衡量函數(shù):
(1)
其中,ω為權(quán)值系數(shù);f為權(quán)值。
第i臺(tái)服務(wù)器的剩余權(quán)值為:
W(i)(idle)=ω(i)(C)*Ci*CPUidle+ω(i)(R)* Mi*Ridle
(2)
其中,CPUidle是CPU剩余利用率,CPUidle=1-CPUrate;Ridle是內(nèi)存剩余利用率,Ridle=1-Rrate。
3.2.3 集群負(fù)載均衡
在這個(gè)過(guò)程中,CM節(jié)點(diǎn)獲取集群內(nèi)節(jié)點(diǎn)的負(fù)載信息,并根據(jù)節(jié)點(diǎn)性能剩余利用率來(lái)判斷本集群負(fù)載情況。在集群中,有的節(jié)點(diǎn)出現(xiàn)過(guò)載,有點(diǎn)則會(huì)出現(xiàn)欠載的情況,具體可以分為高負(fù)載、中等負(fù)載和欠載。需要將作業(yè)從高負(fù)載節(jié)點(diǎn)轉(zhuǎn)發(fā)至欠載節(jié)點(diǎn)進(jìn)行處理。
3.2.4 全局負(fù)載均衡
在某一集群中會(huì)出現(xiàn)負(fù)載不均衡的情況,同樣的情況在不同的集群間依然不可避免。依照負(fù)載情況,集群可以分為飽和集群(超載集群)、非飽和集群(平均負(fù)載集群和欠載集群)。當(dāng)一個(gè)集群出現(xiàn)飽和的情況時(shí),它嘗試向主節(jié)點(diǎn)報(bào)告狀態(tài),請(qǐng)求減輕負(fù)載。此時(shí),主節(jié)點(diǎn)啟動(dòng)策略,詢問(wèn)各集群管理節(jié)點(diǎn)集群是否飽和,并按照非飽和集群的剩余利用率權(quán)值,將作業(yè)轉(zhuǎn)發(fā)至這些非飽和集群。
為了驗(yàn)證該算法的可行性,搭建了基于WindowsServer2008的虛擬機(jī)集群,并編寫(xiě)程序進(jìn)行模擬實(shí)驗(yàn)。
實(shí)驗(yàn)平臺(tái)環(huán)境由16臺(tái)物理主機(jī)(CPU四核八線程,主頻2.4GHz,內(nèi)存32GB)、2臺(tái)千兆路由器以及若干臺(tái)客戶機(jī)組成。利用這些硬件設(shè)備搭建虛擬機(jī)集群,為了使環(huán)境更貼近實(shí)際,為各個(gè)虛擬機(jī)分配不同的資源,具體見(jiàn)表2。
表2 虛擬機(jī)配置表
在集群中,把性能較優(yōu)秀的虛擬機(jī)設(shè)置為各個(gè)簇的管理節(jié)點(diǎn),其他節(jié)點(diǎn)設(shè)為普通節(jié)點(diǎn)。在模擬程序中,采用VisualStudio開(kāi)發(fā)環(huán)境,C++語(yǔ)言編寫(xiě)代碼,并部署至環(huán)境中。
負(fù)載均衡前后各類型節(jié)點(diǎn)訪問(wèn)量分別如圖2和圖3所示。
圖2 負(fù)載均衡前各類型節(jié)點(diǎn)訪問(wèn)量
圖3 負(fù)載均衡后各類型節(jié)點(diǎn)訪問(wèn)量
在考慮異構(gòu)環(huán)境的情況下,提出了分布式系統(tǒng)兩層結(jié)構(gòu)節(jié)點(diǎn)自適應(yīng)虛擬機(jī)集群系統(tǒng)負(fù)載均衡算法。算法主要通過(guò)節(jié)點(diǎn)權(quán)值和負(fù)載率來(lái)評(píng)估節(jié)點(diǎn)性能,進(jìn)而進(jìn)行資源的合理配置。而當(dāng)請(qǐng)求間差異過(guò)大導(dǎo)致資源分配不均時(shí),該算法能在代價(jià)較小的情況下解決問(wèn)題。
在下一步的工作中,將考慮引入軟件定義網(wǎng)絡(luò)(SDN),嘗試將集群網(wǎng)絡(luò)負(fù)載均衡算法在新的網(wǎng)絡(luò)環(huán)境中進(jìn)行驗(yàn)證。另外,算法在提高整體響應(yīng)速度的同時(shí)并沒(méi)有側(cè)重點(diǎn),對(duì)于單個(gè)請(qǐng)求來(lái)說(shuō),算法給出的響應(yīng)時(shí)間并非最優(yōu)解,將在這方面做進(jìn)一步研究。
[1]YangG.Dynamicload-balancinginiSCSIsystemsbasedonafeedbackcontrolmechanism[C]//Proceedingsofthe2011fifthinternationalconferenceonmanagementofe-commerceande-government.[s.l.]:IEEEComputerSociety,2011:187-192.
[2]SaxenaS,KhanMZ,SinghR.Performanceanalysisindistributedsystemofdynamicloadbalancingusingfuzzylogic[C]//2012springcongressonengineeringandtechnology.[s.l.]:IEEE,2012:1-5.
[3]WattsJ,TaylorS.Apracticalapproachtodynamicloadbalancing[J].IEEETransactionsonParallel&DistributedSystems,1998,9(3):235-248.
[4]ChatterjeeM,SetuaSK.Anewclusteredloadbalancingapproachfordistributedsystems[C]//Thirdinternationalconferenceoncomputer,communication,controlandinformationtechnology.[s.l.]:IEEE,2015:1-7.
[5]ZhangL,LiXP,YuanS.Acontent-baseddynamicload-balancingalgorithmforheterogeneouswebservercluster[J].ComputerScience&InformationSystems,2010,7(1):153-162.
[6] 李 坤.基于動(dòng)態(tài)反饋機(jī)制的服務(wù)器負(fù)載均衡算法研究[J].電子科技,2015,28(9):45-49.
[7]KaurS,SinghJ,KumarK,etal.Round-robinbasedloadbalancinginsoftwaredefinednetworking[C]//2ndinternationalconferenceoncomputingforsustainableglobaldevelopment.[s.l.]:[s.n.],2015.
[8]JainD,JainSC.Loadbalancingreal-timeperiodictaskschedulingalgorithmformultiprocessorenvironment[C]//Internationalconferenceoncircuit,powerandcomputingtechnologies.[s.l.]:IEEE,2015.
[9] 袁 剛.基于服務(wù)分類的預(yù)測(cè)型動(dòng)態(tài)負(fù)載均衡調(diào)度算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(6):96-100.
[10] 楊 洋,楊家海,王 會(huì),等.IP網(wǎng)絡(luò)時(shí)延敏感型業(yè)務(wù)流自適應(yīng)負(fù)載均衡算法[J].通信學(xué)報(bào),2015,36(3):131-141.
[11] 童瑞霞.基于動(dòng)態(tài)反饋機(jī)制的集群負(fù)載均衡算法研究[D].武漢:武漢理工大學(xué),2011.
[12] 馮秀玲.云計(jì)算環(huán)境下的負(fù)載均衡算法的研究與設(shè)計(jì)[D].北京:北京郵電大學(xué),2012.
[13] 葉春森.企業(yè)云計(jì)算服務(wù)的商業(yè)價(jià)值創(chuàng)造研究[D].合肥:合肥工業(yè)大學(xué),2014.
[14] 馬華偉,吳曉莉.云計(jì)算環(huán)境下虛擬機(jī)負(fù)載均衡問(wèn)題研究[J].微電子學(xué)與計(jì)算機(jī),2014,31(4):10-12.
[15] 康承昆,劉曉潔.一種基于多衡量指標(biāo)的HDFS負(fù)載均衡算法[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2014,51(6):1163-1169.
A Dynamic Load Balancing Algorithm in a Multi-level Network
LIU Li-bang,HUANG Gang
(School of Computer,Nanjing University of Posts and Telecommunications,Nanjing 210003,China)
A distributed system consists of several independent nodes,in which some nodes may be overloaded due to massive requests arrivals,and another some are idle without any requests.Load balancing techniques can be used to effectively distribute the load between nodes to reach the purpose of extending bandwidth of server clusters,increasing its throughput,enhancing network data processing capability,improving network flexibility and availability.Traditional centralized load balancing adopts static load balancing algorithm,solely responsible for the tasks assigned by the controller.Its advantage is low power consumption and high stability,and its disadvantage is not the best in the load balancing effect and slow overall processing speed.Due to the heavy burden,the central controller node can easily become a bottleneck.At the same time,its system scalability is poor,with bad performance in large scale cluster.By contrast,a fully distributed solution is scalable,because all nodes are both processing nodes and the dispatcher,while the load scheduler is only task scheduling,thereby reducing the burden on the controller to prevent it from becoming a system bottleneck.A heterogeneous distributed computing systems in the cluster load balancing strategy is proposed.The algorithm requires the CPU usage and memory usage to determine the workload of each node.At the same time,two-level structure is designed to solve the problem of heavier global communications burden.Simulation results show that the algorithm can effectively improve the efficiency of load balancing.
cluster load balancing;distributed systems;heterogeneous network;node utilization
2016-03-30
2016-07-05
時(shí)間:2017-01-10
國(guó)家自然科學(xué)基金資助項(xiàng)目(61171053);南京郵電大學(xué)基金(SG1107)
劉立幫(1988-),男,研究方向?yàn)橛?jì)算機(jī)云計(jì)算與虛擬化應(yīng)用;黃 剛,教授,研究方向?yàn)橛?jì)算機(jī)軟件理論及應(yīng)用。
http://www.cnki.net/kcms/detail/61.1450.TP.20170110.1019.046.html
TP301.6
A
1673-629X(2017)02-0051-05
10.3969/j.issn.1673-629X.2017.02.012