楊耀忠 劉寶軍 段鴻杰 羅 陽 程 鵬
1(勝利油田分公司信息化管理中心 山東 東營 257000)2(中國石油大學(xué)(華東)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 山東 青島 266580)
隨著分布式業(yè)務(wù)的興起,比如VM遷移、MapReduce、數(shù)據(jù)備份等,數(shù)據(jù)中心“東西向”流量大幅增加,數(shù)據(jù)中心網(wǎng)絡(luò)(DCN)流量調(diào)度壓力越來越大。為了避免擁塞,DCN通常在任意兩臺(tái)服務(wù)器之間設(shè)計(jì)有多條路徑來提高帶寬和容錯(cuò)[1],例如Fat-Tree架構(gòu)。但多條路徑之間的調(diào)度問題是一個(gè)很大的挑戰(zhàn),不合適的調(diào)度會(huì)導(dǎo)致?lián)砣蛿?shù)據(jù)包丟失,隨后的重傳會(huì)進(jìn)一步加重?fù)砣虼硕嗦窂降暮侠碚{(diào)度是解決擁塞的關(guān)鍵。
傳統(tǒng)網(wǎng)絡(luò)具有純分布式結(jié)構(gòu),轉(zhuǎn)發(fā)和控制高度耦合在每個(gè)網(wǎng)絡(luò)設(shè)備中,導(dǎo)致針對(duì)性高且復(fù)雜的調(diào)度模式難以在傳統(tǒng)網(wǎng)絡(luò)中部署,數(shù)據(jù)中心也很難根據(jù)網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)調(diào)整策略。
軟件定義網(wǎng)絡(luò)(SDN)是一個(gè)新型的網(wǎng)絡(luò)模型,其核心思想是數(shù)控分離,數(shù)據(jù)平面只負(fù)責(zé)高速轉(zhuǎn)發(fā),其控制功能全部集成在控制平面,控制器是控制平面的核心,管控整個(gè)網(wǎng)絡(luò),可以針對(duì)復(fù)雜場景制定復(fù)雜的流量調(diào)度模型,為數(shù)據(jù)中心流量調(diào)度問題提供了新思路。
數(shù)據(jù)中心網(wǎng)絡(luò)中的流量調(diào)度一直是一個(gè)活躍的研究領(lǐng)域,這個(gè)研究領(lǐng)域已經(jīng)有很多成果。
等價(jià)多路徑路由(ECMP)是一個(gè)基于流的負(fù)載均衡策略,通過計(jì)算五元組的哈希值或輪詢調(diào)度這些路徑轉(zhuǎn)發(fā)數(shù)據(jù),達(dá)到增加帶寬的目的。ECMP不區(qū)分大象流和老鼠流,因此無法為大象流均衡地分配資源。Al-Fares等[2]提出了針對(duì)Fat-Tree拓?fù)涞募惺搅髡{(diào)度程序。一旦流量增長到閾值以上,邊緣交換機(jī)將向控制器發(fā)送包含大象流量信息的通知,控制器負(fù)責(zé)將路徑重新分配給大流量。Hedera[3]是另一種典型的Fat-Tree拓?fù)湎录惺搅髁空{(diào)度系統(tǒng),Hedera在邊緣交換機(jī)處檢測到大象流量,對(duì)大象流使用模擬退火算法進(jìn)行調(diào)度,對(duì)老鼠流使用ECMP進(jìn)行調(diào)度。PIAS[4]是一種DCN流調(diào)度機(jī)制,通過最短作業(yè)優(yōu)先原則和使用優(yōu)先級(jí)隊(duì)列來最小化流完成時(shí)間。這些方案忽略了存儲(chǔ)器占用和數(shù)據(jù)速率,它們是擁塞的重要信號(hào)和流量的特征。同時(shí),其中一些工作著眼于當(dāng)前調(diào)度流程的有效性,這可能導(dǎo)致流量不平衡。
流調(diào)度的另一個(gè)方向是集中在小粒度數(shù)據(jù)的傳輸上。VL2[5]利用VLB和ECMP兩種技術(shù)來提供無熱點(diǎn)的性能。VL2使用VLB實(shí)現(xiàn)負(fù)載均衡,ECMP實(shí)現(xiàn)多路徑傳輸。TinyFlow[6]是一種新穎的大象流調(diào)度方法,通過將大象流分割成老鼠流來改變數(shù)據(jù)中心網(wǎng)絡(luò)的流量特性,使其適合ECMP,并利用ECMP實(shí)現(xiàn)負(fù)載平衡。上述解決方案可能會(huì)導(dǎo)致重新排序問題,盡管有些提案指出通過某些方法進(jìn)行重新排序,但會(huì)導(dǎo)致大量開銷。
考慮到以上解決方案的局限性,我們使用穩(wěn)定匹配理論[7]為數(shù)據(jù)中心中大象流調(diào)度問題建模。然后本文提出一種基于穩(wěn)定匹配的大象流調(diào)度算法TPLM,它可以在數(shù)據(jù)中心中提高設(shè)備資源利用率和網(wǎng)絡(luò)吞吐量。
如圖1所示,K-pod Fat-Tree網(wǎng)絡(luò)分為三個(gè)層次:自下而上分別為邊緣層(edge)、匯聚層(aggregate)和核心層(core),拓?fù)浜?k/2)2個(gè)核心交換機(jī),其中匯聚層交換機(jī)與邊緣層交換機(jī)構(gòu)成一個(gè)pod,每個(gè)pod有k個(gè)匯聚層交換機(jī)。在此網(wǎng)絡(luò)拓?fù)渲校x三種流量調(diào)度模式:pod間流調(diào)度、pod內(nèi)流調(diào)度和機(jī)柜流量調(diào)度。pod間流調(diào)度指不同pod間任何主機(jī)對(duì)之間的通信,由拓?fù)浣Y(jié)構(gòu)可知,pod間流必須經(jīng)過其中核心交換機(jī),所以當(dāng)pod間流到達(dá)時(shí),只需要為其選擇合適的核心交換機(jī),就能確定此流量的最短路徑[8]。機(jī)柜流量調(diào)度指連接在同一交換機(jī)上的任意兩臺(tái)主機(jī)間的通信,因此只有一條傳輸路徑。pod內(nèi)流調(diào)度指同一pod內(nèi)任意兩個(gè)不連接在同一交換機(jī)上的主機(jī)間的通信,同pod間流調(diào)度類似,只需為流分配匯聚交換機(jī)。例如,主機(jī)h1到h2的路徑只有h1-e1-h2;h1到h3的路徑有h1-e1-g1-e2-h3和h1-e1-g2-e2-h3;h1到h5的路徑有四條,分別是h1-e1-g1-c1-g3-e3-h5,h1-e1-g1-c3-g3-e3-h5,h1-e1-g2-c2-g4-e3-h5,h1-e1-g2-c4-g4-e3-h5。

