欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于同向流的調(diào)度方法和服務(wù)器與流程

文檔序號(hào):11156408閱讀:512來源:國(guó)知局
基于同向流的調(diào)度方法和服務(wù)器與制造工藝

本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于同向流的調(diào)度方法和一種服務(wù)器。



背景技術(shù):

不同于傳統(tǒng)的流抽象,coflow(同向流)捕捉在連續(xù)的計(jì)算階段中兩組機(jī)器之間的網(wǎng)絡(luò)流的集合,其中通信階段在所有流都完成后才結(jié)束。同向流(coflow)也可以簡(jiǎn)單定義為由同一個(gè)計(jì)算任務(wù)產(chǎn)生的網(wǎng)絡(luò)流量。越來越多的文獻(xiàn)證明利用使用同向流(coflow)的應(yīng)用級(jí)別需求可以顯著改善并行數(shù)據(jù)集群中應(yīng)用級(jí)別的通信效果。

同向流的注解或者識(shí)別不能保證100%的準(zhǔn)確度,同向流的注解/識(shí)別過程有時(shí)會(huì)錯(cuò)誤地將一個(gè)網(wǎng)絡(luò)流應(yīng)該屬于的同向流識(shí)別為另一個(gè)同向流。而現(xiàn)有的同向流調(diào)度算法對(duì)這種錯(cuò)誤又都是極其敏感的。一旦出現(xiàn)錯(cuò)誤就會(huì)造成嚴(yán)重的影響。一個(gè)被錯(cuò)誤歸類的網(wǎng)絡(luò)流可明顯地影響其父親同向流的CCT(Coflow Completion Time,同向流完成時(shí)間)。

為了評(píng)估由于識(shí)別錯(cuò)誤而造成的影響,可以根據(jù)調(diào)度時(shí)間將所述被錯(cuò)誤識(shí)別的網(wǎng)絡(luò)流分為兩類。

第一類稱為先驅(qū)者(pioneers),指那些由于錯(cuò)誤識(shí)別而造成其調(diào)度時(shí)間早于其父親同向流的網(wǎng)絡(luò)流。

第二類稱為掉隊(duì)者(stragglers),指那些由于錯(cuò)誤識(shí)別而造成其調(diào)度時(shí)間晚于其父親同向流的網(wǎng)絡(luò)流。

這兩類網(wǎng)絡(luò)流對(duì)平均CCT(Coflow Completion Time,同向流完成時(shí)間)的影響是不同的。參見圖1,兩個(gè)一樣的同向流C1(顏色較淺)和C2(顏色較深),共用同樣的瓶頸鏈路,并且同時(shí)到達(dá)。每個(gè)同向流包含10個(gè)相同的網(wǎng)絡(luò)流。進(jìn)一步假設(shè)給C1分配更高級(jí)別的優(yōu)先級(jí),每個(gè)同向流都需要1個(gè) 單位時(shí)間才能完成。在沒有識(shí)別錯(cuò)誤的時(shí)候,可以得到最優(yōu)CCT為1.5個(gè)單位時(shí)間。

然而,參見圖1a,一個(gè)先驅(qū)者的出現(xiàn)會(huì)造成C1的CCT增加10%,并且平均CCT也會(huì)增加3%(平均CCT為1.55個(gè)時(shí)間單位)。而一個(gè)掉隊(duì)者的出現(xiàn)造成的影響更大,參見圖1b,幾乎加倍了C1的CCT,并且導(dǎo)致平均CCT增加33%(平均CCT為2個(gè)時(shí)間單位)。由此可以得到一個(gè)結(jié)論:相比于先驅(qū)者,掉隊(duì)者對(duì)平均CCT的影響更大。

為了更高效地調(diào)度,很多現(xiàn)有的同向流調(diào)度算法都假設(shè)預(yù)先知道同向流信息。然而,這些算法在出現(xiàn)識(shí)別錯(cuò)誤時(shí)都變得非常不高效。

考慮MADD(Minimum-Allocation-for-Desired-Duration,期望持續(xù)時(shí)間的最小資源分配),該最優(yōu)算法用于網(wǎng)絡(luò)流大小已知的同向流內(nèi)部的調(diào)度。MADD算法改變一個(gè)同向流內(nèi)部各網(wǎng)絡(luò)流的速率,令所有網(wǎng)絡(luò)流在最長(zhǎng)的網(wǎng)絡(luò)流完成時(shí)完成。由于使用MADD所有網(wǎng)絡(luò)流都同時(shí)完成,因此一個(gè)錯(cuò)誤識(shí)別的網(wǎng)絡(luò)流(特別是一個(gè)掉隊(duì)者)將會(huì)嚴(yán)重地影響CCT(參見圖1b)。

與上述算法不同,Aalo使用D-CLAS(Discretized Coflow-Aware Least-attained Service,離散化的同向流知曉最少獲得服務(wù))。它將同向流分為具有不同優(yōu)先級(jí)的隊(duì)列,并按照FIFO(First Input First Output,先入先出)的順序在每個(gè)隊(duì)列中進(jìn)行調(diào)度,從而不需要預(yù)先知道網(wǎng)絡(luò)流的大小就可以減小平均CCT。然而,Aalo在有識(shí)別錯(cuò)誤出現(xiàn)時(shí)表現(xiàn)地更加糟糕。這是由于被錯(cuò)誤識(shí)別的網(wǎng)絡(luò)流可能會(huì)掉入低優(yōu)先級(jí)的大同向流中,然后成為一個(gè)超級(jí)掉隊(duì)者,參見圖2。圖2所示并非個(gè)例。由于占17%的大同向流產(chǎn)生了99%的網(wǎng)絡(luò)流量,于是在占83%的小同向流中的網(wǎng)絡(luò)流是很容易被錯(cuò)誤識(shí)別到大同向流中,從而影響性能。

因此我們需要一種具有容錯(cuò)能力的同向流調(diào)度方法。所述同向流調(diào)度方法要能在有個(gè)別識(shí)別錯(cuò)誤時(shí)依然保持穩(wěn)健。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種網(wǎng)絡(luò)流調(diào)度方法,可以減少掉隊(duì)者的數(shù)量。

為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種基于同向流的調(diào)度方法,包括:

步驟1:依據(jù)預(yù)定條件對(duì)各同向流進(jìn)行擴(kuò)展獲得相應(yīng)的擴(kuò)展同向流,所述擴(kuò)展同向流中至少有兩個(gè)擴(kuò)展同向流包含相同的網(wǎng)絡(luò)流;

步驟3:對(duì)所述擴(kuò)展同向流進(jìn)行優(yōu)先級(jí)排序;

其特征在于,

步驟4:按照排序后的擴(kuò)展同向流的順序執(zhí)行調(diào)度,其中,包含于多個(gè)擴(kuò)展同向流的網(wǎng)絡(luò)流在隨所述多個(gè)擴(kuò)展同向流中優(yōu)先級(jí)最高的擴(kuò)展同向流調(diào)度之后不再隨所述多個(gè)擴(kuò)展同向流中其他的擴(kuò)展同向流調(diào)度。

進(jìn)一步地,在步驟1之后還包括:

步驟2:對(duì)所述擴(kuò)展同向流內(nèi)部的各網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。

進(jìn)一步地,所述步驟3進(jìn)一步包括:按照先入先出算法對(duì)所述擴(kuò)展同向流進(jìn)行優(yōu)先級(jí)排序。

