確保可預(yù)測和可量化的聯(lián)網(wǎng)性能的制作方法
【專利摘要】確??深A(yù)測且可量化的聯(lián)網(wǎng)性能。本發(fā)明的各實(shí)施例將無擁塞網(wǎng)絡(luò)核與基于系統(tǒng)管理程序(即,基于邊緣)的扼流設(shè)計(jì)相組合以幫助確保量化且不可變的訂閱帶寬速率。系統(tǒng)管理程序中的輕量墊片層能自適應(yīng)地扼流VM到VM的話務(wù)流的速率。接收系統(tǒng)管理程序可以檢測擁塞并且傳遞回發(fā)送系統(tǒng)管理程序要管制速率。作為響應(yīng),發(fā)送系統(tǒng)管理程序可以降低傳送速率以緩解接收系統(tǒng)管理程序處的擁塞。在一些實(shí)施例中,這些原理延及在無擁塞網(wǎng)絡(luò)上通信的任何消息處理器。
【專利說明】確??深A(yù)測和可量化的聯(lián)網(wǎng)性能
[0001]背景
[0002]1.背景和相關(guān)技術(shù)
[0003]計(jì)算機(jī)系統(tǒng)及相關(guān)技術(shù)影響社會的許多方面。的確,計(jì)算機(jī)系統(tǒng)處理信息的能力已轉(zhuǎn)變了人們生活和工作的方式。現(xiàn)在,計(jì)算機(jī)系統(tǒng)通常執(zhí)行在計(jì)算機(jī)系統(tǒng)出現(xiàn)以前手動執(zhí)行的許多任務(wù)(例如,文字處理、日程安排、帳目管理等)。最近,計(jì)算機(jī)系統(tǒng)彼此耦合并耦合到其他電子設(shè)備以形成計(jì)算機(jī)系統(tǒng)及其他電子設(shè)備可在其上傳輸電子數(shù)據(jù)的有線和無線計(jì)算機(jī)網(wǎng)絡(luò)。因此,許多計(jì)算任務(wù)的執(zhí)行分布在多個(gè)不同的計(jì)算機(jī)系統(tǒng)和/或多個(gè)不同的計(jì)算環(huán)境中。
[0004]在一些環(huán)境中,計(jì)算機(jī)系統(tǒng)在云計(jì)算環(huán)境中操作。在云計(jì)算環(huán)境中,云服務(wù)提供者使用公共的底層物理網(wǎng)絡(luò)來主存多個(gè)顧客的應(yīng)用(有時(shí)被稱為“承租人”)。承租人可以是獨(dú)立部署且由單個(gè)顧客單獨(dú)所有(即訂閱)的虛擬機(jī)(“VM”)或應(yīng)用進(jìn)程集??梢允褂玫竭_(dá)能力隔離來緩解承租人之間的直接干擾。然而,到達(dá)能力隔離是不足夠的,因?yàn)閻阂獾幕虿恍⌒牡某凶馊巳匀荒軌蛲ㄟ^僅在其自己成員(VM)之間交換繁重話務(wù)來干擾網(wǎng)絡(luò)數(shù)據(jù)面中的其它承租人。
[0005]相應(yīng)地,可以使用其它技術(shù)來試圖隔離承租人的性能。一些技術(shù)依賴于傳輸控制協(xié)議(“TCP”)的擁塞控制。然而,承租人實(shí)質(zhì)上通過使用許多TCP流(連接)和使用TCP的變體來達(dá)到對網(wǎng)絡(luò)的無邊界利用。承租人還可使用對擁塞控制不作響應(yīng)的其它協(xié)議,諸如舉例來說用戶數(shù)據(jù)報(bào)協(xié)議(“UDP”)。
[0006]對承租人聯(lián)網(wǎng)堆棧的信任也是一個(gè)問題。
[0007]而且,常規(guī)網(wǎng)絡(luò)內(nèi)服務(wù)質(zhì)量(“QoS”)機(jī)制(例如,具有加權(quán)公平排隊(duì)(“WFQ”)的分開隊(duì)列)并不縮放。當(dāng)承租人頻繁加入和離開時(shí),為了區(qū)分性能來使用這些QoS機(jī)制也是復(fù)雜且昂貴的。在發(fā)送方側(cè)靜態(tài)地扼流每一 VM是低效而無能的,因?yàn)槠淅速M(fèi)任何未使用的容量,并且給定足夠數(shù)目的VM,承租人總能夠以基本上應(yīng)用于每一 VM的任何靜態(tài)速率導(dǎo)致性能干擾。
[0008]相應(yīng)地,在云計(jì)算環(huán)境中,至少部分地由于這些因素中的一個(gè)或多個(gè),以可靠地阻止比例不均的帶寬消耗的方式來管制網(wǎng)絡(luò)話務(wù)可能是困難的。
[0009]簡要概述
[0010]本發(fā)明延及確??深A(yù)測且可量化的聯(lián)網(wǎng)性能。各實(shí)施例解決接收計(jì)算機(jī)系統(tǒng)處的聯(lián)網(wǎng)擁塞。計(jì)算系統(tǒng)管理一個(gè)或多個(gè)消息處理器。例如,在虛擬機(jī)環(huán)境中,系統(tǒng)管理程序管理一個(gè)或多個(gè)消息處理器。訪問用于消息處理器的訂閱帶寬。該訂閱帶寬指示用于該消息處理器的量化且不可變的最小帶寬。
[0011]從無擁塞網(wǎng)絡(luò)核接收一個(gè)或多個(gè)數(shù)據(jù)流。該一個(gè)或多個(gè)數(shù)據(jù)流從發(fā)送消息處理器發(fā)送并且定向到接收消息處理器。計(jì)算一個(gè)或多個(gè)數(shù)據(jù)流的組合帶寬。檢測接收計(jì)算系統(tǒng)處擁塞的發(fā)生。響應(yīng)于檢測到擁塞的發(fā)生,與一個(gè)或多個(gè)數(shù)據(jù)流相關(guān)聯(lián)的至少一個(gè)消息處理器被標(biāo)識為訂閱帶寬的違反者。該至少一個(gè)違反消息處理器是一個(gè)或多個(gè)數(shù)據(jù)流之一的發(fā)送消息處理器或接收消息處理器。確定該至少一個(gè)違反消息處理器的違反程度。
[0012]確定用于遞送至與該至少一個(gè)違反消息處理器相對應(yīng)的發(fā)送方側(cè)自適應(yīng)速率限制器的反饋。該反饋指令發(fā)送方側(cè)自適應(yīng)速率限制器降低源自該至少一個(gè)違反消息處理器的一個(gè)或多個(gè)數(shù)據(jù)流的帶寬。該反饋被發(fā)送到無擁塞網(wǎng)絡(luò)核以供遞送至發(fā)送方側(cè)自適應(yīng)速率限制器。
[0013]提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。本概述不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
[0014]本發(fā)明的附加特征和優(yōu)點(diǎn)將在以下描述中敘述,并且其一部分根據(jù)本描述將是顯而易見的,或者可通過對本發(fā)明的實(shí)踐來獲知。本發(fā)明的特征和優(yōu)點(diǎn)可通過在所附權(quán)利要求書中特別指出的工具和組合來實(shí)現(xiàn)和獲得。本發(fā)明的這些以及其它特征、優(yōu)點(diǎn)和特征將根據(jù)以下描述和所附權(quán)利要求而變得更顯而易見,或者可通過如此后闡述的對本發(fā)明的實(shí)踐而獲知。
【專利附圖】
【附圖說明】
[0015]為了描述可獲得本發(fā)明的上述和其他優(yōu)點(diǎn)和特征的方式,將通過參考附圖中示出的本發(fā)明的具體實(shí)施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體描述??梢岳斫?,這些附圖僅描述本發(fā)明的典型實(shí)施例,從而不被認(rèn)為是對其范圍的限制,本發(fā)明將通過使用附圖用附加特征和細(xì)節(jié)來描述和說明,在附圖中:
[0016]圖1示出促進(jìn)確??深A(yù)測且可量化的聯(lián)網(wǎng)性能的示例計(jì)算機(jī)架構(gòu)。
[0017]圖2示出用于確??深A(yù)測且可量化的聯(lián)網(wǎng)性能的一示例方法的流程圖。
【具體實(shí)施方式】
[0018]本發(fā)明延及用于確保可預(yù)測且可量化的聯(lián)網(wǎng)性能的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。各實(shí)施例解決接收計(jì)算機(jī)系統(tǒng)處的聯(lián)網(wǎng)擁塞。計(jì)算系統(tǒng)管理一個(gè)或多個(gè)消息處理器。例如,在虛擬機(jī)環(huán)境中,系統(tǒng)管理程序管理一個(gè)或多個(gè)消息處理器。訪問用于消息處理器的訂閱帶寬。該訂閱帶寬指示用于該消息處理器的量化且不可變的最小帶寬。
[0019]從無擁塞網(wǎng)絡(luò)核接收一個(gè)或多個(gè)數(shù)據(jù)流。該一個(gè)或多個(gè)數(shù)據(jù)流從發(fā)送消息處理器發(fā)送并且定向到消息處理器。計(jì)算一個(gè)或多個(gè)數(shù)據(jù)流的組合帶寬。檢測接收計(jì)算系統(tǒng)處擁塞的發(fā)生。響應(yīng)于檢測到擁塞的發(fā)生,與一個(gè)或多個(gè)數(shù)據(jù)流相關(guān)聯(lián)的至少一個(gè)消息處理器被標(biāo)識為訂閱帶寬的違反者。該至少一個(gè)違反消息處理器是一個(gè)或多個(gè)數(shù)據(jù)流之一的發(fā)送消息處理器或接收消息處理器。確定該至少一個(gè)違反消息處理器的違反程度。
[0020]確定用于遞送至與該至少一個(gè)違反消息處理器相對應(yīng)的發(fā)送方側(cè)自適應(yīng)速率限制器的反饋。該反饋指令發(fā)送方側(cè)自適應(yīng)速率限制器降低源自該至少一個(gè)違反消息處理器的一個(gè)或多個(gè)數(shù)據(jù)流的帶寬。該反饋被發(fā)送到無擁塞網(wǎng)絡(luò)核以供遞送至發(fā)送方側(cè)自適應(yīng)速率限制器。
[0021]本發(fā)明的各實(shí)施例可包括或利用專用或通用計(jì)算機(jī),該專用或通用計(jì)算機(jī)包括諸如舉例而言一個(gè)或多個(gè)處理器和系統(tǒng)存儲器的計(jì)算機(jī)硬件,如以下更詳細(xì)討論的。本發(fā)明范圍內(nèi)的各實(shí)施例還包括用于承載或存儲計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)系統(tǒng)訪問的任何可用介質(zhì)。存儲計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是計(jì)算機(jī)存儲介質(zhì)(設(shè)備)。承載計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實(shí)施例可包括至少兩種顯著不同的計(jì)算機(jī)可讀介質(zhì):計(jì)算機(jī)存儲介質(zhì)(設(shè)備)和傳輸介質(zhì)。
[0022]計(jì)算機(jī)存儲介質(zhì)(設(shè)備)包括RAM、ROM、EEPROM、CD-ROM、固態(tài)驅(qū)動器(SSD)(如基于RAM)、閃存、相變存儲器(PCM)、其他類型的存儲器、其他光盤存儲、磁盤存儲或其他磁存儲設(shè)備、或可用于存儲計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問的任何其他介質(zhì)。
[0023]“網(wǎng)絡(luò)”被定義為使得電子數(shù)據(jù)能夠在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其它電子設(shè)備之間傳輸?shù)囊粋€(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一個(gè)通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計(jì)算機(jī)時(shí),該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可包括可用于攜帶計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置并可由通用或?qū)S糜?jì)算機(jī)訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
[0024]此外,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動傳輸?shù)接?jì)算機(jī)存儲介質(zhì)(設(shè)備)(或反之亦然)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈接接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口模塊(例如,“NIC”)內(nèi)的RAM中,然后最終被傳輸?shù)接?jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易失性的計(jì)算機(jī)存儲介質(zhì)(設(shè)備)。因而,應(yīng)當(dāng)理解,計(jì)算機(jī)存儲介質(zhì)(設(shè)備)可被包括在還利用(甚至主要利用)傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)組件中。
[0025]計(jì)算機(jī)可執(zhí)行指令例如包括,當(dāng)在處理器處執(zhí)行時(shí)使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動作。更具體而言,上述特征和動作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。
[0026]本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、臺式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動電話、PDA、平板、尋呼機(jī)、路由器、交換機(jī)等等。本發(fā)明也可在其中通過網(wǎng)絡(luò)鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實(shí)施。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備二者中。
[0027]在本說明書以及下面的權(quán)利要求中,“云計(jì)算”被定義為一種用于允許對可配置的計(jì)算資源(如網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用、以及服務(wù))的共享池進(jìn)行無處不在的、方便的、按需的網(wǎng)絡(luò)訪問的模型,這些計(jì)算資源可用減少的管理努力或服務(wù)提供者交互來被供應(yīng)和發(fā)放。云模型可由各種特性(如按需自服務(wù)、廣泛網(wǎng)絡(luò)訪問、資源池、快速靈活性、測量服務(wù)等)、服務(wù)模型(如軟件即服務(wù)(SaaS)、平臺即服務(wù)(PaaS)、基礎(chǔ)結(jié)構(gòu)即服務(wù)(IaaS))以及部署模型(如私有云、社區(qū)云、公共云、混合云等)組成。
[0028]在本說明書和所附權(quán)利要求書中,“系統(tǒng)管理程序”(或虛擬機(jī)管理器(“VMM”))被定義為準(zhǔn)許多個(gè)操作系統(tǒng)實(shí)例(或虛擬機(jī)(“VM”))共享硬件宿主的組件。系統(tǒng)管理程序能夠直接在宿主的硬件上運(yùn)行(類型I)或者在運(yùn)行于宿主硬件上的操作系統(tǒng)的頂部運(yùn)行(類型2)。系統(tǒng)管理程序呈現(xiàn)虛擬操作平臺并且管理操作系統(tǒng)實(shí)例的執(zhí)行。例如,通過虛擬化,系統(tǒng)管理程序能夠基于底層網(wǎng)絡(luò)接口卡(“NIC”)的硬件向多個(gè)不同操作系統(tǒng)實(shí)例呈現(xiàn)個(gè)體虛擬網(wǎng)絡(luò)接口卡(“VNIC”)。系統(tǒng)管理程序控制宿主進(jìn)程和資源向每一操作系統(tǒng)實(shí)例的分配以避免操作系統(tǒng)實(shí)例之間的中斷。系統(tǒng)管理程序可以在云計(jì)算環(huán)境中的機(jī)器上使用。
[0029]本發(fā)明的各實(shí)施例將無擁塞網(wǎng)絡(luò)核與基于系統(tǒng)管理程序(即,基于邊緣)的扼流設(shè)計(jì)相組合。系統(tǒng)管理程序中的輕量墊片層能自適應(yīng)地扼流VM到VM的話務(wù)流的速率。對話務(wù)流的管制將VM端口的速率以及對接收端宿主可見的擁塞狀態(tài)考慮在內(nèi)。基于系統(tǒng)管理程序的辦法增加了網(wǎng)絡(luò)服務(wù)質(zhì)量(“QoS”)機(jī)制中的簡單程度和可縮放性。扼流VM到VM的話務(wù)促進(jìn)了公平性實(shí)施(即,管制用于不同協(xié)議的連接,諸如用戶數(shù)據(jù)報(bào)協(xié)議(“UDP”)和傳輸控制協(xié)議(“TCP”))。扼流VM到VM的話務(wù)還提供了與基于云的環(huán)境中使用的每VM每小時(shí)充電模型一致的公平性的新的測量。
[0030]圖1示出了促進(jìn)確??深A(yù)測且可量化的聯(lián)網(wǎng)性能的示例計(jì)算機(jī)架構(gòu)100。參考圖1,在一般實(shí)施例中,計(jì)算機(jī)架構(gòu)100包括計(jì)算系統(tǒng)111、121、131和141。在圖1的更具體的虛擬機(jī)實(shí)施例中,計(jì)算系統(tǒng)是系統(tǒng)管理程序111、121、131和141。在一般實(shí)施例中,每一計(jì)算系統(tǒng)111、121、131和141管理消息處理器。例如,在具體虛擬機(jī)實(shí)施例中,每一系統(tǒng)管理程序管理一個(gè)或多個(gè)虛擬機(jī),該虛擬機(jī)表示消息處理器的示例。例如,系統(tǒng)管理程序111管理虛擬機(jī)114A和114B,系統(tǒng)管理程序121管理虛擬機(jī)124,系統(tǒng)管理程序131管理虛擬機(jī)134A和134B,而系統(tǒng)管理程序141管理虛擬機(jī)144A和144B。系統(tǒng)管理程序111、121、131和141連接到無擁塞網(wǎng)絡(luò)核101。每一所描繪的組件以及任何其他連接的計(jì)算機(jī)系統(tǒng)及其組件可創(chuàng)建消息相關(guān)的數(shù)據(jù),并且通過無擁塞網(wǎng)絡(luò)核101交換消息相關(guān)的數(shù)據(jù)(例如,網(wǎng)際協(xié)議(“IP”)數(shù)據(jù)報(bào)以及利用IP數(shù)據(jù)報(bào)的其他更高層協(xié)議,諸如傳輸控制協(xié)議(“TCP”)、超文本傳輸協(xié)議(“HTTP”)、簡單郵件傳輸協(xié)議(“SMTP”)等)。之后,將描述具體的虛擬機(jī)實(shí)施例,盡管應(yīng)當(dāng)理解,文本描述的原理延及其中計(jì)算系統(tǒng)一般在無擁塞核心網(wǎng)101上連接的一般實(shí)施例。
[0031]無擁塞網(wǎng)絡(luò)核101被如此配置使得在無擁塞網(wǎng)絡(luò)核101內(nèi)存在極低的(或甚至實(shí)質(zhì)上無)擁塞幾率。無擁塞網(wǎng)絡(luò)核101可以是完全二分帶寬網(wǎng)絡(luò)。無擁塞網(wǎng)絡(luò)核101可以使用各種網(wǎng)絡(luò)拓?fù)渲械娜我环N來建立,包括但不限于胖樹(Fat Tree)和VL2。
[0032]系統(tǒng)管理程序111、121、131和141分別包括虛擬機(jī)交換機(jī)112、122、132和142。一般而言,當(dāng)系統(tǒng)管理程序接收分組時(shí),對應(yīng)的虛擬交換機(jī)將分組定向到恰適的虛擬機(jī)(例如,按照標(biāo)簽或電子地址)。虛擬機(jī)交換機(jī)可包括自適應(yīng)速率限制器和/或擁塞檢測器。例如,虛擬機(jī)交換機(jī)112包括擁塞檢測器113,而虛擬機(jī)交換機(jī)122、132和142分別包括自適應(yīng)速率限制器123、133和143。另外,虛擬機(jī)交換機(jī)112可包括自適應(yīng)速率限制器(未示出),并且虛擬機(jī)交換機(jī)122、132和142中的每一個(gè)可包括擁塞檢測器(未示出)。在延伸超過虛擬機(jī)環(huán)境的更一般的實(shí)施例中,擁塞檢測器113和自適應(yīng)速率限制器123、133和143可被認(rèn)為分別是由計(jì)算系統(tǒng)111、121、131和141實(shí)現(xiàn)的邏輯。
[0033]一般而言,VM(或其它消息處理器)可以根據(jù)定義的訂閱(例如,服務(wù)級協(xié)定(“SLA”))來操作。例如,VM的用戶可以從服務(wù)提供者(例如,數(shù)據(jù)中心提供者)購買使用無擁塞網(wǎng)絡(luò)核101的權(quán)利。作為購買的一部分,用戶和服務(wù)提供者可以就定義針對VM的網(wǎng)絡(luò)服務(wù)級的一組參數(shù)達(dá)成協(xié)定。該組參數(shù)可包括對VM可用的訂閱帶寬。該訂閱帶寬可以是分配給VM的量化且不可變的最小帶寬。
[0034]通過對應(yīng)的系統(tǒng)管理程序,擁塞檢測器知曉VM所使用的底層聯(lián)網(wǎng)硬件(諸如NIC和架頂式(“TOR”)交換機(jī))的最大帶寬。例如,系統(tǒng)管理程序111可以使得擁塞檢測器113知曉支持VM 114A和114B的硬件中的帶寬限制(例如,lGB/s NIC)。在操作期間,擁塞檢測器監(jiān)視定向到虛擬機(jī)的各個(gè)數(shù)據(jù)流的收到分組。
[0035]根據(jù)這些收到分組,擁塞檢測器能夠檢測到在支持硬件中何時(shí)可能要發(fā)生或正在發(fā)生擁塞。當(dāng)系統(tǒng)管理程序處的收到帶寬逼近底層硬件的帶寬限制時(shí),可能要發(fā)生或正在發(fā)生擁塞。例如,當(dāng)被評級為lGB/s的NIC正接收975MB/S時(shí),存在正在發(fā)生擁塞的某種可能性。擁塞檢測器可被配置成指示收到帶寬何時(shí)在硬件帶寬限制的指定閾值(例如,量或百分比)內(nèi)。在這一特定解說的系統(tǒng)100中,擁塞檢測器被置于網(wǎng)絡(luò)中潛在擁塞點(diǎn)處,并且該擁塞點(diǎn)在單個(gè)服務(wù)器內(nèi)。這具有提供更快且更穩(wěn)定的控制的潛能。
[0036]可以使用各種不同的機(jī)制中的任一種來檢測擁塞。在一些實(shí)施例中,接收系統(tǒng)管理程序(例如,系統(tǒng)管理程序111)使用軟件計(jì)量來檢測擁塞。在其它實(shí)施例中,使用協(xié)議或協(xié)議擴(kuò)展(諸如舉例來說顯式擁塞通知(“ECN”))來檢測擁塞??梢栽谧詈笠惶O(shè)備(諸如舉例來說TOR交換機(jī))處使用ECN。
[0037]當(dāng)擁塞發(fā)生時(shí),可能違反用于一個(gè)或多個(gè)VM的訂閱帶寬。響應(yīng)于檢測到擁塞,擁塞檢測器可以將發(fā)送VM標(biāo)識為違反者。基于違反程度,擁塞檢測器可以向自適應(yīng)速率限制器發(fā)送針對發(fā)送VM的反饋。
[0038]一般而言,自適應(yīng)速率限制器可以管制無擁塞網(wǎng)絡(luò)核101上發(fā)送數(shù)據(jù)分組的速率。自適應(yīng)速率限制器可以從擁塞檢測器接收反饋。響應(yīng)于收到反饋,自適應(yīng)速率限制器可以降低用于發(fā)送分組的帶寬以避免進(jìn)一步的擁塞。在沒有收到反饋時(shí),自適應(yīng)速率限制器可以增大用于將分組發(fā)送到無擁塞網(wǎng)絡(luò)核101上的帶寬以促進(jìn)對資源的高效使用。
[0039]自適應(yīng)速率限制器可以使用各種不同的反饋算法中的任一種來管制發(fā)送分組時(shí)的帶寬。在一些實(shí)施例中,自適應(yīng)速率限制器使用加性增加/乘性減小(“AIMD”)算法進(jìn)行擁塞避免。當(dāng)擁塞發(fā)生時(shí),AMD將擁塞窗口的線性增長與指數(shù)縮減相組合。還可使用其它算法,諸如舉例來說乘性增加/乘性減小(“MIMD”)和加性增加/加性減小(“AIAD”)。
[0040]圖2示出用于解決計(jì)算機(jī)系統(tǒng)處的網(wǎng)絡(luò)擁塞的示例方法200的流程圖。方法200將參考計(jì)算機(jī)體系結(jié)構(gòu)100的組件和數(shù)據(jù)來描述。
[0041]方法200包括訪問用于由系統(tǒng)管理程序所管理的虛擬機(jī)的訂閱帶寬的動作,該訂閱帶寬指示用于虛擬機(jī)的量化且不可變的最小帶寬(動作201)。例如,系統(tǒng)管理程序111可以從訂閱151訪問訂閱帶寬152。訂閱151可以是針對虛擬機(jī)114A的先前建立的訂閱。訂閱帶寬152可以指示針對虛擬機(jī)114A的量化且不可變的最小帶寬(例如400MB/S)。
[0042]方法200包括從無擁塞網(wǎng)絡(luò)核接收一個(gè)或多個(gè)數(shù)據(jù)流的動作,該一個(gè)或多個(gè)數(shù)據(jù)流從發(fā)送虛擬機(jī)發(fā)送并且被定向到虛擬機(jī)(動作202)。例如,虛擬機(jī)124U34A和144B可以分別向無擁塞網(wǎng)絡(luò)核101上發(fā)送分組102、103和104作為對應(yīng)數(shù)據(jù)流的一部分。分組102、103和104可以被定向到由系統(tǒng)管理程序所管理的虛擬機(jī)(例如,虛擬機(jī)114A和/或114B)。系統(tǒng)管理程序111可以從無擁塞網(wǎng)絡(luò)核101接收分組102、103和104。
[0043]方法200包括計(jì)算一個(gè)或多個(gè)數(shù)據(jù)流的組合帶寬的動作(動作203)。例如,擁塞檢測器133可以計(jì)算用于對應(yīng)于分組102、103和104的數(shù)據(jù)流的組合帶寬。方法200包括檢測虛擬機(jī)交換機(jī)處擁塞發(fā)生的動作(動作204)。例如,擁塞檢測器133可以檢測虛擬機(jī)交換機(jī)112處擁塞發(fā)生。擁塞發(fā)生可以通過確定對應(yīng)于分組102、103和104的數(shù)據(jù)流的組合帶寬在用于虛擬機(jī)交換機(jī)112的帶寬限制的指定閾值內(nèi)來檢測。例如,擁塞發(fā)生可以在數(shù)據(jù)流的組合帶寬為9.5GB/s而虛擬機(jī)交換機(jī)112具備lOGB/s能力時(shí)檢測到。
[0044]方法200包括響應(yīng)于檢測到擁塞發(fā)生將與一個(gè)或多個(gè)數(shù)據(jù)流相關(guān)聯(lián)的至少一個(gè)虛擬機(jī)標(biāo)識為訂閱帶寬的違反者的動作,該至少一個(gè)違反虛擬機(jī)是一個(gè)或多個(gè)數(shù)據(jù)流之一的發(fā)送虛擬機(jī)或接收虛擬機(jī)(動作205)。例如,擁塞檢測器113可以響應(yīng)于在虛擬機(jī)交換機(jī)112處檢測到擁塞發(fā)生將虛擬機(jī)124U34A和144B中的一個(gè)或多個(gè)標(biāo)識為違反訂閱帶寬152。擁塞檢測器113還可將虛擬機(jī)114B標(biāo)識為訂閱帶寬152的違反者。例如,用于多個(gè)數(shù)據(jù)流中每一數(shù)據(jù)流的個(gè)體帶寬可能不違反訂閱帶寬152。然而,當(dāng)多個(gè)數(shù)據(jù)流用于相同接收虛擬機(jī)時(shí),個(gè)體帶寬之和可能違反訂閱帶寬152。
[0045]方法200包括確定至少一個(gè)違反虛擬機(jī)的違反程度的動作(動作206)。例如,擁塞檢測器113可以確定虛擬機(jī)124、134A、144B和114B中的一個(gè)或多個(gè)違反訂閱帶寬152
的帶寬量。
[0046]方法200包括定制用于遞送至對應(yīng)于至少一個(gè)違反虛擬機(jī)的發(fā)送方側(cè)自適應(yīng)速率限制器的反饋的動作,該反饋指令發(fā)送方側(cè)自適應(yīng)速率限制器降低源自該至少一個(gè)違反虛擬機(jī)的一個(gè)或多個(gè)數(shù)據(jù)流的帶寬(動作207)。例如,擁塞檢測器133可以定制用于遞送至自適應(yīng)速率限制器123、133和143中的一個(gè)或多個(gè)(或甚至當(dāng)虛擬機(jī)114B是違反者時(shí)例如系統(tǒng)管理程序111處的自適應(yīng)速率限制器)的反饋106。反饋106可以指令該一個(gè)或多個(gè)自適應(yīng)速率限制器123、133和143降低分別來自虛擬機(jī)124U34A和144B中的一個(gè)或多個(gè)的數(shù)據(jù)流(對應(yīng)于分組102、103和104中的一個(gè)或多個(gè))的帶寬。在恰適時(shí),反饋106還可被定制以供遞送至系統(tǒng)管理程序111處的自適應(yīng)速率限制器。
[0047]一般而言,反饋可基于接收虛擬機(jī)的訂閱帶寬并且可能還基于一個(gè)或多個(gè)發(fā)送虛擬機(jī)的訂閱帶寬。例如,虛擬機(jī)124還可具有指定的訂閱帶寬。由此,反饋106可基于訂閱帶寬152和用于虛擬機(jī)124的指定訂閱帶寬來定制。反饋106可被如此定制以使得自適應(yīng)速率限制器123不將對應(yīng)于分組102的數(shù)據(jù)流扼流回到低于用于虛擬機(jī)124的指定訂閱帶寬的速率。
[0048]方法200包括將反饋發(fā)送到無擁塞網(wǎng)絡(luò)核上以供遞送至發(fā)送方側(cè)自適應(yīng)速率限制器的動作(動作208)。例如,擁塞檢測器113可以將反饋106發(fā)送到無擁塞網(wǎng)絡(luò)核101上以供遞送至自適應(yīng)速率限制器123、133和143中的一個(gè)或多個(gè)。接收到反饋106的自適應(yīng)速率限制器可以根據(jù)諸如舉例來說AIMD等帶寬管制算法來降低相應(yīng)的數(shù)據(jù)流的帶寬。
[0049]在一些實(shí)施例中,可以向所有的發(fā)送虛擬機(jī)(無論是否違反)發(fā)送相同或相似的反饋。發(fā)送側(cè)系統(tǒng)管理程序隨后可以確定對發(fā)送虛擬機(jī)限制速率的恰適方式,可能選擇與非違反虛擬機(jī)相比更激進(jìn)地限制違反虛擬機(jī)的速率。同樣,這種計(jì)算可發(fā)生在承租人級,其中存在與單個(gè)承租人相關(guān)聯(lián)的多個(gè)發(fā)送虛擬機(jī)。在該情形中,可以為與該承租人相關(guān)聯(lián)的所有違反(以及可能非違反)虛擬機(jī)執(zhí)行與反饋成比例的速率自適應(yīng)。這種成比例的速率限制可以由某種承租人級邏輯來執(zhí)行。
[0050]擁塞檢測器和自適應(yīng)速率限制器可以被用來管制用于各種不同類型的話務(wù)的數(shù)據(jù)流帶寬,包括TCP話務(wù)和非TCP(例如UDP)話務(wù)。由此,TCP流以及非TCP流的帶寬可以根據(jù)AMD或其它擁塞避免算法來管制。當(dāng)檢測到擁塞時(shí),還可將來自不同類型話務(wù)的數(shù)據(jù)流帶寬放在一起考慮。例如,接收系統(tǒng)管理程序可以接收TCP話務(wù)的至少一個(gè)數(shù)據(jù)流以及非TCP(例如UDP)話務(wù)的至少一個(gè)數(shù)據(jù)流。當(dāng)檢測到擁塞接收時(shí),接收系統(tǒng)管理程序可以考慮該至少一個(gè)TCP數(shù)據(jù)流的帶寬以及該至少一個(gè)非TCP數(shù)據(jù)流的帶寬。來自接收系統(tǒng)管理程序的反饋可用來管制該至少一個(gè)TCP數(shù)據(jù)流以及該至少一個(gè)非TCP數(shù)據(jù)流。
[0051]相應(yīng)地,本發(fā)明的各實(shí)施例將無擁塞網(wǎng)絡(luò)核與基于系統(tǒng)管理程序(即,基于邊緣)的扼流設(shè)計(jì)相組合以幫助確保量化且不可變的訂閱帶寬速率。各實(shí)施例可以將擁塞的范圍限于單個(gè)物理機(jī)并且限制擁塞貢獻(xiàn)者的數(shù)目。由于擁塞對于接收系統(tǒng)管理程序是可見的,因此更容易檢測到擁塞并且將其傳遞回到發(fā)送系統(tǒng)管理程序。傳遞回到發(fā)送系統(tǒng)管理程序提供了閉環(huán)控制辦法,這增加了穩(wěn)定性并且準(zhǔn)許。自計(jì)時(shí)
[0052]本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所描述的實(shí)施例在所有方面都應(yīng)被認(rèn)為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求書的范圍所涵蓋。
【權(quán)利要求】
1.一種在包括一個(gè)或多個(gè)處理器和系統(tǒng)存儲器的計(jì)算機(jī)系統(tǒng)處的用于解決所述計(jì)算機(jī)系統(tǒng)處的網(wǎng)絡(luò)擁塞的方法(200),所述計(jì)算機(jī)系統(tǒng)連接到無擁塞網(wǎng)絡(luò)核(101),所述計(jì)算機(jī)系統(tǒng)還包括用于處理從所述無擁塞網(wǎng)絡(luò)核接收的數(shù)據(jù)流(102、103、104)的消息處理器(111),所述消息處理器與擁塞檢測器(113)相關(guān)聯(lián),所述方法包括: 訪問(201)用于所述消息處理器的訂閱帶寬(152)的動作,所述訂閱帶寬指示用于所述消息處理器的量化且不可變的最小帶寬; 從所述無擁塞網(wǎng)絡(luò)核(101)接收(202) —個(gè)或多個(gè)數(shù)據(jù)流(102、103、104)的動作,所述一個(gè)或多個(gè)數(shù)據(jù)流從發(fā)送消息處理器(121、131、141)發(fā)送并且被定向到所述消息處理器(111); 計(jì)算(203)所述一個(gè)或多個(gè)數(shù)據(jù)流的組合帶寬的動作; 檢測(204)所述計(jì)算系統(tǒng)處的擁塞發(fā)生的動作; 響應(yīng)于檢測到所述擁塞發(fā)生,將與所述一個(gè)或多個(gè)數(shù)據(jù)流相關(guān)聯(lián)的至少一個(gè)消息處理器標(biāo)識(205)為所述訂閱帶寬的違反者的動作,所述至少一個(gè)違反消息處理器是所述一個(gè)或多個(gè)數(shù)據(jù)流之一的發(fā)送消息處理器或接收消息處理器; 確定(206)所述至少一個(gè)違反消息處理器的違反程度的動作; 定制(207)用于遞送至用于對所述至少一個(gè)違反消息處理器限制速率的發(fā)送方側(cè)自適應(yīng)速率限制器的反饋(106)的動作,所述反饋指令所述發(fā)送方側(cè)自適應(yīng)速率限制器(123、133、143)降低源自所述至少一個(gè)違反消息處理器的一個(gè)或多個(gè)數(shù)據(jù)流的帶寬;以及 將所述反饋發(fā)送(208)到所述無擁塞網(wǎng)絡(luò)核上以供遞送至所述發(fā)送方側(cè)自適應(yīng)速率限制器的動作。
2.如權(quán)利要求1所述的方法,其特征在于,從所述無擁塞網(wǎng)絡(luò)核接收一個(gè)或多個(gè)數(shù)據(jù)流的動作包括: 接收傳輸控制協(xié)議(TCP)話務(wù)的至少一個(gè)數(shù)據(jù)流的動作;以及 接收使用另一不同協(xié)議的話務(wù)的至少一個(gè)其它數(shù)據(jù)流的動作,所述另一不同協(xié)議與傳輸控制協(xié)議(TCP)不同。
3.如權(quán)利要求2所述的方法,其特征在于,將與所述一個(gè)或多個(gè)數(shù)據(jù)流相關(guān)聯(lián)的至少一個(gè)消息處理器標(biāo)識為所述訂閱帶寬的違反者的動作包括將與所述至少一個(gè)其它數(shù)據(jù)流相關(guān)聯(lián)的指定消息處理器標(biāo)識為所述訂閱帶寬的違反者的動作。
4.如權(quán)利要求2所述的方法,其特征在于,接收使用另一不同協(xié)議的話務(wù)的至少一個(gè)其它數(shù)據(jù)流的動作包括接收用戶數(shù)據(jù)報(bào)協(xié)議(“UDP”)話務(wù)的至少一個(gè)數(shù)據(jù)流的動作。
5.如權(quán)利要求1所述的方法,其特征在于,檢測所述計(jì)算系統(tǒng)處的擁塞發(fā)生的動作包括軟件計(jì)量檢測所述計(jì)算系統(tǒng)處的擁塞發(fā)生的動作。
6.如權(quán)利要求1所述的方法,其特征在于,檢測所述計(jì)算系統(tǒng)處的擁塞發(fā)生的動作包括使用顯式擁塞通知(“ECN”)來檢測所述計(jì)算系統(tǒng)處的擁塞發(fā)生的動作。
7.如權(quán)利要求1所述的方法,其特征在于,所述消息處理器是由系統(tǒng)管理程序服務(wù)的虛擬機(jī),并且檢測擁塞發(fā)生的動作由所述系統(tǒng)管理程序內(nèi)的虛擬交換機(jī)執(zhí)行。
8.如權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)違反消息處理器包括由系統(tǒng)管理程序服務(wù)的至少一個(gè)虛擬機(jī),其中用于對所述虛擬機(jī)限制速率的所述自適應(yīng)速率限制器被包括在所述系統(tǒng)管理程序的虛擬交換機(jī)中。
9.如權(quán)利要求1所述的方法,其特征在于,定制用于遞送至對應(yīng)于所述至少一個(gè)違反消息處理器的發(fā)送方側(cè)自適應(yīng)速率限制器的反饋的動作包括定制用于根據(jù)加性增加/乘性減小(“AMD”)算法減小源自所述至少一個(gè)違反消息處理器的所述一個(gè)或多個(gè)數(shù)據(jù)流的帶寬的反饋的動作。
10.一種在計(jì)算機(jī)系統(tǒng)處使用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)系統(tǒng)連接到無擁塞網(wǎng)絡(luò)核(101),所述計(jì)算機(jī)系統(tǒng)還包括用于處理從所述無擁塞網(wǎng)絡(luò)核接收的數(shù)據(jù)流(102、103、104)的消息處理器(111),所述消息處理器與擁塞檢測器(113)相關(guān)聯(lián),所述計(jì)算機(jī)程序產(chǎn)品用于實(shí)現(xiàn)一種用于解決所述計(jì)算機(jī)系統(tǒng)處的網(wǎng)絡(luò)擁塞的方法(200),所述計(jì)算機(jī)程序產(chǎn)品包括其上存儲有計(jì)算機(jī)可執(zhí)行指令的一個(gè)或多個(gè)計(jì)算機(jī)存儲設(shè)備,所述計(jì)算機(jī)可執(zhí)行指令在處理器處執(zhí)行時(shí)使得所述計(jì)算機(jī)系統(tǒng)執(zhí)行所述方法,所述方法包括以下步驟: 訪問(201)用于所述消息處理器的訂閱帶寬(152),所述訂閱帶寬指示用于所述消息處理器的量化且不可變的最小帶寬; 從所述無擁塞網(wǎng)絡(luò)核(101)接收(202) —個(gè)或多個(gè)數(shù)據(jù)流(102、103、104),所述一個(gè)或多個(gè)數(shù)據(jù)流從發(fā)送消息處理器(121、131、141)發(fā)送并且被定向到所述消息處理器(111);計(jì)算(203)所述一個(gè)或多個(gè)數(shù)據(jù)流的組合帶寬; 檢測(204)所述計(jì)算系統(tǒng)處的擁塞發(fā)生; 響應(yīng)于檢測到所述擁塞發(fā)生,將與所述一個(gè)或多個(gè)數(shù)據(jù)流相關(guān)聯(lián)的至少一個(gè)消息處理器標(biāo)識(205)為所述訂閱帶寬的違反者,所述至少一個(gè)違反消息處理器是所述一個(gè)或多個(gè)數(shù)據(jù)流之一的發(fā)送消息處理器或接收消息處理器; 確定(206)所述至少一個(gè)違反消息處理器的違反程度; 定制(207)用于遞送至用于對所述至少一個(gè)違反消息處理器限制速率的發(fā)送方側(cè)自適應(yīng)速率限制器的反饋(106),所述反饋指令所述發(fā)送方側(cè)自適應(yīng)速率限制器(123、133、143)降低源自所述至少一個(gè)違反消息處理器的一個(gè)或多個(gè)數(shù)據(jù)流的帶寬;以及 將所述反饋發(fā)送(208)到所述無擁塞網(wǎng)絡(luò)核上以供遞送至所述發(fā)送方側(cè)自適應(yīng)速率限制器。
【文檔編號】H04L12/803GK104396200SQ201380032650
【公開日】2015年3月4日 申請日期:2013年6月10日 優(yōu)先權(quán)日:2012年6月21日
【發(fā)明者】C·金, A·G·格林伯格, A·達(dá)巴格, Y·A·卡利迪, D·班塞爾, S·坎杜拉 申請人:微軟公司