圖1 4-pod Fat-Tree網(wǎng)絡(luò)架構(gòu)
如上述所示,當(dāng)數(shù)據(jù)中心在進(jìn)行流量調(diào)度時(shí),我們的關(guān)注對(duì)象由路徑和流變?yōu)榻粨Q機(jī)和流。
1) 交換機(jī):數(shù)據(jù)中心中的所有交換機(jī),同大多數(shù)商用交換機(jī)一樣,數(shù)據(jù)中心的交換機(jī)通常是共享內(nèi)存式的交換機(jī),即所有交換機(jī)端口共享數(shù)據(jù)包緩沖區(qū)來提高內(nèi)存利用率[9]。以下提到的交換機(jī)均認(rèn)為是共享內(nèi)存式交換機(jī)。圖2為共享內(nèi)存式交換機(jī)的示例。

圖2 共享內(nèi)存式交換機(jī)原理
這組交換機(jī)由S={s1,s2,…,sj}表示,|S|表示交換機(jī)的總數(shù),cj表示交換機(jī)sj的容量。交換容量代表交換機(jī)各接口之間所能進(jìn)行的數(shù)據(jù)交換的最大能力。一定程度上來說,交換機(jī)的容量是一個(gè)單位時(shí)間內(nèi)能接收的數(shù)據(jù)包個(gè)數(shù),因此交換機(jī)的容量與流的傳輸速率有關(guān)。
2) 流:數(shù)據(jù)中心的流量可以分為大象流和老鼠流兩類,根據(jù)以往的研究表明,數(shù)據(jù)中心的流量服從長尾概率分布,大象流數(shù)量只占流總數(shù)的20%,但卻占據(jù)了90%的網(wǎng)絡(luò)流量[9],本文的重點(diǎn)關(guān)注數(shù)據(jù)中心中服務(wù)器之間傳輸?shù)拇笙罅骷稀H鐩]有特殊說明,以下提及的流皆指大象流。
該組流被定義為F={f1,f2,…,fi},|F|表示流的數(shù)量。流具有許多特征,例如生存時(shí)間、數(shù)據(jù)大小和數(shù)據(jù)速率。如上所述,交換機(jī)的容量與流的傳輸速率有關(guān),因此我們注意流的速率特性,并用ri表示流量的速率。這里,ri可以是特定時(shí)間間隔內(nèi)的平均配對(duì)流量速率,并且可以適當(dāng)?shù)卦O(shè)置間隔長度以匹配環(huán)境的動(dòng)態(tài),同時(shí)不響應(yīng)瞬時(shí)流量突發(fā)。這是合理的,許多現(xiàn)有的數(shù)據(jù)中心流量測量的研究表明,流量隨著時(shí)間的推移呈現(xiàn)緩慢變化的現(xiàn)象[10]。