進(jìn)一步地,所述步驟2進(jìn)一步包括:按照最小優(yōu)先啟發(fā)法對(duì)所述擴(kuò)展同向流內(nèi)部的各個(gè)網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。

進(jìn)一步地,所述最小優(yōu)先啟發(fā)法進(jìn)一步包括:

在網(wǎng)絡(luò)流隊(duì)列之間使用多級(jí)反饋調(diào)度,對(duì)網(wǎng)絡(luò)流隊(duì)列中的各個(gè)網(wǎng)絡(luò)流按照最大-最小公平的策略分配帶寬。

相應(yīng)地,本發(fā)明還提供一種服務(wù)器,所述服務(wù)器包括:

擴(kuò)展模塊,用于依據(jù)預(yù)定條件對(duì)各同向流進(jìn)行擴(kuò)展,獲得相應(yīng)的擴(kuò)展同向流,所述擴(kuò)展同向流中至少有兩個(gè)擴(kuò)展同向流包含相同的網(wǎng)絡(luò)流;

排序模塊,用于對(duì)所述擴(kuò)展同向流進(jìn)行優(yōu)先級(jí)排序;

執(zhí)行模塊,用于按照排序后的擴(kuò)展同向流的順序執(zhí)行調(diào)度,其中,包含于多個(gè)擴(kuò)展同向流的網(wǎng)絡(luò)流在隨所述多個(gè)擴(kuò)展同向流中優(yōu)先級(jí)最高的擴(kuò)展同向流調(diào)度之后不再隨所述多個(gè)擴(kuò)展同向流中其他的擴(kuò)展同向流調(diào)度。

進(jìn)一步地,所述排序模塊還用于在對(duì)各擴(kuò)展同向流進(jìn)行優(yōu)先級(jí)排序之前對(duì)所述擴(kuò)展同向流內(nèi)部的各網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。

進(jìn)一步地,所述排序模塊按照先入先出算法對(duì)所述擴(kuò)展同向流進(jìn)行排序。

進(jìn)一步地,所述排序模塊按照最小優(yōu)先啟發(fā)法對(duì)所述擴(kuò)展同向流內(nèi)部的各個(gè)網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。

進(jìn)一步地,所述排序模塊在網(wǎng)絡(luò)流隊(duì)列之間使用多級(jí)反饋隊(duì)列調(diào)度,對(duì)網(wǎng)絡(luò)流隊(duì)列中的各個(gè)網(wǎng)絡(luò)流按照最大-最小公平的策略分配帶寬。

實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:

(1)減少掉隊(duì)者的數(shù)量;

(2)不需要先驗(yàn)知識(shí);

(3)改善CCT。

附圖說明

圖1(a)是由于先驅(qū)者而造成的影響的示意圖;

圖1(b)是由于掉隊(duì)者而造成的影響的示意圖;

圖2是現(xiàn)有技術(shù)Aalo在發(fā)生識(shí)別錯(cuò)誤時(shí)的示意圖;

圖3是本發(fā)明調(diào)度方法的一個(gè)實(shí)施例的示意圖;

圖4是本發(fā)明調(diào)度方法的另一個(gè)實(shí)施例的示意圖;

圖5是本發(fā)明服務(wù)器的一個(gè)實(shí)施例的示意圖;

圖6是位于多個(gè)同向流之間的網(wǎng)絡(luò)流容易被錯(cuò)誤識(shí)別的示意圖;

圖7(a)是本發(fā)明后期綁定策略的示意圖;

圖7(b)是本發(fā)明同向流內(nèi)部?jī)?yōu)先級(jí)排序策略的示意圖;

圖8是工作負(fù)載的一些與時(shí)間相關(guān)的特征的示意圖;

圖9是本發(fā)明與每流平均共享、Aalo算法在CCT和JCT方面的比較示意圖;

圖10(a)是有關(guān)本發(fā)明伸縮性的仿真結(jié)果示意圖;

圖10(b)是有關(guān)協(xié)調(diào)周期的影響的仿真結(jié)果示意圖;

圖11(a)是有關(guān)本發(fā)明在正常工作負(fù)載下的標(biāo)準(zhǔn)化CCT的仿真示意圖;

圖11(b)是有關(guān)本發(fā)明在正常工作負(fù)載下的CCT分布仿真示意圖;

圖12(a)是有關(guān)本發(fā)明在成批到達(dá)場(chǎng)景下的仿真示意圖(Hadoop);

圖12(b)是有關(guān)本發(fā)明在展開到達(dá)場(chǎng)景下的仿真示意圖;

圖13(a)是有關(guān)本發(fā)明在成批到達(dá)場(chǎng)景下的效果的仿真示意圖;

圖13(b)是有關(guān)本發(fā)明在展開到達(dá)場(chǎng)景下的效果的仿真示意圖;

圖14是有關(guān)本發(fā)明后期綁定策略在展開到達(dá)場(chǎng)景下的效果的仿真示意圖;

圖15(a)是有關(guān)本發(fā)明同向流內(nèi)部?jī)?yōu)先級(jí)排序在成批到達(dá)場(chǎng)景下的效果的仿真示意圖(Hadoop);

圖15(b)是有關(guān)本發(fā)明同向流內(nèi)部?jī)?yōu)先級(jí)排序在展開到達(dá)場(chǎng)景下的效果的仿真示意圖;

圖16是本發(fā)明另一實(shí)施例的軟件框架示意圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。

如圖3所示,為本發(fā)明一個(gè)實(shí)施例。在該實(shí)施例中,本發(fā)明一種基于網(wǎng)絡(luò)流的調(diào)度方法包括:

S1:依據(jù)預(yù)定條件對(duì)各同向流進(jìn)行擴(kuò)展獲得相應(yīng)的擴(kuò)展同向流,所述擴(kuò)展同向流中至少有兩個(gè)擴(kuò)展同向流包含相同的網(wǎng)絡(luò)流;

S3:對(duì)所述擴(kuò)展同向流進(jìn)行優(yōu)先級(jí)排序;

S4:按照排序后的擴(kuò)展同向流的順序執(zhí)行調(diào)度,其中,包含于多個(gè)擴(kuò)展同向流的網(wǎng)絡(luò)流在隨所述多個(gè)擴(kuò)展同向流中優(yōu)先級(jí)最高的擴(kuò)展同向流調(diào)度之后不再隨所述多個(gè)擴(kuò)展同向流中其他的擴(kuò)展同向流調(diào)度。

正如之前所討論的,一個(gè)具有容錯(cuò)能力的調(diào)度方法的關(guān)鍵點(diǎn)在于避免掉隊(duì)者。為了減少掉隊(duì)者的數(shù)量,本發(fā)明采取后期綁定的策略。舉例來說,假如有一個(gè)網(wǎng)絡(luò)流它即可以被分為同向流C1也可以被分為同向流C2,換句話說,所述網(wǎng)絡(luò)流是聚類過程中處于C1和C2的邊界處(參考圖6)。此時(shí)本發(fā)明不是強(qiáng)制為所述網(wǎng)絡(luò)流指定C1或C2中的一個(gè),而是暫時(shí)先不做出決定,直到真的要調(diào)度時(shí),再將所述網(wǎng)絡(luò)流分配給C1和C2中優(yōu)先級(jí)高的同向流。這樣的話,無論所述網(wǎng)絡(luò)流是屬于C1還是C2都不會(huì)成為一個(gè)掉隊(duì)者。

