幸福,楊峰,燕霄翔,王文志
中國礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100083
Linux服務(wù)器下多網(wǎng)口負(fù)載均衡算法的研究
幸福,楊峰,燕霄翔,王文志
中國礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100083
近年來,隨著web2.0高速普及和web3.0興起,帶來了大量的數(shù)據(jù)信息和文件資料的產(chǎn)生,從而導(dǎo)致網(wǎng)絡(luò)業(yè)務(wù)數(shù)據(jù)量的急劇提高和多客戶端的訪問量快速增長。在這樣的背景下,網(wǎng)絡(luò)存儲(chǔ)架構(gòu)需要有一個(gè)可靠穩(wěn)定的后端存儲(chǔ)服務(wù)來支撐,因此如何保持網(wǎng)絡(luò)存儲(chǔ)服務(wù)器的高可用性至關(guān)重要。由于單網(wǎng)口網(wǎng)絡(luò)吞吐力有限,成為制約整個(gè)系統(tǒng)性能的瓶頸。如果單靠對網(wǎng)卡硬件升級(jí)來增加網(wǎng)絡(luò)帶寬,其性價(jià)比不高。為實(shí)現(xiàn)這些要求,現(xiàn)在Linux服務(wù)器大多是采用多網(wǎng)卡配置。利用鏈路聚合技術(shù)[1],將服務(wù)器的多個(gè)網(wǎng)口綁定成一個(gè)虛擬網(wǎng)卡能有效提高服務(wù)器的網(wǎng)絡(luò)吞吐率及高可靠性。
由于客戶端對服務(wù)器存取數(shù)據(jù)的需求逐漸增大,網(wǎng)口負(fù)載常常超過它的最大處理能力,網(wǎng)絡(luò)發(fā)生擁塞的可能性越來越大,造成數(shù)據(jù)傳輸速度下降,讀寫性能衰減。如果不對綁定的多網(wǎng)口負(fù)載進(jìn)行有效的控制和在網(wǎng)卡負(fù)載過重時(shí)使網(wǎng)口能及時(shí)恢復(fù)到正常的狀態(tài),就會(huì)造成嚴(yán)重的網(wǎng)絡(luò)擁塞,甚至導(dǎo)致網(wǎng)絡(luò)崩潰。因此,多網(wǎng)口負(fù)載均衡的研究與實(shí)現(xiàn)越來越重要[2]。
Linux的2.4.x以上內(nèi)核Bonding模塊實(shí)現(xiàn)了一個(gè)聚合的方法,它將多個(gè)物理網(wǎng)口聚合為一個(gè)單一虛擬網(wǎng)口,同時(shí)通過六種算法模式來提供負(fù)載均衡和網(wǎng)絡(luò)冗余服務(wù)。由于Linux Bonding技術(shù)的不對稱性[3],對于接收數(shù)據(jù)的負(fù)載均衡只是利用ARP協(xié)商機(jī)制實(shí)現(xiàn),本文針對此算法的研究分析,指出其實(shí)際存在的缺陷不足,提出另外一種在此基礎(chǔ)上改進(jìn)的算法,即基于適應(yīng)性負(fù)載均衡的動(dòng)態(tài)接收算法的實(shí)現(xiàn)方法。并進(jìn)行了實(shí)際測試驗(yàn)證。
表1 Netfilter相關(guān)參數(shù)說明
2.1 負(fù)載均衡技術(shù)
負(fù)載均衡[4]主要思想就是如何根據(jù)某種算法將網(wǎng)絡(luò)的業(yè)務(wù)流量平均分配到不同的服務(wù)器和網(wǎng)絡(luò)設(shè)備上去,以減輕單臺(tái)服務(wù)器和網(wǎng)絡(luò)設(shè)備的負(fù)擔(dān),從而提高整個(gè)系統(tǒng)的效率。
負(fù)載均衡分為靜態(tài)均衡和動(dòng)態(tài)均衡[5]。靜態(tài)均衡通過平均分配任務(wù)給計(jì)算設(shè)備節(jié)點(diǎn),雖然能獲得最優(yōu)負(fù)載均衡結(jié)果。但這種方法要求任務(wù)量必須是確定的值,在現(xiàn)實(shí)網(wǎng)路中任務(wù)量是隨時(shí)間的變化而變化的,很難做到任務(wù)量確定。動(dòng)態(tài)均衡方法通過實(shí)時(shí)分析計(jì)算設(shè)備節(jié)點(diǎn)的負(fù)載狀況和任務(wù)量,選取負(fù)載最輕的節(jié)點(diǎn)提供服務(wù)。
2.2 Linux內(nèi)核Bonding技術(shù)的實(shí)現(xiàn)
Linux的Bonding技術(shù)通過在數(shù)據(jù)鏈路層與網(wǎng)卡驅(qū)動(dòng)層之間實(shí)現(xiàn)一個(gè)虛擬層[6],服務(wù)器接在交換機(jī)上的多個(gè)網(wǎng)口被綁定為一個(gè)虛擬網(wǎng)口,進(jìn)而構(gòu)成一個(gè)虛擬的網(wǎng)卡。服務(wù)器在收發(fā)數(shù)據(jù)時(shí),服務(wù)器上的虛擬網(wǎng)卡接到請求后,根據(jù)某種算法來決定由誰處理數(shù)據(jù)的傳輸。
目前Bonding模塊中已經(jīng)實(shí)現(xiàn)了六種算法[7],即輪轉(zhuǎn)算法(balance-rr)、主備份算法(active-backup)、異或算法(balance-xor)、廣播算法(broadcast)、傳輸負(fù)載均衡算法(balance-tlb)和適應(yīng)性負(fù)載均衡算法(balance-alb),其中前五種算法只能處理發(fā)送數(shù)據(jù)的負(fù)載均衡,最后一種算法能夠處理發(fā)送和接收數(shù)據(jù)的負(fù)載均衡。
2.3 Linux內(nèi)核Netfilter架構(gòu)
Netfilter[8]是Linux內(nèi)核的一個(gè)子系統(tǒng),它的架構(gòu)就是在整個(gè)網(wǎng)絡(luò)流程放置了5個(gè)hook檢測點(diǎn),而在每個(gè)檢測點(diǎn)上登記了一些處理函數(shù)進(jìn)行處理,如數(shù)據(jù)包過濾、數(shù)據(jù)包處理、和基于狀態(tài)的過濾等。Netfilter的關(guān)鍵參數(shù)見表1。
3.1 算法原理的研究
適應(yīng)性負(fù)載均衡算法的原理采用輪換分配Bonding設(shè)備中多個(gè)網(wǎng)口的MAC地址。當(dāng)雙方建立通信時(shí),服務(wù)器端通過發(fā)送ARP廣播報(bào)文通知對端,當(dāng)ARP應(yīng)答從對端到達(dá)時(shí),Bonding驅(qū)動(dòng)把對端的信息從ARP包中復(fù)制并保存下來,并發(fā)起一個(gè)ARP應(yīng)答讓對端的ARP緩存記錄服務(wù)器端本次分配出的網(wǎng)口MAC地址。同時(shí)通過給所有的對端發(fā)送更新(ARP應(yīng)答包)來解決ARP廣播請求帶來的物理網(wǎng)段中的對端ARP緩存記錄覆蓋的問題。ARP應(yīng)答包中包含了服務(wù)器端Bonding設(shè)備分配給所有對端的唯一MAC地址。
3.2 算法性能缺陷的研究
此算法的設(shè)計(jì)只是一種通過預(yù)先靜態(tài)分配網(wǎng)口來實(shí)現(xiàn)接收流量的負(fù)載均衡的算法,但是在實(shí)際的復(fù)雜網(wǎng)絡(luò)環(huán)境下,客戶端機(jī)往往數(shù)量很多。在實(shí)際測試中發(fā)現(xiàn),當(dāng)出現(xiàn)分配到同一MAC地址的客戶端同時(shí)向服務(wù)器寫數(shù)據(jù)時(shí),他們只會(huì)根據(jù)自己本地ARP緩存記錄的服務(wù)器網(wǎng)口MAC地址發(fā)送數(shù)據(jù),而不管此網(wǎng)口負(fù)載情況,這樣就會(huì)造成服務(wù)器Bonding設(shè)備的網(wǎng)口中出現(xiàn)“一忙多閑”的現(xiàn)象。同時(shí)如果對同一網(wǎng)口傳輸?shù)目蛻舳瞬粩嘣黾踊蛘邆鬏敂?shù)據(jù)速度升高,導(dǎo)致此網(wǎng)口負(fù)載加重,超過網(wǎng)口最大傳輸速度,網(wǎng)口內(nèi)的每個(gè)客戶端IP流量的傳輸速度就會(huì)急劇下降,這樣造成網(wǎng)絡(luò)I/O性能的降低,影響服務(wù)器寫性能。
4.1 算法描述實(shí)現(xiàn)
基于適應(yīng)性負(fù)載均衡的動(dòng)態(tài)接收算法的核心原理是:通過Bonding模塊里的鏈路監(jiān)控函數(shù)周期性地監(jiān)控Bonding中的每個(gè)slave網(wǎng)口流量總和,監(jiān)控采用循環(huán)Bonding中的所有網(wǎng)口,通過3 s采樣,即3 s內(nèi)每一秒計(jì)算一次每個(gè)網(wǎng)口流量情況,當(dāng)發(fā)現(xiàn)有某個(gè)網(wǎng)口流量和在3 s內(nèi)有2次超過網(wǎng)口工作最大闕值,就判定此網(wǎng)口高負(fù)載,觸發(fā)調(diào)用調(diào)整策略。調(diào)整策略會(huì)將此網(wǎng)口內(nèi)的所有IP流量分?jǐn)偟绞S郆onding中的其他空閑網(wǎng)口中,使整個(gè)Bonding設(shè)備內(nèi)的多網(wǎng)口實(shí)現(xiàn)接收數(shù)據(jù)負(fù)載均衡。算法主要流程圖如圖1所示。
圖1 適應(yīng)性負(fù)載均衡動(dòng)態(tài)接收算法操作流程
客戶端的信息保存在一個(gè)以IP為哈希鍵的結(jié)構(gòu)體數(shù)組中,將前一秒此客戶端接收到的數(shù)據(jù)長度總和rx_history記錄下來,同時(shí)在鏈路監(jiān)控函數(shù)中每秒獲取一次當(dāng)前客戶端接收到的數(shù)據(jù)長度總和rx_bytes,將兩者相減得到客戶端當(dāng)前時(shí)刻的傳輸速度rx_second。
本算法中的關(guān)鍵參數(shù)說明:
(1)網(wǎng)口闕值??紤]到網(wǎng)卡實(shí)際帶寬的處理能力,設(shè)定網(wǎng)口最大工作能力為理論最大傳輸速度的80%。
(2)3 s采樣。在網(wǎng)絡(luò)流量很大的情況下經(jīng)常會(huì)由于cpu調(diào)度中斷導(dǎo)致當(dāng)前時(shí)刻從網(wǎng)卡驅(qū)動(dòng)到的數(shù)據(jù)為零,因此采用3 s采樣的方法來避免數(shù)據(jù)錯(cuò)誤導(dǎo)致的監(jiān)控失效。
4.2 客戶端IP流量的統(tǒng)計(jì)
客戶端向服務(wù)器傳輸數(shù)據(jù)是基于IP流傳輸,單個(gè)網(wǎng)口高負(fù)載正是由于此網(wǎng)口接收到的IP流增多,傳輸流量總和超過其最大處理能力,導(dǎo)致每個(gè)IP流傳輸速度下降。因此,為了能動(dòng)態(tài)地對負(fù)載網(wǎng)口內(nèi)的所有基于客戶端IP流調(diào)整,需要實(shí)時(shí)獲取每個(gè)客戶端IP流速率,這樣才能實(shí)現(xiàn)動(dòng)態(tài)地將當(dāng)前負(fù)載網(wǎng)口中的IP流量調(diào)整到空閑或者負(fù)載低的其他剩余網(wǎng)口中。為此,在Bonding模塊中加入Netfilter技術(shù)。當(dāng)加載Bonding模塊的算法時(shí),算法初始化函數(shù)在NF_IP_LOCAL_IN點(diǎn)會(huì)注冊一個(gè)鉤子函數(shù),當(dāng)經(jīng)路由查找后送往本機(jī)的數(shù)據(jù)包經(jīng)過此處時(shí)觸發(fā)鉤子函數(shù)。
此鉤子函數(shù)主要功能是:對確定接收為本機(jī)的數(shù)據(jù)包每當(dāng)經(jīng)過此注冊點(diǎn)時(shí),就通過NF_HOOK回調(diào)函數(shù)進(jìn)入此自定義函數(shù),然后將此數(shù)據(jù)包IP頭取出,以源IP地址為哈希key值在客戶端結(jié)構(gòu)體鏈表中查找出Bonding中登記的客戶端信息,當(dāng)查找成功后再通過累加的方式統(tǒng)計(jì)此客戶端接收數(shù)據(jù)包流量總值rx_bytes。函數(shù)返回NF_ACCEPT完成數(shù)據(jù)包的統(tǒng)計(jì)工作。
由于內(nèi)核處理速度很快,此數(shù)據(jù)統(tǒng)計(jì)過程額外的開銷可以忽略不計(jì),不會(huì)對網(wǎng)絡(luò)數(shù)據(jù)傳輸造成影響。
4.3 調(diào)整策略
調(diào)整策略的主要思路是:首先會(huì)從客戶端接收哈希鏈表中查找出此負(fù)載網(wǎng)口中當(dāng)前正在傳輸?shù)腘個(gè)客戶端,由于同一網(wǎng)段網(wǎng)口之間總是會(huì)有流量很小的測試報(bào)文在接收,對網(wǎng)口傳輸性能無影響,基于實(shí)際考慮,定義客戶端數(shù)據(jù)傳輸?shù)淖钚∷俾蕿? KB/s,低于此值的客戶端IP流量全部忽略,不作為調(diào)整的N個(gè)客戶端之內(nèi)。
當(dāng)N為1時(shí),表示此網(wǎng)口中只有一個(gè)客戶端在傳輸數(shù)據(jù),定義這樣的客戶端IP流為單個(gè)大流量,這是不需要調(diào)整出去的;否則將N個(gè)客戶端IP流按當(dāng)前傳輸速度從大到小的順序排序,再循環(huán)這些客戶端IP流,按照選擇最優(yōu)網(wǎng)口原則最大程度地將每個(gè)IP流分配到Bonding中的其他網(wǎng)口上去,分配調(diào)整的方法是通過本機(jī)發(fā)送ARP學(xué)習(xí)更新包,讓客戶端更新自己的ARP緩存表信息。
選擇最優(yōu)網(wǎng)口原則如下:
(1)當(dāng)客戶端中無單個(gè)最大流量時(shí)只循環(huán)N-1次,否則就循環(huán)N次。
(2)當(dāng)客戶端是單個(gè)最大流量時(shí)跳過此客戶端循環(huán)下一個(gè)。
(3)當(dāng)選擇最優(yōu)網(wǎng)口時(shí)不滿足以下3點(diǎn),跳過此客戶端循環(huán)下一個(gè):
①最優(yōu)網(wǎng)口為當(dāng)前負(fù)載最輕的網(wǎng)口;
②客戶端IP流分配到新的網(wǎng)口后不會(huì)造成最優(yōu)網(wǎng)口超過負(fù)載閥值;
③客戶端IP流的速度小于高負(fù)載的網(wǎng)口與最優(yōu)網(wǎng)口流量總和差值;
(4)當(dāng)選擇的最優(yōu)網(wǎng)口等于高負(fù)載的網(wǎng)口時(shí),立即終止循環(huán)。
4.4 算法復(fù)雜度分析
新算法主要增加了周期性監(jiān)控所有Bonding網(wǎng)口,客戶端IP流量統(tǒng)計(jì)和動(dòng)態(tài)調(diào)整負(fù)載網(wǎng)口3個(gè)模塊。
周期性監(jiān)控模塊中每秒更新所有客戶端的流量信息,查找客戶端時(shí)間復(fù)雜度為O(n)。
客戶端IP流量統(tǒng)計(jì)只是對單一數(shù)據(jù)包處理,其時(shí)間復(fù)雜度為O(1)。
檢查所有網(wǎng)口的時(shí)間復(fù)雜度為O(n)。當(dāng)觸發(fā)調(diào)整函數(shù)后,篩選出需要調(diào)整的客戶端,時(shí)間復(fù)雜度為O(n),然后會(huì)對需要調(diào)整的客戶端根據(jù)IP流速率大小排序,排序算法采用快速排序,時(shí)間復(fù)雜度為O(nlbn),最后將排好序的IP流遷移到最優(yōu)網(wǎng)口,時(shí)間復(fù)雜度為O(n)。新算法時(shí)間復(fù)雜度為Ο(n+1+n(n+nlbn+n))=Ο(n2(2+lbn)+n+1)=Ο(n2lbn)。
受硬件的制約,單臺(tái)服務(wù)器能夠支持的網(wǎng)卡數(shù)量有限,目前市場上的高性能存儲(chǔ)服務(wù)器最多也只能支持20個(gè)網(wǎng)口,而內(nèi)核Bonding模塊最大支持客戶端數(shù)為256。按照上面的時(shí)間復(fù)雜度公式,該算法在每次監(jiān)控網(wǎng)口時(shí)最多執(zhí)行次數(shù)為20+1+20×(256+256×lb256+256)=51 221次。在面對網(wǎng)路數(shù)據(jù)傳輸高負(fù)荷的情況下,該算法執(zhí)行效率很高。
為了驗(yàn)證算法性能,在此給出在Bonding模塊實(shí)現(xiàn)階段對改進(jìn)算法的測試實(shí)驗(yàn)結(jié)果,通過搭建的模擬復(fù)雜環(huán)境對改進(jìn)前后的算法進(jìn)行流量測試。需要先將修改的Bonding模塊內(nèi)核編譯,執(zhí)行加載命令:modprobe bonding mode= 6 miimon=100,加載修改后的bonding模塊,調(diào)度算法為適應(yīng)性動(dòng)態(tài)接收算法。
測試軟件環(huán)境:SUSE Linux11(內(nèi)核2.6.27.19)。
測試硬件環(huán)境:一臺(tái)服務(wù)器S(2塊支持MII狀態(tài)字寄存器的千兆網(wǎng)卡,每個(gè)網(wǎng)卡上有一個(gè)網(wǎng)口,即eth0和eth1);一臺(tái)千兆交換機(jī);4臺(tái)客戶機(jī)(千兆網(wǎng)卡)C1,C2,C3,C4;服務(wù)器和客戶機(jī)與交換機(jī)相連。
測試軟件:Netperf。Netperf是一種網(wǎng)絡(luò)性能的測量工具,可以模擬出需要的傳輸速度來進(jìn)行實(shí)驗(yàn)。
測試步驟:首先服務(wù)器S按上面的命令加載Bonding模塊,接著通過修改服務(wù)器/ete/sysconfig/network-script下的網(wǎng)口配置文件將2個(gè)網(wǎng)口綁定成一個(gè)虛擬網(wǎng)口Bond1,然后讓C1~C4客戶機(jī)與服務(wù)器通信,查看客戶機(jī)ARP緩存表信息可知,C1和C3記錄S網(wǎng)口0的MAC地址,C2和C4記錄S網(wǎng)口1的MAC地址。接著進(jìn)行3次模擬測試,第一次C1向服務(wù)器發(fā)送文件,第二次C3向服務(wù)器發(fā)送文件,第三次C1和C3同時(shí)向服務(wù)器發(fā)送文件。測試結(jié)果見表2。
表2 測試結(jié)果
根據(jù)以上實(shí)驗(yàn)結(jié)果得知:當(dāng)同時(shí)有多個(gè)客戶機(jī)向服務(wù)器發(fā)送數(shù)據(jù)時(shí),適應(yīng)性負(fù)載均衡算法不會(huì)根據(jù)網(wǎng)口負(fù)載情況作出相應(yīng)調(diào)整,導(dǎo)致網(wǎng)口eth0滿負(fù)荷工作,而網(wǎng)口eth1卻空閑沒得到利用,實(shí)際吞吐率僅為112.7 Mb/s,負(fù)載均衡失效。而改進(jìn)的適應(yīng)性動(dòng)態(tài)接收算法會(huì)根據(jù)網(wǎng)口實(shí)際負(fù)載情況,當(dāng)發(fā)現(xiàn)網(wǎng)口高負(fù)荷后,實(shí)時(shí)動(dòng)態(tài)地調(diào)整客戶端的傳輸通道,吞吐率達(dá)到161.6 Mb/s,新算法比原算法吞吐率提高43%。新算法大大提高了服務(wù)器網(wǎng)絡(luò)吞吐量和網(wǎng)口利用率,實(shí)現(xiàn)多網(wǎng)口動(dòng)態(tài)負(fù)載均衡。
本文針對Linux Bonding模式6下會(huì)出現(xiàn)寫性能下降的問題,通過對該算法進(jìn)行研究介紹,分析其存在的缺陷不足,并詳細(xì)描述了基于適應(yīng)性負(fù)載均衡的動(dòng)態(tài)接收算法的實(shí)現(xiàn)流程和關(guān)鍵技術(shù),最后通過實(shí)際測試對新算法性能進(jìn)行驗(yàn)證。該算法能高效處理復(fù)雜網(wǎng)絡(luò)環(huán)境下多網(wǎng)口服務(wù)器接收數(shù)據(jù)負(fù)載均衡的問題。然而目前Bonding技術(shù)只能通過ARP協(xié)商機(jī)制來實(shí)現(xiàn)接收負(fù)載均衡,這要求客戶端必須在同一物理網(wǎng)段,因此有必要進(jìn)一步研究和改進(jìn)。
[1]胡修林,王運(yùn)鵬,郭輝.多網(wǎng)卡鏈路綁定策略的研究與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2005(2).
[2]Zhang Wensong,Jin Shiyao,Wu Quanyuan.Linux director:a connection router for scalable internet services[J].Journal of Computer Science&Technology,2000,15(6):560-571.
[3]石磊.多網(wǎng)卡bonding技術(shù)的研究與實(shí)現(xiàn)[D].長沙:國防科技大學(xué),2005.
[4]路明懷,龔正虎.Linux服務(wù)器下多網(wǎng)卡負(fù)載均衡的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與信息技術(shù),2006(6).
[5]羅擁軍,李曉樂,孫如祥.負(fù)載均衡算法綜述[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2008(18).
[6]毛德操,胡希明.LINUX內(nèi)核源代碼情景分析[M].杭州:浙江大學(xué)出版社,2006.
[7]Davis T.Linux Ethernet bonding driver HOWTO[EB/OL]. [2011-12-10].http://www.kernel.org/doc/Documentation/networking/bonding.txt.
[8]劉建峰,潘軍,李祥和.Linux防火墻內(nèi)核中Netfilter和Iptables的分析[J].微計(jì)算機(jī)信息,2006,22(3):7-8.
XING Fu,YANG Feng,YAN Xiaoxiang,WANG Wenzhi
Department of Computer Science and Technology,School of Mechanical Electronic&Information Engineering,China University of Mining and Technology(Beijing),Beijing 100083,China
Network storage architecture requires a high reliability and high availability back-end storage server to provide network storage services,but the single Ethernet port configuration restricts the server data transfer performance.Linux kernel bonding technology has realized multiple physical network ports aggregate to a single virtual network port.But when receiving data,this technology just through the ARP consultation mechanism realizes statically distributing multiple network port,therefore performance defects exist in the practical.In view of this,after researching related technology and algorithm,this paper puts forward another improved algorithm,which is based on adaptive load balance dynamic receiving algorithm,and realizes this algorithm by netfilter technology and so on.The actual test verification is done.The new algorithm can significantly improve the multiple network port server transfer throughput rate while receiving data.
Linux bonding;load balancing;Address Resolution Protocol(ARP);netfilter
網(wǎng)絡(luò)存儲(chǔ)架構(gòu)需要一個(gè)高可靠性和高可用性的后端存儲(chǔ)服務(wù)器來提供網(wǎng)絡(luò)存儲(chǔ)服務(wù),而單網(wǎng)口配置制約了服務(wù)器數(shù)據(jù)傳輸性能。目前Linux內(nèi)核bonding技術(shù)已經(jīng)實(shí)現(xiàn)了將多個(gè)物理網(wǎng)口聚合為一個(gè)單一虛擬網(wǎng)口的方法。但這種不對稱的技術(shù)在實(shí)現(xiàn)接收數(shù)據(jù)負(fù)載均衡時(shí),只是通過ARP協(xié)商機(jī)制實(shí)現(xiàn)靜態(tài)分配多網(wǎng)口,因此在實(shí)際應(yīng)用中存在性能上的缺陷。鑒于此,在對現(xiàn)有的相關(guān)技術(shù)和算法進(jìn)行研究后,提出了另外一種在此基礎(chǔ)上改進(jìn)的算法,即基于適應(yīng)性負(fù)載均衡的動(dòng)態(tài)接收算法,利用netfilter等技術(shù)對此算法進(jìn)行了實(shí)現(xiàn),進(jìn)行了實(shí)際測試驗(yàn)證。新算法能顯著提高多網(wǎng)口服務(wù)器接收數(shù)據(jù)時(shí)網(wǎng)絡(luò)傳輸吞吐率。
Linux bonding;負(fù)載均衡;地址解析協(xié)議;netfilter
A
TP316.81
10.3778/j.issn.1002-8331.1202-0265
XING Fu,YANG Feng,YAN Xiaoxiang,et al.Research of Linux server multiple Ethernet ports load balancing algorithm. Computer Engineering and Applications,2013,49(24):93-96.
國家自然基金儀器專項(xiàng)(No.50927805);十二五國家科技支撐計(jì)劃(No.2011BAK06B01,No.2011BAD04B05)。
幸福(1986—),男,碩士研究生,研究領(lǐng)域?yàn)橛?jì)算機(jī)信息處理和計(jì)算機(jī)網(wǎng)絡(luò);楊峰,男,教授;燕霄翔,男,碩士研究生;王文志,男,碩士研究生。E-mail:xingfudage1986@126.com
2012-02-15
2012-04-23
1002-8331(2013)24-0093-04
CNKI出版日期:2012-06-15http://www.cnki.net/kcms/detail/11.2127.TP.20120615.1726.033.html