μ(sn)?sn?fmfm∈[F-μ(sn)]
(1)
μ(fm)?fm?snsn∈[S-μ(fm)]
(2)
定義1流的交換機(jī)優(yōu)先級(jí)列表順序由交換機(jī)內(nèi)存大小決定。
流將占用路徑上的交換機(jī)內(nèi)存資源,在一個(gè)時(shí)間單位內(nèi),交換機(jī)接收的總流量速率不能超過交換機(jī)的容量,即cj≥∑ri。為了避免擁塞,流更喜歡具有更大容量的交換機(jī)。所以定義流的交換機(jī)優(yōu)先級(jí)列表P(fi)={s1,s2,…,sj}中交換機(jī)的順序是由交換機(jī)內(nèi)存大小決定的,pod間流優(yōu)先級(jí)列表對(duì)應(yīng)核心交換機(jī),pod內(nèi)流對(duì)應(yīng)匯聚層交換機(jī)。
定義2交換機(jī)的流優(yōu)先級(jí)列表順序由流的傳輸速率決定。
每個(gè)交換機(jī)sj也會(huì)有一個(gè)流優(yōu)先級(jí)列表:P(sj)={f1,f2,…,fi},交換機(jī)優(yōu)先考慮傳輸速率低的流,所以列表中流的順序由通過他們的速率決定。由于每個(gè)交換機(jī)可以接受多個(gè)流,并且為了不超過交換機(jī)的容量,交換機(jī)需要檢測內(nèi)存狀態(tài)。
定義3給定S和F,流-交換機(jī)匹配問題要找的是最佳匹配集合M={(fi,sj)|fi∈P(sj),sj∈P(fi)}。
max |M|
(3)
E(fi,μ(fi))=0
(5)
|μ(fi)|≤1
(6)
式中:j=1,2,…,|S|;i=1,2,…,|F|。
式(4)確保所有交換機(jī)的容量不會(huì)溢出,式(6)確保每個(gè)流最多與一個(gè)交換機(jī)匹配。
由于交換機(jī)的內(nèi)存限制、流的交換機(jī)偏好的存在,可能會(huì)導(dǎo)致pod間流量和pod內(nèi)流量在匹配交換機(jī)的過程中發(fā)生沖突。如圖3所示,在Fat-Tree網(wǎng)絡(luò)中,一個(gè)容量為9的核心交換機(jī)A,匯聚層交換機(jī)B、C的容量分別是10和7,B和C在一個(gè)pod內(nèi)。兩個(gè)大象流a和b,假設(shè)流a是一個(gè)pod間流,其數(shù)據(jù)速率是8;流b是一個(gè)pod內(nèi)流,其數(shù)據(jù)速率是6。流a選擇A作為合適的核心交換機(jī),并途經(jīng)交換機(jī)B轉(zhuǎn)發(fā)到交換機(jī)A。同時(shí),如果同一個(gè)pod內(nèi)的流b選擇交換機(jī)B作為合適的匯聚層交換機(jī),這就導(dǎo)致了交換機(jī)B內(nèi)存溢出。原因在于pod內(nèi)流調(diào)度選擇匯聚層交換機(jī)時(shí)忽略了該匯聚層交換機(jī)是否有足夠的內(nèi)存來傳輸該流,這可能導(dǎo)致交換機(jī)的擁塞或流的重傳。我們稱此為匯聚層交換機(jī)上的pod內(nèi)流和間流沖突。