這樣做會(huì)造成兩點(diǎn)影響。首先,最壞的情況下,也就是說初始的分類是正確的,那么這么做會(huì)引進(jìn)了一個(gè)先驅(qū)者。其次,如果初始的分類是錯(cuò)的,那么這么做可以有效地阻止一個(gè)網(wǎng)絡(luò)流成為掉隊(duì)者。為了不讓所有的網(wǎng)絡(luò)流都成為先驅(qū)者,本發(fā)明只處理那些處于兩個(gè)同向流之間的網(wǎng)絡(luò)流。

參考圖2和圖7a,不是生成C1的掉隊(duì)者,而是引入C2的先驅(qū)者,從而減小了平均CCT。通過本申請(qǐng)后面段落的介紹可以知道通過后期綁定本發(fā)明可以在有識(shí)別錯(cuò)誤的情況下依舊改善CCT至少10%,降低由于識(shí)別錯(cuò)誤導(dǎo)致的減速至少30%。

總之,本發(fā)明實(shí)施例通過將一個(gè)網(wǎng)絡(luò)流分配給多個(gè)擴(kuò)展同向流,再在調(diào)度過程中使所述分配至多個(gè)擴(kuò)展同向流的網(wǎng)絡(luò)流僅隨優(yōu)先級(jí)最高的擴(kuò)展同向流調(diào)度,可以在不需要先驗(yàn)知識(shí)的情況下有效減少掉隊(duì)者的數(shù)量,從而減小平均CCT。

如圖4所示,在本發(fā)明的另一個(gè)實(shí)施例中,步驟S1之后,步驟S3之前,還包括步驟S2:對(duì)所述擴(kuò)展同向流內(nèi)部的各網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。

即便是實(shí)施了后期綁定,也還是難免有些網(wǎng)絡(luò)流被錯(cuò)誤的識(shí)別。一個(gè)更棘手的情況發(fā)生在C1和C2被聚類成一個(gè)同向流時(shí)。現(xiàn)有技術(shù)MADD或者每網(wǎng)絡(luò)流公平共享,都是將網(wǎng)絡(luò)流伸長(zhǎng)直至整個(gè)同向流的末端。然而,如果將每個(gè)同向流中的網(wǎng)絡(luò)流按優(yōu)先級(jí)排序,那么被錯(cuò)誤識(shí)別的網(wǎng)絡(luò)流就更有可能早些完成。這樣可以減小由于錯(cuò)誤識(shí)別而造成的影響。例如,在圖1b中,如果我們對(duì)C1中的網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序,則期望的平均CCT將從2變?yōu)?.75個(gè)時(shí)間單位。這里,由于C1掉隊(duì)者被調(diào)度的時(shí)刻并不知道,因此C1的CCT應(yīng)該是介于1和2個(gè)時(shí)間單位的一個(gè)值,因此我們說期望的平均CCT為1.75個(gè)時(shí)間單位。

正如我們上面討論過的,同向流內(nèi)部?jī)?yōu)先級(jí)排序在有識(shí)別錯(cuò)誤的情況下能夠有效地減少由于識(shí)別錯(cuò)誤而造成的影響。

考慮到這一點(diǎn),本發(fā)明在不知道任何先驗(yàn)知識(shí)的情況下依據(jù)已經(jīng)發(fā)送的字節(jié)數(shù)對(duì)擴(kuò)展同向流內(nèi)部的每個(gè)網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。這個(gè)對(duì)小同向流中的網(wǎng)絡(luò)流掉入大的同向流中成為掉隊(duì)者的情況很有效。并且大多數(shù)的情況下普遍存在的都是小同向流,因此前述小同向流中的網(wǎng)絡(luò)流掉入大的 同向流中成為掉隊(duì)者的情況也是經(jīng)常發(fā)生的。參考圖2和圖7b,圖2中C1(Q1中淺色)的掉隊(duì)者(Q3中淺色)需要持續(xù)和C2(Q3中深色)的網(wǎng)絡(luò)流一樣長(zhǎng)的時(shí)間,而圖7b中卻可以因?yàn)槠浔旧淼拇笮”容^小而可以提早很多就完成。

這樣的策略在相反的情況下也是有效的。即,當(dāng)來自大同向流C2中的一個(gè)網(wǎng)絡(luò)流加入到一個(gè)小同向流C1成為先驅(qū)者時(shí)。由于小的網(wǎng)絡(luò)流更受到優(yōu)待,因此C1的網(wǎng)絡(luò)流更可能比來自C2的先驅(qū)者提早完成。

總之,本發(fā)明實(shí)施例通過對(duì)所述擴(kuò)展同向流內(nèi)部的各網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序可以在有識(shí)別錯(cuò)誤的情況發(fā)生時(shí)進(jìn)一步減少CCT。通過本申請(qǐng)后面段落有關(guān)仿真部分的介紹可以知道通過同向流內(nèi)部?jī)?yōu)先級(jí)排序可以在低識(shí)別準(zhǔn)確度時(shí)為小同向流帶來高達(dá)40%的提速。

下面將用偽代碼的形式對(duì)本發(fā)明實(shí)施例進(jìn)行描述。

其中,CoflowExtention(.)為每個(gè)識(shí)別的同向流生成一個(gè)擴(kuò)展同向流所述擴(kuò)展同向流是通過將所述同向流的邊界向外擴(kuò)展直徑d的距離而得到的(參見偽代碼第4行)。這就是說,C*進(jìn)一步包括距離C小于d的所有網(wǎng)絡(luò)流。需要注意的是,經(jīng)過此步驟之后,一個(gè)網(wǎng)絡(luò)流可能同時(shí)屬于兩個(gè)或者更多的擴(kuò)展同向流。之后,所述屬于多個(gè)擴(kuò)展同向流的網(wǎng)絡(luò)流會(huì)在它首次被調(diào)度時(shí)綁定至一個(gè)優(yōu)先級(jí)最高的擴(kuò)展同向流。

InterCoflow(.)利用D-CLAS對(duì)各個(gè)擴(kuò)展同向流進(jìn)行優(yōu)先級(jí)排序。具體地講,就是自動(dòng)將擴(kuò)展同向流安排到不同的隊(duì)列QC中,對(duì)各擴(kuò)展同向流隊(duì)列流進(jìn)行優(yōu)先級(jí)排序(參見偽代碼第9行)。本實(shí)施例中使用FIFO對(duì)各擴(kuò)展同向流進(jìn)行排序(參見偽代碼第10行),所述擴(kuò)展同向流將會(huì)保持運(yùn)行直到其任務(wù)完成或者隊(duì)列滿了。使用FIFO可以減少同一個(gè)隊(duì)列中擴(kuò)展同向流之間的交錯(cuò),從而減小CCT。

IntraCoflow(.)使用最小優(yōu)先啟發(fā)法(smallest-first heuristic)來對(duì)一個(gè)擴(kuò)展同向流內(nèi)部的各個(gè)網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。具體地,本發(fā)明用具有指數(shù)增長(zhǎng)的閾值對(duì)網(wǎng)絡(luò)流隊(duì)列QF實(shí)施MLFQ(multi-level feedback queue scheduling,多級(jí)反饋隊(duì)列調(diào)度)。這樣的策略可以在沒有先驗(yàn)知識(shí)的條件下令小的網(wǎng)絡(luò)流具有比大的網(wǎng)絡(luò)流更高的優(yōu)先級(jí)。對(duì)于每個(gè)網(wǎng)絡(luò)流隊(duì)列中的各個(gè)網(wǎng)絡(luò)流采用最大-最小公平(max-min fairness)分配帶寬。(參見偽代碼第18行)。

直徑d反映了掉隊(duì)者和先驅(qū)者之間的平衡。能夠獲得最優(yōu)平均CCT的直徑d跟同向流的識(shí)別半徑∈密切相關(guān),并且根據(jù)網(wǎng)絡(luò)中流量分布的不同而變化。毫無疑問的是,極端的d值(例如,無窮大)肯定會(huì)得到一個(gè)差的CCT。然而,如前面提到的,掉隊(duì)者造成的影響要遠(yuǎn)大于先驅(qū)者。因此,一個(gè)大的d值將有益于后期綁定。

此外,本發(fā)明實(shí)施例還提供一種服務(wù)器。如圖5所示,所示服務(wù)器包括擴(kuò)展模塊、排序模塊和執(zhí)行模塊。所述擴(kuò)展模塊用于依據(jù)預(yù)定條件對(duì)各同向流進(jìn)行擴(kuò)展,獲得相應(yīng)的擴(kuò)展同向流,所述擴(kuò)展同向流中至少有兩個(gè)擴(kuò)展同向流包含相同的網(wǎng)絡(luò)流。所述排序模塊用于對(duì)所述擴(kuò)展同向流進(jìn)行 優(yōu)先級(jí)排序。所述執(zhí)行模塊用于按照排序后的擴(kuò)展同向流的順序執(zhí)行調(diào)度,其中,包含于多個(gè)擴(kuò)展同向流的網(wǎng)絡(luò)流在隨所述多個(gè)擴(kuò)展同向流中優(yōu)先級(jí)最高的擴(kuò)展同向流調(diào)度之后不再隨所述多個(gè)擴(kuò)展同向流中其他的擴(kuò)展同向流調(diào)度。

進(jìn)一步的,在另一個(gè)實(shí)施例中,所述排序模塊還用于在對(duì)各擴(kuò)展同向流進(jìn)行優(yōu)先級(jí)排序之前對(duì)擴(kuò)展同向流內(nèi)部的各網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。

進(jìn)一步地,所述排序模塊按照先入先出算法對(duì)所述擴(kuò)展同向流進(jìn)行排序。

進(jìn)一步地,所述排序模塊按照最小優(yōu)先啟發(fā)法對(duì)所述擴(kuò)展同向流內(nèi)部的各個(gè)網(wǎng)絡(luò)流進(jìn)行優(yōu)先級(jí)排序。

進(jìn)一步地,所述排序模塊在網(wǎng)絡(luò)流隊(duì)列之間使用多級(jí)反饋隊(duì)列調(diào)度,對(duì)網(wǎng)絡(luò)流隊(duì)列中的各個(gè)網(wǎng)絡(luò)流按照最大-最小公平的策略分配帶寬。

前述實(shí)施例提供了一種基于同向流信息的調(diào)度方法,要實(shí)現(xiàn)所述調(diào)度方法,首先需要實(shí)現(xiàn)對(duì)所述同向流信息的采集。然而現(xiàn)有的基于同向流的解決方案都需要對(duì)應(yīng)用進(jìn)行改動(dòng)才能提取同向流,而這在很多實(shí)際的情境下無法使用。為此本發(fā)明對(duì)現(xiàn)有軟件框架進(jìn)行了改造,造后的軟件框架不再需要對(duì)應(yīng)用進(jìn)行改動(dòng)就可以采集同向流信息以供使用。

在現(xiàn)有技術(shù)中,客戶機(jī)和服務(wù)機(jī)之間通過遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)進(jìn)行數(shù)據(jù)交換。參與遠(yuǎn)程過程調(diào)用(RPC)的軟件框架至少包括應(yīng)用、分布式計(jì)算框架和Java虛擬機(jī)。所述應(yīng)用調(diào)用所述分布式計(jì)算框架發(fā)送RPC消息,但所述RPC消息中不包含同向流信息。所述應(yīng)用和所述分布式計(jì)算框架都通過所述Java虛擬機(jī)進(jìn)行編譯。所述分布式計(jì)算框架可以是Apache Hadoop或者Apache Spark等。所述分布式計(jì)算框架進(jìn)一步可以包括Netty框架等用于RPC發(fā)送的子框架。此時(shí),所述應(yīng)用通過所述分布式計(jì)算框架中的Netty框架發(fā)送RPC消息。一個(gè)RPC消息通過一個(gè)TCP鏈接進(jìn)行發(fā)送,一個(gè)TCP鏈接對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)流,一個(gè)或多個(gè)網(wǎng)絡(luò)流構(gòu)成一個(gè)同向流,一個(gè)應(yīng)用對(duì)應(yīng)一個(gè)Java虛擬機(jī)。

本發(fā)明的一個(gè)實(shí)施例中對(duì)現(xiàn)有技術(shù)中的軟件框架做出的改造如下:

步驟A1,修改所述分布式計(jì)算框架,修改后的分布式計(jì)算框架在發(fā)送 RPC消息時(shí)將所述RPC消息所屬同向流的同向流信息加入所述RPC消息中。

步驟A2,通過java字節(jié)碼插裝機(jī)制在所述Java虛擬機(jī)中增加一個(gè)解析模塊,所述解析模塊在所述Java虛擬機(jī)啟動(dòng)時(shí)加載,所述解析模塊在RPC消息發(fā)送前解析所述RPC消息并獲取所述同向流信息。

具體的,在Hadoop框架下,我們可以簡(jiǎn)單的認(rèn)為屬于一個(gè)job ID的RPC消息屬于同一個(gè)同向流。因此,在本發(fā)明的一個(gè)實(shí)施例中,修改后的分布式計(jì)算框架,或者更具體的,修改后的Netty框架在發(fā)送RPC消息時(shí)將job ID加入RPC消息的消息格式中。

由于RPC消息通常在進(jìn)入網(wǎng)絡(luò)級(jí)之前就被序列化成字節(jié)流,因此需要進(jìn)一步增加所述模塊來解析所述RPC消息,從而獲取所述同向流信息。

Java字節(jié)碼插裝機(jī)制指的是在Java字節(jié)碼生成之后,對(duì)其進(jìn)行修改,增強(qiáng)其功能。這種做法相當(dāng)于對(duì)應(yīng)用程序的二進(jìn)制修改。該方法能夠在不修改源代碼的前提下在類中加入新的成員、變量的聲明、初始化;在代碼的特定位置插入新的指令或者修改現(xiàn)有的指令,以及在目標(biāo)類中插入新的方法。因此,通過使用Java字節(jié)碼插裝機(jī)制,就可以在不修改原Java虛擬機(jī)源代碼的條件下增加所述解析模塊。

至此,本發(fā)明實(shí)施例通過修改分布式計(jì)算框架和Java虛擬機(jī)對(duì)用于進(jìn)行RPC的軟件框架進(jìn)行改造,改造后的軟件框架不需要應(yīng)用做出任何修改便可實(shí)現(xiàn)對(duì)同向流的采集,以供使用。