圖3 匹配沖突示例
為了解決此問題我們需要分別執(zhí)行pod內(nèi)流調(diào)度和pod間流調(diào)度,此外由于沖突的原因是匯聚層交換機(jī)的資源有限,所以在執(zhí)行pod間流調(diào)度時(shí),為流匹配合適的核心交換機(jī),之后根據(jù)資源消耗修改路徑上的匯聚層交換機(jī)的內(nèi)存狀態(tài)。
以上定義了一個(gè)穩(wěn)定匹配問題,G-S算法[11]是求解穩(wěn)定匹配問題的常用算法,但是G-S算法是一對(duì)一的匹配,流-交換機(jī)匹配問題是多對(duì)一的關(guān)系,而且由于交換機(jī)優(yōu)先選擇傳輸速率低的流,流優(yōu)先考慮選擇容量大的交換機(jī),導(dǎo)致網(wǎng)絡(luò)中的很多流或交換機(jī)會(huì)具有相同的優(yōu)先級(jí)列表,會(huì)使得容量大的交換機(jī)非常繁忙,容量小的交換機(jī)非常空閑。因此不能直接應(yīng)用G-S算法到流-交換機(jī)匹配問題中。TPLM算法如算法1所示。
算法1TPLM算入:F,S,C,R。
輸出:最優(yōu)解集合M。
1.計(jì)算得到P(F)、P(S)
2.初始化M為空
3.While(F中存在任意一個(gè)未匹配的流fi)do
4.sj=優(yōu)先級(jí)最高且未拒絕sj的交換機(jī)inP(fi)
5.ifsjis未匹配then
6.M=M∪(fi,sj)
7.elseiffi?sjfksjthen
8.M=M-(fi,sk)
9.M=M∪(fi,sj)
10.else
11.sj拒絕fi
12.endif
13.ifM不在變化&&存在fi未匹配then
14.根據(jù)當(dāng)前匹配結(jié)果M更新C
15.endif
16.endWhile
17.ReturnM
針對(duì)上述問題,本文改進(jìn)G-S算法,提出一種流優(yōu)先層次匹配算法TPLM,流優(yōu)先指流-交換機(jī)匹配的過程中,由流主動(dòng)匹配交換機(jī),交換機(jī)是被匹配方,這樣做的目的是保證交換機(jī)內(nèi)存資源不溢出。層次匹配指,將匹配分為pod間流調(diào)度匹配和pod內(nèi)流調(diào)度匹配兩層,先匹配pod間流,pod間流匹配完成后,更新交換機(jī)剩余內(nèi)存信息再匹配pod內(nèi)流,目的是解決2.3節(jié)描述的匹配沖突問題。
TPLM的算法流程如表1所示,TPLM通過多次迭代匹配得到交換機(jī)和流的一對(duì)多最優(yōu)匹配。定義流選定交換機(jī)的狀態(tài)稱為“延遲接受”。迭代過程如下:
步驟1選擇流集合F中的任意一個(gè)不是“延遲接受”狀態(tài)的流fi,并且請求P(fi)中優(yōu)先級(jí)最高且沒有拒絕過它的交換機(jī)sj作為匹配對(duì)象。
步驟2若交換機(jī)sj已經(jīng)匹配了流fk,則比較P(sj)中fi和fk的優(yōu)先級(jí),若fi的優(yōu)先級(jí)高于fk,則sj拒絕fk接受fi。否則sj拒絕流fi,然后fi按步驟1選擇下一個(gè)交換機(jī)作為匹配對(duì)象,直到匹配成功。
步驟3多次迭代直到“延遲接受”匹配對(duì),sj沒有改變。如果每個(gè)流已經(jīng)處于“延遲接受”狀態(tài),則迭代結(jié)束,并且當(dāng)前流和交換機(jī)匹配結(jié)果是最佳匹配。否則,記錄當(dāng)前匹配結(jié)果,并將當(dāng)前匹配結(jié)果的存儲(chǔ)容量C與其匹配流量的數(shù)據(jù)速率R之間的差值作為新的交換容量C′,轉(zhuǎn)到步驟1。
通過多次迭代,交換機(jī)和流的匹配結(jié)果將呈現(xiàn)“小而多,大而少”的狀態(tài)。即具有大容量的交換機(jī)匹配較多的具有相對(duì)小的數(shù)據(jù)速率的流,小容量的交換機(jī)接收較少的具有數(shù)據(jù)速率相對(duì)大的流,這避免了貪婪的出現(xiàn)并提高了交換機(jī)的利用率。
一般來說,流量負(fù)載均衡專注于將一個(gè)流分配給當(dāng)前的最優(yōu)路徑,但是卻忽略了該路徑繼續(xù)承載其他流時(shí)會(huì)發(fā)生流量碰撞,使得兩個(gè)流的傳輸都受阻。TPLM的思想是為每個(gè)流匹配一條合適的路徑,而不是單個(gè)流轉(zhuǎn)發(fā)的最優(yōu)路徑,這就意味著TPLM為整個(gè)網(wǎng)絡(luò)流調(diào)度找到了全局最優(yōu)解,從而提高了整個(gè)網(wǎng)絡(luò)的性能。
首先執(zhí)行pod間流調(diào)度,得到核心層最優(yōu)匹配。根據(jù)Fat-Tree網(wǎng)絡(luò)架構(gòu)的特點(diǎn),我們根據(jù)源主機(jī)和核心交換機(jī)可以唯一確定一組路徑,從而確定一組匯聚層交換機(jī),通過減去其流經(jīng)的pod間流的傳輸速率來更新匯聚層交換機(jī)的剩余容量,得到最新的剩余內(nèi)存。然后通過算法1進(jìn)行pod內(nèi)流量調(diào)度,最終得到匯聚層最優(yōu)匹配。
考慮到老鼠流對(duì)時(shí)延敏感的特性,對(duì)于老鼠流我們使用時(shí)延最小調(diào)度策略,即老鼠流到達(dá)時(shí),控制器選取當(dāng)前時(shí)延最小的路徑為其路由。
定理1TPLM算法中,所有的流都能匹配到交換機(jī)。
證明隨著迭代次數(shù)的增加,總有一個(gè)時(shí)候所有流都有交換機(jī)與之匹配。因?yàn)榱鲿?huì)根據(jù)自己的交換機(jī)優(yōu)先級(jí)列表排名依次進(jìn)行匹配。假如存在一個(gè)流沒有匹配到交換機(jī),那么這個(gè)流必定是向所有交換機(jī)進(jìn)行請求匹配了。但是交換機(jī)只要被請求一次就一定會(huì)進(jìn)入“延遲接受”狀態(tài),這與存在一個(gè)流沒有匹配到交換機(jī)假設(shè)相悖,所以假設(shè)不成立。該算法一定會(huì)使得所有流都能夠配對(duì)成功。
定理2TPLM所得的匹配一定穩(wěn)定。
證明假設(shè)匹配結(jié)果M中有兩個(gè)匹配對(duì)(f1,s1)、(f2,s2),f1認(rèn)為s2好于s1,s2認(rèn)為f1好于f2。這兩個(gè)匹配的形成是有先后順序的,假設(shè)f1先和s1先匹配,由于f1認(rèn)為s2好于s1,那么f1已經(jīng)向s2請求過了,請求的結(jié)果有兩種:1)s2當(dāng)時(shí)接受了f1。我們可以發(fā)現(xiàn),算法中交換機(jī)一旦接受了某個(gè)流的請求,就一定會(huì)一直處于“延時(shí)接受”狀態(tài),且從交換機(jī)的視角而言,匹配的流只會(huì)越來越好。這與結(jié)果中f2和s2匹配是矛盾的。2) 如果s2當(dāng)時(shí)沒有接受f1的請求,那么s2當(dāng)時(shí)一定有比f1更好的流與之匹配,最后也不會(huì)選擇f2。所以TPLM返回結(jié)果中不存在不穩(wěn)定配對(duì)。
負(fù)載均衡架構(gòu)如圖4所示,主要共包含三個(gè)模塊:Monitor、Statistics Collector、Schedule。