此外,現(xiàn)在的同向流實(shí)現(xiàn)都是在用戶控件模仿阻塞行為的,這可以有效地促使線程讓沒調(diào)度的流進(jìn)入睡眠。因此,一個(gè)CPU線程在任一時(shí)間最多只能發(fā)送一個(gè)流,不可伸縮。為了讓每個(gè)線程能夠服務(wù)多個(gè)I/O操作,通常的做法是利用操作系統(tǒng)提供的I/O多路復(fù)用主數(shù)據(jù)結(jié)構(gòu)(multiplexing primitives)(例如,POSIX中的select和poll,Windows中的IOCP)。Hadoop和Spark對(duì)低等級(jí)非阻塞I/O使用java.nio。由于很多流行的框架(包括Hadoop和Spark)在Java虛擬機(jī)下編譯,因此本發(fā)明實(shí)施例提供一種方法可以在支持java.nio的同時(shí)在Java虛擬機(jī)上支持很多第三方庫。對(duì)此,本發(fā)明實(shí)施例采用Java字節(jié)碼插裝改變應(yīng)用在運(yùn)行時(shí)的行為,采集同向流信 息,基于調(diào)度結(jié)果攔截I/O操作。在Java虛擬機(jī)引導(dǎo)過程中,所述插裝的代理被預(yù)加載。在首次I/O操作時(shí),所述代理檢測(cè)原始字節(jié)碼的加載,并對(duì)其進(jìn)行更改使其記錄運(yùn)行中Hadoop和Spark在Shuffle階段中的job ID。用這樣的方法同向流的信息就被采集到了。

Non-blocking I/O(非阻塞輸入輸出)是現(xiàn)代網(wǎng)絡(luò)服務(wù)器的基礎(chǔ)技術(shù),可以提升網(wǎng)絡(luò)服務(wù)器同時(shí)處理的請(qǐng)求數(shù)量級(jí)。但是由于步驟A1中對(duì)計(jì)算框架做出了改動(dòng),使得所述計(jì)算框架不能兼容非阻塞輸入輸出(non-blocking I/O),本發(fā)明的一個(gè)實(shí)施例通過Java字節(jié)碼插裝機(jī)制對(duì)Java虛擬機(jī)調(diào)用操作系統(tǒng)Non-blocking I/O接口的方法進(jìn)行改動(dòng),使得改動(dòng)過后的計(jì)算機(jī)框架能夠兼容操作系統(tǒng)Non-blocking I/O。

以上實(shí)施例是對(duì)現(xiàn)有軟件框架進(jìn)行的改造,改造后的軟件框架實(shí)現(xiàn)了在不修改應(yīng)用的條件下獲取同向流信息。接下來的實(shí)施例中將介紹如何對(duì)現(xiàn)有軟件框架進(jìn)行進(jìn)一步地改造,以實(shí)現(xiàn)基于所述同向流信息對(duì)網(wǎng)絡(luò)流的調(diào)度。

首先,所述改造進(jìn)一步包括步驟:

步驟A3,生成一個(gè)代理,所述代理接收各Java虛擬機(jī)中的解析模塊發(fā)送的同向流信息,并將所述同向流信息發(fā)送給調(diào)度器,所述代理還在所述調(diào)度器做出調(diào)度決定后執(zhí)行所述調(diào)度決定;

步驟A4,生成所述調(diào)度器,所述調(diào)度器接收所述代理發(fā)送的同向流信息,并基于所述同向流信息做出調(diào)度決定。

由于執(zhí)行調(diào)度決定實(shí)際上是對(duì)發(fā)送RPC消息的TCP連接進(jìn)行流量控制或者是優(yōu)先級(jí)控制的過程。因此,實(shí)施調(diào)度決定需要知道哪一個(gè)TCP鏈接負(fù)責(zé)發(fā)送哪個(gè)RPC消息。為了將所述RPC消息與發(fā)送所述RPC消息的TCP鏈接關(guān)聯(lián)起來,本發(fā)明一實(shí)施例在前述步驟A2中進(jìn)一步地令所述解析模塊在獲取所述同向流信息的同時(shí)還記錄所述RPC消息對(duì)應(yīng)的TCP鏈接,并將所述TCP鏈接的信息一并發(fā)送給所述代理。所述代理在獲得TCP連接的信息之后,就可以依據(jù)所述調(diào)度器做出的調(diào)度決定對(duì)相應(yīng)的TCP鏈接進(jìn)行流量控制了。

更具體的,在一個(gè)實(shí)施例中,所述軟件框架運(yùn)行在Linux操作系統(tǒng)上, 所述代理使用Linux下的tc模塊,并使用兩層分層令牌桶(HTB,Hierarchical Token Bucket)對(duì)所述TCP鏈接進(jìn)行流量控制。葉節(jié)點(diǎn)執(zhí)行每流速率,根節(jié)點(diǎn)將外出包歸類至對(duì)應(yīng)的葉節(jié)點(diǎn)。

在進(jìn)行了如上A1-A4步驟改造之后的軟件框架的基礎(chǔ)之上,本發(fā)明實(shí)施例提供了一種處理RPC通信中同向流信息的方法。所述方法包括:

步驟B1,所述應(yīng)用通過所述分布式計(jì)算框架發(fā)送RPC消息,所述RPC消息包含所述RPC消息所屬同向流的信息;

步驟B2,所述Java虛擬機(jī)在發(fā)送所述RPC消息前通過解析所述RPC消息獲取所述同向流信息;

步驟B3,所述Java虛擬機(jī)將所述同向流信息發(fā)送給所述代理;

步驟B4,所述代理接收各Java虛擬機(jī)發(fā)送的同向流信息,并將所述同向流信息發(fā)送給所述調(diào)度器;

步驟B5,所述調(diào)度器基于所述同向流信息做出調(diào)度決定,并將所述調(diào)度決定發(fā)送給所述代理;

步驟B6,所述代理執(zhí)行所述調(diào)度決定。

其中,所述分布式計(jì)算框架是Apache Hadoop或者Apache Spark,所述分布式計(jì)算框架包括經(jīng)過修改的Netty框架,所述經(jīng)過修改的Netty框架發(fā)送的RPC消息的消息格式中包含用于描述所述RPC消息所屬同向流的項(xiàng)。

所述Java虛擬機(jī)中包含一個(gè)通過Java字節(jié)碼插裝機(jī)制增加的解析模塊,所述解析模塊在Java虛擬機(jī)啟動(dòng)時(shí)被加載,所述解析模塊用于實(shí)現(xiàn)步驟B2中所述在發(fā)送所述RPC消息前通過解析所述RPC消息獲取所述同向流信息。

在一個(gè)具體的實(shí)施例中,所述解析模塊在獲取所述同向流的同時(shí)還記錄所述RPC消息對(duì)應(yīng)的TCP鏈接,并將所述TCP鏈接的信息一并發(fā)送給所述代理;此時(shí)所述步驟B6具體包括:所述代理依據(jù)所述調(diào)度器做出的調(diào)度決定對(duì)相應(yīng)的TCP鏈接進(jìn)行流量控制。

進(jìn)一步的,所述軟件框架還Linux操作系統(tǒng),所述代理使用Linux下的tc模塊并使用分層令牌桶進(jìn)行流量控制。

執(zhí)行上述步驟B1和步驟B2,可以在不需要應(yīng)用做出任何改動(dòng)的條件 下獲取同向流信息。進(jìn)一步執(zhí)行上述步驟B3至步驟B6可以在不需要應(yīng)用做出任何改動(dòng)的條件下,基于所述同向流信息對(duì)所述同向流所包含的網(wǎng)絡(luò)流進(jìn)行調(diào)度。

相應(yīng)地,本發(fā)明實(shí)施例還提供一種服務(wù)器,所述服務(wù)器上建有軟件框架,如圖16所示。所述軟件框架包括應(yīng)用、分布式計(jì)算框架,Java虛擬機(jī),所述應(yīng)用發(fā)送的RPC消息中包含所述RPC消息所屬同向流的信息,所述Java虛擬機(jī)在發(fā)送所述RPC消息前通過解析所述RPC消息獲取所述同向流信息。

其中,所述分布式計(jì)算框架是Apache Hadoop或者Apache Spark,所述分布式計(jì)算框架包括RPC子模塊,通過所述RPC子模塊發(fā)送的RPC消息的消息格式中包含用于描述所述RPC消息所屬同向流的項(xiàng)。所述RPC子模塊可以是經(jīng)過修改的Netty框架。

所述Java虛擬機(jī)中包含一個(gè)通過Java字節(jié)碼插裝機(jī)制增加的解析模塊,所述解析模塊在Java虛擬機(jī)啟動(dòng)時(shí)被加載,所述解析模塊用于實(shí)現(xiàn)所述在發(fā)送所述RPC消息前通過解析所述RPC消息獲取所述同向流信息。

進(jìn)一步地,所述軟件框架還包括代理和調(diào)度器。

所述Java虛擬機(jī)中的所述解析模塊向所述代理發(fā)送其獲取的同向流信息;所述代理接收各解析模塊發(fā)送的同向流信息,并將所述同向流信息發(fā)送給調(diào)度器;所述調(diào)度器基于所述同向流信息做出調(diào)度決定,并交由所述代理執(zhí)行所述調(diào)度決定。

進(jìn)一步地,所述解析模塊在獲取所述同向流信息的同時(shí)還記錄用于發(fā)送所述RPC消息的TCP鏈接的信息,并將所述TCP鏈接的信息一并發(fā)送給所述代理。所述代理依據(jù)所述調(diào)度決定對(duì)相應(yīng)的TCP鏈接進(jìn)行流量控制。

在一個(gè)具體的實(shí)施例中,所述軟件框架進(jìn)一步包括Linux操作系統(tǒng),所述代理使用Linux下的tc模塊并使用分層令牌桶進(jìn)行流量控制。

使用上述實(shí)施例中服務(wù)器,可以實(shí)現(xiàn)在不修改應(yīng)用的條件下對(duì)同向流信息的采集,并基于所述同向流信息進(jìn)行調(diào)度。接下來通過仿真實(shí)驗(yàn)對(duì)本發(fā)明性能進(jìn)行評(píng)估。評(píng)估主要針對(duì)以下兩個(gè)問題。

首先關(guān)于所述代理。

為了測(cè)量由所述代理引起的CPU開銷,發(fā)明人在具有8GB內(nèi)存4核Intel E5-1410 2.8GHz CPU的Dell PowerEdge R320服務(wù)器的NIC(Network Interface Card,網(wǎng)絡(luò)接口卡)上運(yùn)行一百多條網(wǎng)絡(luò)流,使其工作在飽和狀態(tài)下。與不使用代理相比,使用代理僅造成1%的CPU負(fù)荷增長(zhǎng),而吞吐量保持不變。也就是說,本發(fā)明只需要犧牲很小的性能就可以擴(kuò)展很多代理。

其次,關(guān)于所述調(diào)度。總的來講,本發(fā)明在正常工作負(fù)載下且超過90%的識(shí)別準(zhǔn)確度時(shí),能夠?qū)崿F(xiàn)和Aalo相當(dāng)?shù)腃CT(Aalo需要先驗(yàn)知識(shí)),同時(shí)比每流公平共享(per-flow fair sharing)算法CCT小82.9%。此外,本發(fā)明的容錯(cuò)設(shè)計(jì)使CCT提速1.16倍。減少40%由于識(shí)別錯(cuò)誤而引起的減速。后期綁定和同向流內(nèi)部?jī)?yōu)先級(jí)排序?qū)Ρ景l(fā)明都是非常重要的。前者可減少10%的CCT,后者對(duì)小的同向流可減少40%的CCT。

本發(fā)明的平均CCT及95百分位CCT相比于每流公平共享(per-flow fair sharing)算法的CCT分別減少了58.3%和80.4%,而和需要同向流先驗(yàn)知識(shí)的Aalo相比,本發(fā)明幾乎具有相同的表現(xiàn)。

下面將具體介紹所述實(shí)驗(yàn)和仿真是如何進(jìn)行的。

首先建立試驗(yàn)床。所述試驗(yàn)床由40個(gè)連接至Pronto 3295 48-port Gigabit Ethernet switch(48端口、千兆比特、以太網(wǎng)服務(wù)器)的服務(wù)器。每個(gè)服務(wù)器都是一個(gè)Dell PowerEdge R320并搭載4核Intel E5-1410 2.8GHz CPU,8G內(nèi)存,500G硬盤和Broadcom BCM5719NetXtreme Gigabit Ethernet NIC。每個(gè)服務(wù)器具有Linux 3.16.0.4內(nèi)核運(yùn)行Debian 8.2-64bit。實(shí)驗(yàn)利用同樣的計(jì)算引擎計(jì)算Varys和Aalo。設(shè)定坐標(biāo)間隔Δ=100ms,并設(shè)定∈=100,d=150為缺省值。

然后設(shè)定仿真器。對(duì)于大規(guī)模仿真,所述實(shí)驗(yàn)使用軌跡驅(qū)動(dòng)網(wǎng)絡(luò)流級(jí)別仿真器。并用此仿真器運(yùn)行同向流軌跡詳細(xì)的任務(wù)級(jí)別的重播。它保存任務(wù)的輸入輸出比,位置條件,以及兩個(gè)工作之間的到達(dá)間隔時(shí)間,并以1s作為決定間隔。

接著設(shè)定工作負(fù)載。實(shí)驗(yàn)使用真實(shí)工作負(fù)載,采集來自3000機(jī)器,150機(jī)架臉譜網(wǎng)(Facebook)生產(chǎn)集群一小時(shí)的Hive/MapReduce軌跡。所述軌跡包含超過500條同向流(7*105個(gè)網(wǎng)絡(luò)流)。所述同向流的大小(1MB-10TB) 以及一個(gè)所述同向流內(nèi)部的網(wǎng)絡(luò)流的數(shù)量(1-2*104)遵循重尾分布。圖8示出同向流之間的到達(dá)時(shí)間分布以及并發(fā)同向流的數(shù)量的分布。實(shí)驗(yàn)中相應(yīng)地按比例縮小作業(yè)以與設(shè)定的最大可能為40Gbps的二分帶寬相匹配,同時(shí)還保留所述作業(yè)的通信特點(diǎn)。

然而,所述臉譜網(wǎng)的軌跡并不包含具體的網(wǎng)絡(luò)流級(jí)別的信息,例如網(wǎng)絡(luò)流的起始時(shí)間以及端口號(hào)等。為了能夠在仿真中進(jìn)行合理的重演,首先在實(shí)驗(yàn)床中的Spark和Hadoop上運(yùn)行基準(zhǔn)程序(例如,WordCount和PageRank)?;谠囼?yàn)床學(xué)習(xí)到的同向流內(nèi)部網(wǎng)絡(luò)流的到達(dá)時(shí)間模式,我們將網(wǎng)絡(luò)流的起始時(shí)間信息加回臉譜網(wǎng)工作負(fù)載中以模仿Spark和Hadoop的網(wǎng)絡(luò)流量。