圖4 負(fù)載均衡架構(gòu)
Monitor:該模塊主要負(fù)責(zé)收集流量信息和交換機(jī)信息。流的傳輸速率和交換機(jī)的內(nèi)存信息是匹配過程中最重要的兩部分,這些數(shù)據(jù)必須在數(shù)據(jù)平面獲取。
Statistics Collector:主要負(fù)責(zé)統(tǒng)計(jì)獲取底層網(wǎng)絡(luò)的數(shù)據(jù)信息。統(tǒng)計(jì)收集模塊在控制器中完成,與底層Monitor通信,獲取Monitor收集的流量和交換機(jī)信息,并向Schedule模塊提供接口。
Schedule:該模塊主要的工作是執(zhí)行TPLM算法,得到最優(yōu)匹配后把匹配結(jié)果轉(zhuǎn)化為流表規(guī)則的形式下發(fā)到數(shù)據(jù)平面。
我們在Floodlight控制器上實(shí)現(xiàn)了TPLM,在Mininet上搭建6-pod Fat-Tree網(wǎng)絡(luò)拓?fù)洌抡嬷械钠渌麉?shù)如表1所示。Floodlight控制器和Mininet都運(yùn)行在一臺(tái)裝有Ubuntu 18.04系統(tǒng)的服務(wù)器上。