Spark網(wǎng)絡(luò)流量:每個(gè)同向流內(nèi)部的各個(gè)網(wǎng)絡(luò)流按照100ms內(nèi)的均勻分布進(jìn)行生成。

Hadoop網(wǎng)絡(luò)流量:每個(gè)同向流內(nèi)部的各個(gè)網(wǎng)絡(luò)流按照1000ms內(nèi)的均勻分布進(jìn)行生成,實(shí)驗(yàn)還增加平均為100ms的額外指數(shù)延遲。

最后設(shè)定度量。為了易于將本發(fā)明的CCT與Aalo(當(dāng)今最先進(jìn)的需手動(dòng)注解同向流的同向流調(diào)度方法)以及每網(wǎng)絡(luò)流公平共享(per-flow fair sharing)的CCT進(jìn)行比較,這里將本發(fā)明的CCT進(jìn)行標(biāo)準(zhǔn)化。即:

值越小說明性能越好。如果標(biāo)準(zhǔn)化后的值大于(小于)1,則說明本發(fā)明更快(更慢)。

下面介紹試驗(yàn)床實(shí)驗(yàn)的結(jié)果。

圖9顯示與基于TCP的每流公平共享相比,本發(fā)明可以將平均CCT減小58.3%,而將95百分位CCT減小80.4%。相應(yīng)地,平均作業(yè)完成時(shí)間和95百分位作業(yè)完成時(shí)間(JCT,Job Completion Time)也分別減少28.5%和60%。還可以看到Aalo標(biāo)準(zhǔn)化后的作業(yè)以及同向流完成時(shí)間都接近1,說明本發(fā)明幾乎具有和Aalo一樣的表現(xiàn)。

為了評(píng)估本發(fā)明的可伸縮性,試驗(yàn)床實(shí)驗(yàn)?zāi)7逻\(yùn)行了高達(dá)40,000個(gè)代理。圖10a和圖10b展示了由500個(gè)協(xié)調(diào)輪回(coordination round)得出的不同數(shù)量的模仿代理(例如40,000模仿代理指每個(gè)機(jī)器模仿1000代理)平均完成一個(gè)協(xié)調(diào)輪回的時(shí)間。在每次實(shí)驗(yàn)中,協(xié)調(diào)器將平均100個(gè)并發(fā)同向流的調(diào)度信息轉(zhuǎn)移至每個(gè)模仿代理。

與預(yù)期的一致,本發(fā)明的伸縮性并不像Aalo的那么好,這是因?yàn)楸景l(fā)明有識(shí)別過程,而Aalo并沒有此過程。然而,需要說明的是本發(fā)明的識(shí)別加速已經(jīng)具有很大的進(jìn)步—DBSCAN支持400個(gè)代理都需要好幾分鐘。

盡管本發(fā)明可以在6954ms協(xié)調(diào)40,000個(gè)代理,然而協(xié)調(diào)周期△(coordination period△)肯定是增長(zhǎng)的。為了理解△對(duì)性能的影響,我們用越來越高的△再次運(yùn)行之前的實(shí)驗(yàn)(參見圖10b)??梢杂^察到,類似于Aalo,本發(fā)明在△增長(zhǎng)時(shí)表現(xiàn)的更糟,并在△>100s時(shí)性能驟然下降。

下面將重點(diǎn)介紹一下關(guān)于調(diào)度的部分。

首先介紹本發(fā)明在正常工作負(fù)載下調(diào)度的仿真結(jié)果。圖11a示出幾種不同的調(diào)度算法在標(biāo)準(zhǔn)化的CCT方面的表現(xiàn)。顯然本發(fā)明可以有效地容許一些識(shí)別錯(cuò)誤,并且明顯地優(yōu)于每網(wǎng)絡(luò)流公平共享。舉例來說,對(duì)于Spark網(wǎng)絡(luò)流量來說,在95%識(shí)別準(zhǔn)確度時(shí),本發(fā)明幾乎與Aalo的表現(xiàn)一樣好,同時(shí)本發(fā)明明顯優(yōu)于每網(wǎng)絡(luò)流公平共享(CCT減少62.9%)。對(duì)于Hadoop網(wǎng)絡(luò)流量來說,在90%的識(shí)別準(zhǔn)確度時(shí),本發(fā)明稍稍比Aalo差一點(diǎn)點(diǎn)(CCT長(zhǎng)10%),但還是優(yōu)于每網(wǎng)絡(luò)流公平共享(CCT減少56.5%)。為了更直觀地表現(xiàn),圖11b顯示了本發(fā)明在Spark網(wǎng)絡(luò)流量下的CCT的CDF(Cumulative Distribution Function,累積分布函數(shù)),可以看到這也幾乎與Aalo一致。

然后介紹本發(fā)明在兩個(gè)具有挑戰(zhàn)性的場(chǎng)景中的仿真結(jié)果。所述挑戰(zhàn)性場(chǎng)景一個(gè)是指成批到達(dá)(batch arrival),一個(gè)是指展開到達(dá)(stretched arrival)。在這兩個(gè)場(chǎng)景下,本發(fā)明的識(shí)別精度不如在正常工作負(fù)載下的表現(xiàn)。

圖12a對(duì)比了幾種不同的調(diào)度算法在使用Hadoop網(wǎng)絡(luò)流量并處于成批到達(dá)的場(chǎng)景下的表現(xiàn)??梢灶A(yù)料,在這種場(chǎng)景下有更多的錯(cuò)誤識(shí)別發(fā)生。 相應(yīng)地,本發(fā)明調(diào)度方法的性能逐漸下降。舉例來說,本發(fā)明在成批到達(dá)的場(chǎng)景下與具有正確信息的Aalo相比,性能低(CCT長(zhǎng)30%-80%)。

圖12b顯示了幾種不同的調(diào)度算法在展開到達(dá)場(chǎng)景下的表現(xiàn)。最后再來驗(yàn)證如圖13中本發(fā)明的容錯(cuò)設(shè)計(jì)的有效性??梢宰⒁獾?,不具有后期綁定和同向流內(nèi)部?jī)?yōu)先級(jí)排序時(shí),本發(fā)明調(diào)度方法與直接使用Aalo相比對(duì)含有不準(zhǔn)確識(shí)別信息的輸入數(shù)據(jù)進(jìn)行調(diào)度的結(jié)果是一樣的。圖13a顯示在成批到達(dá)的場(chǎng)景下,本發(fā)明容錯(cuò)設(shè)計(jì)總體上可以帶來3-5%的CCT改善。特別的是,本發(fā)明容錯(cuò)設(shè)計(jì)可以為小同向流來帶10-20%的CCT改善(圖15a中的后者)。進(jìn)一步的,由圖13b可知,本發(fā)明在展開到達(dá)場(chǎng)景下可以帶來更多的性能提升。此時(shí),本發(fā)明容錯(cuò)設(shè)計(jì)給Hadoop和Spark網(wǎng)絡(luò)流量可以提供總體為1.16倍、1.14倍的提速。考慮到本發(fā)明大約比Aalo慢1.3倍(圖12b),1.16倍提速可以減少由于錯(cuò)誤識(shí)別而造成的影響約40%。

接下來介紹所述后期綁定和所述同向流內(nèi)部?jī)?yōu)先級(jí)排序各自獨(dú)立的好處。首先后期綁定在展開到達(dá)的場(chǎng)景下仍可以帶來不可忽視的改善。無論是對(duì)Hadoop還是Spark,改善都超過10%。相對(duì)而言,同向流內(nèi)部?jī)?yōu)先級(jí)排序帶來的改善會(huì)稍微少一些,在展開到達(dá)的場(chǎng)景下改善Hadoop 7%,在其他場(chǎng)景下改善1-5%。然而,同向流內(nèi)部?jī)?yōu)先級(jí)排序能為小同向流CCT帶來高達(dá)40%的改善。