表1 仿真參數(shù)
本文采用如下三種流量模式:
1) Stride(i):拓?fù)渲兄鳈C(jī)從左向右依次編號(hào),編號(hào)為m的主機(jī)向編號(hào)為(i+m)/n的主機(jī)發(fā)送數(shù)據(jù)。
2) Random(i):拓?fù)渲兄鳈C(jī)從左向右依次編號(hào),每臺(tái)主機(jī)等概率地向任意i臺(tái)主機(jī)發(fā)送數(shù)據(jù)。
3) Staggered Prob(EdgeP,PodP):主機(jī)以概率EdgeP發(fā)送到同一邊緣交換機(jī)中的另一個(gè)主機(jī),并以概率PodP發(fā)送到其相同的pod,并以概率1-EdgeP-PodP發(fā)送到網(wǎng)絡(luò)的其余部分。
我們從平均流完成時(shí)間(FCT)、大象流吞吐量、平均網(wǎng)絡(luò)吞吐量和平均網(wǎng)絡(luò)延遲中比較了TPLM,Hedera和ECMP的三種策略,以證明性能的實(shí)際提高。
圖5顯示了三種調(diào)度策略下不同模式老鼠流的FCT。可以看出,由于老鼠流在機(jī)柜流量的調(diào)度幾乎沒有優(yōu)化空間,因此這三種調(diào)度算法在Stride(1)模式下的區(qū)別并不明顯。隨著系數(shù)i的增加,pod間流傳輸增多,TPLM表現(xiàn)出優(yōu)勢。在Random(i)模式下,隨著參數(shù)的增加,TPLM的優(yōu)勢越來越明顯。圖6顯示了三種調(diào)度策略在不同調(diào)度模式下大象流的FCT。總體而言,TPLM性能最好,而ECMP性能最差。在Stride(i)模式下,TPLM調(diào)度大象流相比調(diào)度老鼠流時(shí)效果更好。在Random(i)模式下,隨著系數(shù)i的增加,TPLM的優(yōu)勢變得越來越明顯。

圖5 老鼠流的平均流完成時(shí)間

圖6 大象流的平均流完成時(shí)間
圖7是在Staggered Prob(0.2,0.3)模式下的三種調(diào)度策略的圖示。網(wǎng)絡(luò)負(fù)載的增大,意味著網(wǎng)絡(luò)中發(fā)生流量碰撞的概率的增大,使得無法做到負(fù)載均衡的調(diào)度策略性能較低。可以看出,隨著網(wǎng)絡(luò)負(fù)載的增加,三種調(diào)度策略下的大象流吞吐量逐漸增加,而增量逐漸減小。與ECMP相比,Hedera和TPLM在高負(fù)載條件下具有顯著提高的吞吐量。由于ECMP是基于五元組來計(jì)算哈希選擇路徑的,因此它不會(huì)考慮可能導(dǎo)致鏈接或交換機(jī)擁塞的負(fù)載情況,從而導(dǎo)致數(shù)據(jù)包丟失。與Hedera相比,TPLM具有優(yōu)勢,由于TPLM預(yù)先匹配了收集到的大象流量,因此不會(huì)由于新大象流量的統(tǒng)計(jì)而導(dǎo)致資源分配不均。圖8顯示了在Staggered Prob(0.2,0.3)模式下,三種負(fù)載均衡策略的全網(wǎng)吞吐量隨網(wǎng)絡(luò)負(fù)載變化的曲線。由于網(wǎng)絡(luò)中的大部分流量都是由大象流貢獻(xiàn)的,因此全網(wǎng)吞吐量曲線和大象流吞吐量變化曲線基本相同。

圖7 大象流的吞吐量隨網(wǎng)絡(luò)負(fù)載變化

圖8 老鼠流的吞吐量隨網(wǎng)絡(luò)負(fù)載變化
圖9是在Staggered Prob(0.2,0.3)模式下平均網(wǎng)絡(luò)時(shí)延隨網(wǎng)絡(luò)負(fù)載變化的曲線,隨著網(wǎng)絡(luò)負(fù)載的增大,TPLM的優(yōu)勢越來越明顯,可以看出,TPLM有效地改善了整個(gè)網(wǎng)絡(luò)的平均延遲。

圖9 網(wǎng)絡(luò)時(shí)延隨網(wǎng)絡(luò)負(fù)載變化
由于將穩(wěn)定匹配應(yīng)用于大象流調(diào)度,這將為數(shù)據(jù)傳輸和網(wǎng)絡(luò)容量均獲得最佳結(jié)果,因此,網(wǎng)絡(luò)吞吐量、FCT、時(shí)延的性能均顯示了TPLM的有效性。
ECMP通過哈希的手段得到流的轉(zhuǎn)發(fā)路徑,由于哈希沖突的存在,哈希在同一路徑上的多個(gè)流會(huì)發(fā)生擁塞,從而增加時(shí)延,減少了網(wǎng)絡(luò)吞吐量。Hedera專注于將一個(gè)流分配到當(dāng)前最佳路徑,卻忽略了該路徑承載多個(gè)流時(shí)的沖突問題,從而使多個(gè)流的傳輸都無法獲得最佳性能。TPLM使用穩(wěn)定匹配理論將所有流分配給適當(dāng)?shù)穆窂剑淦ヅ錂C(jī)制有效地避免了擁塞,從全局的角度調(diào)度流量,為整個(gè)網(wǎng)絡(luò)流調(diào)度找到全局最優(yōu)解。因此,與ECMP和Hedera相比,TPLM具有更好的性能。
本文研究了數(shù)據(jù)中心大象流調(diào)度問題,發(fā)現(xiàn)數(shù)據(jù)中心內(nèi)“東西向”大象流的合理調(diào)度是數(shù)據(jù)中心流量負(fù)載均衡的關(guān)鍵點(diǎn),并應(yīng)用穩(wěn)定匹配理論提出解決方案TPLM,TPLM主要考慮了交換機(jī)和大象流之間的關(guān)系,建立大象流和交換機(jī)的層次匹配模型,TPLM可以有效地避免網(wǎng)絡(luò)擁塞。基于Floodlight和Mininet的實(shí)驗(yàn)結(jié)果表明,大象流的吞吐量和全網(wǎng)吞吐量得到顯著提升,老鼠流的平均流完成時(shí)間在顯著降低。