為了理解為什么后期綁定可以有效的改善CCT,圖14a展示了以直徑d對(duì)所述識(shí)別了的同向流進(jìn)行擴(kuò)展之前和擴(kuò)展之后(即前述的擴(kuò)展同向流C*)的識(shí)別準(zhǔn)確度??梢杂^察到,查全率提升4%,代價(jià)是查準(zhǔn)率下降4%。高查全率意味著一個(gè)同向流中的網(wǎng)絡(luò)流有更多的網(wǎng)絡(luò)流被成功的劃分在一個(gè)組中,也就是說同向流擴(kuò)展有效地識(shí)別了一些掉隊(duì)者。這些被識(shí)別的掉隊(duì)者在他們被綁定至具有最高優(yōu)先權(quán)的同向流后就不再是掉隊(duì)者了。因此,后期綁定可以有效地減少掉隊(duì)者的數(shù)量,從而改善CCT。

在展開到達(dá)場(chǎng)景下,所述后期綁定可以帶來明顯地改善。而在展開到達(dá)的場(chǎng)景下直徑d是如何對(duì)所述后期綁定的效果造成影響呢?從圖14b中可以看到,在開始的時(shí)候,標(biāo)準(zhǔn)化的CCT隨著d的增加而改善。這說明更多的掉隊(duì)者被成功地識(shí)別了,因此減小了相應(yīng)同向流的CCT。然而,當(dāng)d 繼續(xù)增加,后期綁定會(huì)引入過多的先驅(qū)者,導(dǎo)致更長(zhǎng)的CCT。

同向流內(nèi)部的優(yōu)先級(jí)排序又是如何有益的呢?為說明這一點(diǎn),首先依據(jù)同向流的長(zhǎng)度和寬度對(duì)所述同向流進(jìn)行分類。具體的,最長(zhǎng)的網(wǎng)絡(luò)流小于5MB的同向流被認(rèn)為是短的同向流。寬度不超過50個(gè)網(wǎng)絡(luò)流的同向流被認(rèn)為是窄的同向流,則認(rèn)為。我們發(fā)現(xiàn)超過50%的同向流都是又短又窄的(SN)同向流。然而,由于它們占總網(wǎng)絡(luò)流量負(fù)載還不到0.1%,因此它們的表現(xiàn)并不能清楚地通過總CCT來表現(xiàn)。圖15a顯示了SN同向流在成批到達(dá)時(shí)標(biāo)準(zhǔn)化的CCT。可以看到同向流內(nèi)部的優(yōu)先級(jí)排序可以帶來16%的改善。一個(gè)可能的原因是當(dāng)許多同向流成批到達(dá)時(shí),本發(fā)明有可能將一些同向流錯(cuò)誤分類為“超級(jí)”同向流。同向流內(nèi)部的優(yōu)先級(jí)排序可以有效地加速這些被錯(cuò)誤分類的同向流中的SN同向流。

圖15b所示為展開到達(dá)場(chǎng)景下SN同向流的標(biāo)準(zhǔn)化CCT。展開到達(dá)模式容易產(chǎn)生許多掉隊(duì)者。而同向流內(nèi)部?jī)?yōu)先級(jí)排序可以有效地提升SN同向流中掉隊(duì)者的速度高達(dá)40%。

近來,同向流抽象越來越多地被人們關(guān)注。然而,現(xiàn)有的同向流知曉方案都要求開發(fā)者對(duì)應(yīng)用做出很大的改動(dòng),并需要手動(dòng)對(duì)同向流進(jìn)行注解。本發(fā)明首先提出將對(duì)應(yīng)用透明的同向流識(shí)別和具有容錯(cuò)能力的同向流調(diào)度相結(jié)合。

盡管已經(jīng)有很多關(guān)于ITC(Internet Traffic Classification,網(wǎng)絡(luò)流量分類)的文獻(xiàn),一些本質(zhì)的差別還是讓它們無法被應(yīng)用到同向流識(shí)別中。首先,一旦父親工作結(jié)束,由一個(gè)特定同向流捕捉的網(wǎng)絡(luò)流相互之間的關(guān)系便不再重現(xiàn)。因此,同向流無法被標(biāo)注成預(yù)定的類別。與此相反,在傳統(tǒng)的網(wǎng)絡(luò)流量分類中,網(wǎng)絡(luò)流量通常對(duì)應(yīng)于穩(wěn)定的類別。其次,時(shí)效性對(duì)同向流識(shí)別是非常重要的,這是因?yàn)樗慕Y(jié)果要作為調(diào)度的輸入。與此相反,在很多傳統(tǒng)的ITC任務(wù)中,遲來的識(shí)別也仍是有作用的(例如,入侵檢測(cè))。

還有一個(gè)相似的主題,魯邦調(diào)度,已經(jīng)在運(yùn)籌學(xué)中被大量研究。然而,魯邦調(diào)度首要的是處理在預(yù)計(jì)算調(diào)度過程中的突發(fā)事件。而本發(fā)明具有容錯(cuò)能力的調(diào)度方法是為了調(diào)度可能具有錯(cuò)誤輸入的任務(wù)。

本發(fā)明可以不需要對(duì)應(yīng)用做任何修改就能夠自動(dòng)地識(shí)別并調(diào)度同向 流。本發(fā)明利用增量式聚類算法以快速運(yùn)行對(duì)應(yīng)用透明的同向流識(shí)別,并通過提出具有容錯(cuò)能力的同向流調(diào)度算法來減小識(shí)別錯(cuò)誤的可能。試驗(yàn)床實(shí)驗(yàn)以及軌跡追蹤仿真顯示本發(fā)明在超過90%的識(shí)別準(zhǔn)確度時(shí),本發(fā)明調(diào)度方法有效地處理剩余的識(shí)別錯(cuò)誤。本發(fā)明的總體表現(xiàn)與Aalo相當(dāng),同時(shí)明顯優(yōu)于每網(wǎng)絡(luò)流公平共享。

總而言之,本發(fā)明不需要手動(dòng)地在應(yīng)用中進(jìn)行注解,因此更加實(shí)用。同時(shí)本發(fā)明還提供了一些可以研究方向,包括在數(shù)據(jù)密集型工作負(fù)載前的識(shí)別機(jī)制的推廣,為實(shí)現(xiàn)更佳的可伸縮性而進(jìn)行的去中心化,在線參數(shù)調(diào)整,處理同向流相關(guān)性,以及將具有容錯(cuò)能力的調(diào)度算法和分配算法應(yīng)用至其他領(lǐng)域。

以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
彩票| 临桂县| 汉寿县| 道真| 天镇县| 尚义县| 高陵县| 灵寿县| 南雄市| 乌兰察布市| 丹寨县| 雷州市| 福海县| 宁津县| 尉氏县| 江达县| 民和| 长宁区| 山西省| 黄浦区| 梧州市| 靖安县| 伊春市| 涪陵区| 五莲县| 思南县| 来安县| 县级市| 新野县| 安平县| 汾阳市| 甘孜| 大丰市| 施秉县| 朝阳市| 蓬溪县| 商洛市| 老河口市| 北辰区| 阿克| 荥阳市|