多處理環(huán)境中的調(diào)度方法和裝置的制造方法
【專利摘要】提供用于處理分組的網(wǎng)絡(luò)接口單元及其方法。該網(wǎng)絡(luò)接口單元包括多個隊列,如果通過物理網(wǎng)絡(luò)接收到分組,則識別該分組的流,以流為單位將分組存儲在多個隊列中,以及通過多處理器來并行處理分組。
【專利說明】
多處理環(huán)境中的調(diào)度方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及多調(diào)度方法和裝置,且具體涉及在用于并行處理分組的多處理環(huán)境中的調(diào)度方法和裝置。
【背景技術(shù)】
[0002]多處理系統(tǒng)通過使用多個中央處理單元(CPU)核來并行處理多個進程。然而,多處理導(dǎo)致CPU核之間的均勻負載均衡、CPU核共享的資源之間的沖突、高速緩存效率惡化等問題。
[0003]具體地,為了提高分組處理效率,并行處理分組的多處理系統(tǒng)可以使得相同的CPU能夠處理屬于相同流的分組,并可以保持流對CPU的密切性(affinity)。在該情況下,特定CPU可能過載,且因而所有CPU之間的負載均衡可能是不均衡的。因此,可能降低多處理系統(tǒng)的整體處理效率。
[0004]為解決此問題,可以周期性地在CPU之間執(zhí)行負載均衡。在該情況下,在負載均衡處理中改變處理流的CPU,且從而使流密切性降低,并改變了分組處理順序,以使得分組重排序處理變?yōu)楸仨毜?。因此,降低了多處理系統(tǒng)的分組處理效率。
[0005]如上所述,為了提高多處理系統(tǒng)的處理效率,流密切性和合適的負載均衡是必須的。然而,這二者相互沖突,從而可以對此加以適當(dāng)補充。
[0006]此外,由于近來互聯(lián)網(wǎng)業(yè)務(wù)增長,因此服務(wù)器具有大容量和高速度。服務(wù)器的虛擬化促進了對由服務(wù)器大容量所引起的物理體積增加、成本等的解決方案。由于服務(wù)器的大容量、高速度和虛擬化,要求對包括數(shù)據(jù)分組在內(nèi)的海量數(shù)據(jù)進行高效的并行處理,該海量數(shù)據(jù)由從物理網(wǎng)絡(luò)接收的虛擬環(huán)境生成。此外,當(dāng)在虛擬服務(wù)器中執(zhí)行虛擬交換功能時,由于服務(wù)器負載增加,服務(wù)器的性能變差。因此,要求將根據(jù)虛擬交換功能來改變服務(wù)器的負載的技術(shù)實現(xiàn)到物理網(wǎng)絡(luò)接口單元中。
[0007]作為支持物理網(wǎng)絡(luò)接口設(shè)備中的虛擬環(huán)境的方法,支持虛擬環(huán)境的常規(guī)網(wǎng)絡(luò)接口卡(NIC)已嘗試以虛擬機為單位來生成和管理隊列,以降低在網(wǎng)絡(luò)接口設(shè)備和服務(wù)器的虛擬交換機之間的瓶頸現(xiàn)象。然而,當(dāng)為了并行處理接收到的數(shù)據(jù)分組而執(zhí)行處理器分配和隊列再分布時,該嘗試僅以虛擬機為單位來進行。換句話說,執(zhí)行的是僅考慮虛擬化環(huán)境的物理層的處理器分配。因此,可能沒有考慮作為對提高并行處理的處理效率來說非常重要的要素之一的處理器密切性,并且處理器分配和隊列再分布是在僅考慮到處理器的使用負載的情況下來發(fā)生的。這可能作為降低并行處理的效率的因素。
【發(fā)明內(nèi)容】
[0008]技術(shù)問題
[0009]提供了一種在執(zhí)行分組并行處理的多處理環(huán)境中減輕流密切性和負載均衡之間的沖突并提高所有處理器的使用效率的調(diào)度方法和裝置。
[0010]技術(shù)方案
[0011]根據(jù)示例實施例的方案,提供了一種多處理裝置中的調(diào)度方法,所述調(diào)度方法包括:將多個處理器中所有或一部分處理器分組為至少一個或多個處理器組;如果存在被指定用于接收到的分組的流的處理器組或處理器,向指定的處理器組或處理器分配該流;以及如果不存在被指定用于接收到的分組的流的處理器組或處理器,生成用于該流的新處理器組并向新處理器組分配該流,或者向不屬于任何處理器組的處理器分配該流。
[0012]根據(jù)另一示例實施例的方案,提供了一種多處理裝置中的調(diào)度方法,所述調(diào)度方法包括:基于多個處理器的負載狀態(tài)或處理容量,或基于接收到的分組的屬性來確定單調(diào)度或多調(diào)度;如果確定單調(diào)度,指定多個處理器之一為調(diào)度器;以及如果確定多調(diào)度,將多個處理器分組為至少兩個或更多個處理器組,并指定每個處理器組中的處理器之一作為每個處理器組的調(diào)度器。
[0013]根據(jù)另一示例實施例的方案,提供一種調(diào)度方法,包括:根據(jù)通過物理網(wǎng)絡(luò)接收到的分組來獲取深度分組,所述深度分組包括封裝在物理網(wǎng)絡(luò)幀中的虛擬化環(huán)境網(wǎng)絡(luò)層信息;基于深度分組中包括的虛擬化環(huán)境網(wǎng)絡(luò)層信息來識別深度分組的深度流;以及以識別出的深度流為單位,向相應(yīng)隊列分配深度分組。
[0014]根據(jù)另一示例實施例的方案,提供了一種網(wǎng)絡(luò)接口單元,包括:分組接收器,被配置為根據(jù)通過物理網(wǎng)絡(luò)接收到的分組來獲取深度分組,所述深度分組包括封裝在物理網(wǎng)絡(luò)幀中的虛擬化環(huán)境網(wǎng)絡(luò)層信息;分組分析器,被配置為基于深度分組中包括的虛擬化環(huán)境網(wǎng)絡(luò)層信息來識別深度的深度流;以及調(diào)度器,被配置為以識別出的深度流為單位向相應(yīng)隊列分配所述深度分組。
[0015]本發(fā)明的有益效果
[0016]根據(jù)本發(fā)明,可以減輕流密切性和負載均衡之間的沖突,以提高并行處理的性能。此外,可以使用動態(tài)指定的多個調(diào)度器來降低由分組調(diào)度和排隊所引起的時延。此外,通過多個調(diào)度器可以容易地應(yīng)用依賴于業(yè)務(wù)屬性的各種類型的調(diào)度算法。此外,降低了包括虛擬化環(huán)境在內(nèi)的服務(wù)器的負載,該虛擬化環(huán)境包括多個虛擬機。以深度流為單位來處理分組,以提高深度分組和處理器之間的密切性,從而提高并行處理的效率。此外,可以將虛擬交換機的負載分布到網(wǎng)絡(luò)接口卡中,以提高虛擬網(wǎng)絡(luò)處理的效率。此外,可以按深度流為單位將分組排隊并處理,以實現(xiàn)確保虛擬機終端之間的深度流處理單元的QoS的可擴縮通信處理。
【附圖說明】
[0017]圖1是示出了根據(jù)本發(fā)明示例實施例的用于執(zhí)行單調(diào)度的多處理裝置的視圖。
[0018]圖2是示出了根據(jù)本發(fā)明示例實施例的用于執(zhí)行單調(diào)度的多處理方法的視圖。
[0019]圖3是示出了根據(jù)本發(fā)明示例實施例的用于多調(diào)度的分類策略的視圖。
[0020]圖4是示出了根據(jù)本發(fā)明示例實施例的使用多調(diào)度方法的多處理裝置的結(jié)構(gòu)的視圖。
[0021]圖5是示出了根據(jù)本發(fā)明示例實施例的多調(diào)度器的詳細結(jié)構(gòu)的視圖。
[0022]圖6是根據(jù)本發(fā)明示例實施例的多處理環(huán)境中的多調(diào)度方法的流程圖。
[0023]圖7是根據(jù)本發(fā)明另一示例實施例的多處理環(huán)境中的多調(diào)度方法的流程圖。
[0024]圖8是根據(jù)本發(fā)明示例實施例的在多處理環(huán)境中的處理器組中被指定為調(diào)度器的處理器的調(diào)度方法的流程圖。
[0025]圖9是示出了根據(jù)本發(fā)明示例實施例的用于多調(diào)度的處理器分組的視圖。
[0026]圖10是示出了根據(jù)本發(fā)明示例實施例的為了多調(diào)度而將處理器動態(tài)分組的方法的視圖。
[0027]圖11是示出了根據(jù)本發(fā)明示例實施例的包括用于多處理的網(wǎng)絡(luò)接口單元在內(nèi)的系統(tǒng)的示意結(jié)構(gòu)的視圖。
[0028]圖12是示出了根據(jù)本發(fā)明示例實施例的動態(tài)設(shè)置NIC的資源的方法的視圖。
[0029]圖13是示出了根據(jù)本發(fā)明示例實施例的NIC的結(jié)構(gòu)的視圖。
[0030]圖14是示出了根據(jù)本發(fā)明示例實施例的基于NIC的深度流的隊列分配的視圖。
[0031]圖15是示出了根據(jù)本發(fā)明另一示例實施例的基于NIC的深度流的隊列分配的視圖。
[0032]圖16是示出了根據(jù)本發(fā)明示例實施例的所使用的深度分組的視圖。
[0033]圖17是示出了根據(jù)本發(fā)明示例實施例的對虛擬機環(huán)境的分組進行處理的方法的流程圖。
【具體實施方式】
[0034]現(xiàn)在將參考附圖來詳細描述根據(jù)本發(fā)明的多處理環(huán)境中的多調(diào)度方法和裝置。
[0035]圖1是示出了根據(jù)本發(fā)明示例實施例的用于執(zhí)行單調(diào)度的多處理裝置的視圖。
[0036]參考圖1,多處理裝置100包括分組識別器105、分組發(fā)送器140、分組分配表130、存儲器104、多個隊列110、112和114、多個處理器120、122和124、以及控制器150。
[0037]分組識別器105從有線或無線網(wǎng)絡(luò)或從另一裝置接收分組,并且識別接收到的分組的流。分組識別器105還通過參考分組分配表130來檢查是否存在分配給接收到的分組的流的處理器。
[0038]分組分配表130包括分別分配給分組的流的處理器的信息。例如,分組分配表130包括指示將第一處理器分配為用于處理第一和第二流的處理器且將第二處理器分配為用于處理第三流的處理器的信息。存儲在分組分配表130中的信息由稍后將描述的調(diào)度器來生成和更新。
[0039]存儲器104存儲由分組識別器105所接收的分組。這里,存儲器104可以將識別器105所識別的分組的流信息和參考分組分配表130所識別的處理器信息等存儲在一起。
[0040]分組發(fā)送器140向相應(yīng)處理器的隊列發(fā)送存儲在存儲器104中的分組。分組發(fā)送器140可以按順序向處理器隊列發(fā)送存儲在存儲器中的分組,或者可以在考慮各種條件(如服務(wù)質(zhì)量(QoS)、優(yōu)先級等)的情況下不按順序向處理器隊列發(fā)送分組。
[0041 ]隊列110、112和114從存儲器104接收將被每個處理器處理的分組并存儲分組。在該示例實施例中,隊列110、112和114逐個分別存在于處理器120、122和124中,但不限于此。在一個處理器中可以存在兩個或更多個隊列,或者兩個或更多個處理器可以共享一個隊列。備選地,可以通過圖11至17公開的方法將隊列110、112和114分組。
[0042]此外,隊列110、112和114具有先入先出(FIFO)結(jié)構(gòu),但不必限于此。因此,隊列110、112和114可以實現(xiàn)為各種類型的結(jié)構(gòu),例如后入先出(LIFO)結(jié)構(gòu)、基于優(yōu)先級的輸出等,即,隊列110、112和114可以具有能夠存儲將被每個處理器處理的分組的任何結(jié)構(gòu)。
[0043]如果分組分配表130中不存在分組流信息,控制器150將多個處理器之一指定為調(diào)度器,然后發(fā)送中斷請求信號。接收到中斷請求信號的處理器選擇將處理分組的處理器,并將關(guān)聯(lián)信息存儲在分組分配表中。
[0044]多個處理器120、122和124分別處理分組。在考慮多處理系統(tǒng)的效率和制造成本降低的情況下,可以不包括用于分組調(diào)度的附加調(diào)度器,并且可以使用多個處理器之一(例如,第一處理器120)作為調(diào)度器。將參考圖2來描述使用多個處理器之一作為調(diào)度器的方法。此外,在該示例實施例中,除了多個處理器外,還可以包括附加調(diào)度器。
[0045]圖2是示出了根據(jù)本發(fā)明示例實施例的用于執(zhí)行單調(diào)度的多處理方法的視圖。
[0046]參考圖1和2,在操作S200和S210中,分組識別器105分析接收到的分組以識別分組流。這里,流識別方法分析接收到的分組的所有網(wǎng)絡(luò)層的業(yè)務(wù)屬性,以根據(jù)預(yù)設(shè)網(wǎng)絡(luò)通信策略對分組流加以分類。例如,可以根據(jù)預(yù)設(shè)通信策略,通過使用接收到的分組的屬性,例如發(fā)送節(jié)點地址、目的地址、會話和應(yīng)用層等作為要素,來識別一個流。在操作S220中,分組識別器105通過參考分組分配表130來檢查是否存在將處理流的處理器的信息。分組、相應(yīng)分組的流信息、處理器信息等存儲在存儲器104中。
[0047]在操作S230中,如果分組分配表130中存在將處理流的處理器的信息,則在操作S260中,分組發(fā)送器140向相應(yīng)處理器的隊列發(fā)送分組。例如,如果分組識別器105將接收到的分組識別為第一流,并且在分組分配表130中第二處理器被分配為將處理第一流的處理器,則分組發(fā)送器140向第二處理器122的隊列112發(fā)送分組。
[0048]在操作S230中,如果分組分配表130中不存在將處理該流的處理器的信息,即該流是新的流,則在操作S240中,控制器150向多個處理器中被指定為調(diào)度器的一個處理器發(fā)送中斷請求信號??刂破?50可以將多個處理器中當(dāng)前具有較低負載的一個處理器指定為調(diào)度器,可以通過預(yù)設(shè)調(diào)度器確定算法來指定調(diào)度器,或可以將預(yù)設(shè)處理器指定為調(diào)度器。在該示例實施例中,指定第一處理器120作為調(diào)度器。
[0049]在操作S250中,接收到中斷請求信號的處理器120停止先前執(zhí)行的任務(wù)并執(zhí)行調(diào)度操作。例如,在操作S250中,被指定為調(diào)度器的處理器120選擇將處理新的流的處理器,并在操作S260中,將與選定的處理器有關(guān)的信息存儲在分組分配表130中。如果向被指定為調(diào)度器的處理器發(fā)送中斷請求,則否決請求處理新輸入分組的中斷請求,直到解除該中斷為止。
[0050]此外,被指定為調(diào)度器的處理器120可以周期性地或當(dāng)特定事件發(fā)生時(即處理器的負載不均衡高于或等于預(yù)設(shè)水平時),應(yīng)用已有的各種負載均衡算法,以便在處理器之間嘗試負載再均衡。
[0051]如圖1和2所示,當(dāng)一個調(diào)度器120被選擇為執(zhí)行相應(yīng)的任務(wù)時,系統(tǒng)否決新的中斷,并延遲對新的流的處理,直到解除所請求的中斷為止。此外,針對多個處理器中的所有處理器,執(zhí)行用于解決負載不均衡的負載再均衡。因此,流密切性和負載均衡之間的沖突變得更為嚴重。這可以通過圖4的多調(diào)度來減輕。
[0052]圖3是示出了根據(jù)本發(fā)明示例實施例的用于多調(diào)度的分類策略的視圖。
[0053]參考圖3,分類策略包括將多個處理器分組的策略。如將參考圖4所述,多調(diào)度將多個處理器分為至少兩個或更多個組,并針對每個組來執(zhí)行調(diào)度。為此,要求將多個處理器分組的策略。
[0054]作為分類策略的示例,存在如圖3所示的基于分組流的策略?;诳蓪⒎纸M流分層劃分的屬性,可以將流分為兩個組A和B。在該情況下,根據(jù)當(dāng)前要被處理的流屬于哪一組,可以將多個處理器分到兩個組中。
[0055]再例如,存在基于處理器負載的分類策略??梢愿鶕?jù)預(yù)設(shè)的組的數(shù)量來劃分處理器,以均勻化每個組的負載分布。
[0056]可能存在將多個處理器分組的多個分類策略。例如,第一策略可以是基于流將多個處理器分為兩個組的策略,第二策略可以是基于流將多個處理器分為三個組的策略,并且第三策略可以是根據(jù)多個處理器的負載將多個處理器分為至少兩個或更多個組的策略。
[0057]本發(fā)明不限于圖3的示例實施例,并且可以應(yīng)用各類分類策略來劃分處理器。分類策略可以由用戶通過附加輸入/輸出接口來預(yù)設(shè)和更新。如圖4所示,針對多調(diào)度,可以預(yù)設(shè)用于劃分多個處理器的標準(即分類策略)。
[0058]圖4是示出了根據(jù)本發(fā)明示例實施例的使用多調(diào)度方法的多處理裝置的結(jié)構(gòu)的視圖。
[0059]參考圖4,多處理裝置400包括分組識別器410、分組發(fā)送器480、分組分配表420、多調(diào)度器430、存儲器440、多個隊列450、以及多個處理器460、462、464、466、470、472和474。
[0060]分組識別器410、分組發(fā)送器480、分組分配表420、存儲器440、多個隊列450、處理器460、4620、464、466、470、472和474等包括參考圖1所描述的所有結(jié)構(gòu)和功能。因此,省略該示例實施例中和圖1的要素和功能相同的的要素和功能的重復(fù)描述,且主要將描述根據(jù)該示例實施例的多調(diào)度所必需的要素和功能。
[0061 ]基于多處理器的狀態(tài)信息,例如負載分布狀態(tài)、業(yè)務(wù)屬性、業(yè)務(wù)處理容量等,多調(diào)度器430確定執(zhí)行單調(diào)度還是多調(diào)度。例如,多調(diào)度器430可以執(zhí)行單調(diào)度,然后從單調(diào)度變?yōu)槎嗾{(diào)度。相反,多調(diào)度器430可以執(zhí)行多調(diào)度,然后從多調(diào)度變?yōu)閱握{(diào)度。
[0062]如果存在如圖3所示的多個分類策略,則多調(diào)度器430可以基于狀態(tài)信息來確定將應(yīng)用哪個分類策略。如果多調(diào)度器430確定將執(zhí)行多調(diào)度,則多調(diào)度器430根據(jù)分類策略將多個處理器分類到至少兩個或更多個組中,并指定將針對每個組來執(zhí)行調(diào)度的調(diào)度器。圖5中示出了多調(diào)度器的詳細結(jié)構(gòu)。
[0063]例如,如圖4所示,多調(diào)度器430將7個處理器分類成兩個處理器組(第一組:第一至第四處理器,第二組:第五至第七處理器),并根據(jù)預(yù)設(shè)的調(diào)度器確定算法,將分別屬于這兩個組的處理器466和474指定為調(diào)度器。如果多調(diào)度器430將處理器分組,則與處理器組有關(guān)的信息可以存儲在分組分配表420。
[0064]例如,如果如圖3所示基于流將處理器分組,則多調(diào)度器430將與該流屬于哪一組有關(guān)的信息存儲在分組分配表420中。
[0065]如果分組分配表420中不存在與新接收到的分組流有關(guān)的信息,則分組識別器410檢查新的流屬于哪一組,并將相應(yīng)分組和與相應(yīng)分組有關(guān)的識別信息存儲在存儲器440中。多調(diào)度器430通過負載程度或預(yù)設(shè)的調(diào)度器確定算法來指定將處理相應(yīng)組中的相應(yīng)分組的調(diào)度器,并向指定的調(diào)度器發(fā)送中斷請求信號以處理該相應(yīng)分組。被指定為調(diào)度器的處理器執(zhí)行從組中選擇將處理相應(yīng)流的處理器的調(diào)度操作等,如圖1所示。
[0066]例如,根據(jù)圖3的分組策略,可向流組A 300中分配包括第一至第四處理器在內(nèi)的第一處理器組490,以及可向流組B 310中分配包括第五至第七處理器在內(nèi)的第二組495。如果接收到的分組的流屬于流組A 300,則多調(diào)度器430指定屬于第一處理器組490的處理器之一作為調(diào)度器,以執(zhí)行相應(yīng)組490中的調(diào)度操作。這里,無論是否執(zhí)行了第一組490的調(diào)度操作,第二處理器組495都可以執(zhí)行對新分組的處理或執(zhí)行調(diào)度操作,以提高所有處理器的處理效率。換句話說,可以并行執(zhí)行第一處理器組490和第二處理器組495的調(diào)度操作。
[0067]再例如,在多調(diào)度中,可以根據(jù)處理器的負載、若干策略等而經(jīng)常改變處理器的分組,并且未被分組的處理器可以被新分組到用于接收到的分組的新流的處理器組中。稍后將參考圖9和10對此進行描述。
[0068]圖5是示出了根據(jù)本發(fā)明示例實施例的多調(diào)度器的詳細結(jié)構(gòu)的視圖。
[0069]參考圖5,多調(diào)度器430包括策略確定器500、組劃分器510和調(diào)度器指定器520。
[0070]通過使用多處理環(huán)境的狀態(tài)信息,例如負載分布狀態(tài)、業(yè)務(wù)屬性、業(yè)務(wù)處理容量等信息,策略確定器500確定單調(diào)度或多調(diào)度。此外,如果策略確定器500執(zhí)行多調(diào)度,則策略確定器500確定如何劃分多個處理器或者將對每個劃分的組應(yīng)用哪個策略。
[0071 ]例如,如果多處理裝置的整體業(yè)務(wù)處理容量低于或等于預(yù)設(shè)水平,則策略確定器500可以確定執(zhí)行多調(diào)度,并選擇如圖3所示的基于流的策略作為分類策略。
[0072]根據(jù)策略確定器500確定的分類策略,組劃分器510將多個處理器劃分為至少兩個或更多個組。
[0073]調(diào)度器指定器520通過負載程度或預(yù)設(shè)的調(diào)度器選擇算法,指定每個組中的處理器之一作為調(diào)度器。例如,調(diào)度器指定器520可以指定每個組中具有最小負載的處理器作為調(diào)度器。此外,還可以將特定處理器固定為調(diào)度器,或者可以應(yīng)用其他若干選擇方法來動態(tài)指定調(diào)度器。
[0074]圖6是根據(jù)本發(fā)明示例實施例的多處理環(huán)境中的多調(diào)度方法的流程圖。
[0075]一起參考圖4和6,在操作S600中,多調(diào)度器430檢測狀態(tài)信息,例如業(yè)務(wù)容量、流屬性、負載分布狀態(tài)等。在操作S610中,多調(diào)度器430基于狀態(tài)信息來確定將執(zhí)行單調(diào)度還是多調(diào)度。如果多調(diào)度器430執(zhí)行單調(diào)度,則多調(diào)度器430指定多個處理器之一作為調(diào)度器。如果多調(diào)度器430執(zhí)行多調(diào)度,則在操作S620中,多調(diào)度器430根據(jù)分類策略將多個處理器分為至少兩個或更多個組,并在操作S630中,指定每個組中將作為調(diào)度器工作的處理器。如圖1所示,每個組中被指定的處理器根據(jù)中斷請求信號針對相應(yīng)分組執(zhí)行調(diào)度操作。然而,每個組中被指定的處理器僅針對被指定處理器所屬的組中的處理器(而不是針對所有處理器)來執(zhí)行調(diào)度。因此,兩個或更多個劃分的組中被指定的調(diào)度器可以同時獨立執(zhí)行調(diào)度任務(wù)。換句話說,每個組的調(diào)度器可以從多調(diào)度器430接收中斷信號,并且無論另一組的調(diào)度器的中斷是否解除,都執(zhí)行調(diào)度任務(wù),例如,對用于處理分組的處理器的選擇。此外,劃分的組可以獨立地使用不同的策略或算法。
[0076]圖7是示出了根據(jù)本發(fā)明另一示例實施例的多處理環(huán)境中的多調(diào)度方法的流程圖。在圖7中,如上所述,多調(diào)度器可以將多個處理器分組。
[0077]參考圖4和7,在操作S700中分組識別器410接收分組,且在操作S710中分析分組以識別流。
[0078]在操作S730中,如果分組分配表420中存在與相應(yīng)流有關(guān)的信息,則分組識別器410檢查新的流屬于哪個組,并將相應(yīng)分組和與相應(yīng)分組有關(guān)的識別信息存儲在存儲器440中。多調(diào)度器430向相應(yīng)調(diào)度器發(fā)送中斷請求信號以處理相應(yīng)分組。
[0079]在操作S730中,如果分組分配表420中不存在與相應(yīng)流有關(guān)的信息,則在操作S740中,多調(diào)度器430通過參考分類策略來檢查該流屬于哪個組。例如,如果如圖3所示基于流來劃分處理器組,則多調(diào)度器430基于將流分層劃分的高秩(high-rank)屬性來檢查新識別出的流屬于哪個組。再例如,如果根據(jù)負載分布來劃分處理器組,則多調(diào)度器430可以選擇具有相對較低負載的組作為新識別出的流所屬的組。
[0080]多調(diào)度器430檢查新的流屬于哪個組,通過使用負載程度或預(yù)設(shè)的調(diào)度器確定算法來指定相應(yīng)組中將處理相應(yīng)分組的調(diào)度器,并向所指定的調(diào)度器發(fā)送中斷信號以處理該相應(yīng)分組。
[0081 ] 在操作S750和S760中,接收到中斷信號的處理器作為調(diào)度器工作,選擇將處理新的流的處理器,并將關(guān)聯(lián)信息存儲在分組分配表420中。
[0082]例如,再參考圖4,如果新的流被分配到包括第一至第四處理器在內(nèi)的組中,則多調(diào)度器430向被指定為調(diào)度器的第四處理器466發(fā)送中斷信號。通過預(yù)設(shè)的處理器確定算法,第四處理器466選擇第一處理器460作為將處理相應(yīng)分組的處理器,并將相應(yīng)信息存儲在分組分配表420中。如果接收到相同流的分組,則分組發(fā)送器480向第一處理器460分配相應(yīng)分組。
[0083]圖8是示出了根據(jù)本發(fā)明示例實施例的在多處理環(huán)境中被指定為處理器組中的調(diào)度器的處理器的調(diào)度方法的流程圖。
[0084]參考圖8,操作S800中,在接收到中斷信號前,多個處理器執(zhí)行流處理過程。如果存在被分配給新接收到的分組的流的處理器組或處理器,多調(diào)度器430向預(yù)先指定的處理器組或處理器分配流。如果不存在被分配給新接收到的分組的流的處理器組或處理器,則在操作S810中,多調(diào)度器430生成用于該新分組的流的處理器組,并向生成的處理器組中的一個處理器發(fā)送中斷信號。
[0085]在操作S820中,接收到中斷信號的處理器停止先前執(zhí)行的操作,并在操作S830中,執(zhí)行確定新分組的流將被分配給哪個處理器的調(diào)度操作,并在操作S840中,恢復(fù)在接收到中斷信號前執(zhí)行的操作。多調(diào)度器430可以向各處理器組分別發(fā)送中斷信號,因而各處理器組可以分別同時執(zhí)行調(diào)度操作。
[0086]圖9是示出了根據(jù)本發(fā)明示例實施例的用于多調(diào)度的處理器分組的視圖。
[0087]參考圖9,如果多調(diào)度器430執(zhí)行單調(diào)度,則多調(diào)度器430指定多個處理器900之一作為調(diào)度器。如果多調(diào)度器430執(zhí)行多調(diào)度,多調(diào)度器430將所有或一部分處理器分為至少一個或多個組910和920,并分別指定各組的調(diào)度器。
[0088]多調(diào)度器430可以根據(jù)處理器的負載狀態(tài)或預(yù)設(shè)的若干策略來生成新的處理器組或更新已有的處理器組。
[0089]例如,在多調(diào)度情況下,多調(diào)度器430可以將多個處理器分為包括第一至第三處理器在內(nèi)的第一組910和包括第四和第五處理器在內(nèi)的第二組920,并且可以不對其他處理器分組。
[0090]如果在多調(diào)度操作期間需要生成新的處理器組,多調(diào)度器430可以將當(dāng)前未被分組的所有或一部分處理器分組以生成新的處理器組,或者可以將已有的處理器組重新分組以生成新的處理器組。
[0091]再例如,在多調(diào)度操作期間,多調(diào)度器430可以執(zhí)行將新的處理器添加到已有的組(例如,包括第一至第三處理器在內(nèi)的第一組910和包括第四和第五處理器在內(nèi)的第二組920)中或者從已有的組中排除一些處理器的更新操作。
[0092]圖10是示出了根據(jù)本發(fā)明示例實施例的將處理器動態(tài)分組用于多調(diào)度的方法的視圖。
[0093]參考圖10,如果要求用于接收到的分組的流的新的處理器組,或者要求改變以前的處理器組,則在操作S1000中,多調(diào)度器430新生成處理器組或更新已有的處理器組。例如,如果不存在被分配給新接收到的分組的流的處理器組或處理器,則多調(diào)度器430將未被分組的所有或一部分處理器生成為新的處理器組。
[0094]再例如,如果處理器組的負載或所有處理器的負載達到預(yù)設(shè)水平或者根據(jù)預(yù)設(shè)策略,多調(diào)度器430可以新產(chǎn)生所有的處理器組,將新的處理器添加到特定處理器組中,以及從組中排除至少一個已有的處理器。
[0095]在操作S1010中,多調(diào)度器430將所生成或更新的處理器組中的一個處理器指定為調(diào)度器。每個組中的一個處理器并不總是作為調(diào)度器來工作,僅當(dāng)接收到中斷信號時作為調(diào)度器工作,如參考圖8所述,并且如果調(diào)度操作完成,執(zhí)行與其他一般處理器相同的操作。
[0096]至此已描述了主要是分組和調(diào)度多個處理器的方法。下文中,現(xiàn)在將描述主要是分組和調(diào)度與多個處理器相連的隊列的方法。圖1至10的技術(shù)要素可被添加到圖11至17的技術(shù)要素中,或者圖11至17的要素可被添加到圖1至10的要素中。換句話說,可以同時執(zhí)行參考圖1至10描述的對多個處理器的分組和將參考圖11至17描述的對多個隊列的分組。多處理裝置可被實現(xiàn)為網(wǎng)絡(luò)接口單元。
[0097]圖11是示出了根據(jù)本發(fā)明示例實施例的包括用于多處理的網(wǎng)絡(luò)接口單元在內(nèi)的系統(tǒng)的示意結(jié)構(gòu)的視圖。
[0098]參考圖11,網(wǎng)絡(luò)接口單元被實現(xiàn)為網(wǎng)絡(luò)接口卡(NIC) 1100。然而,網(wǎng)絡(luò)接口單元不必限于網(wǎng)絡(luò)接口卡1100,且可被實現(xiàn)為服務(wù)器內(nèi)部和外部的各種類型,如硬件、軟件等。為方便描述,網(wǎng)絡(luò)接口單元被表述為NI C。
[0099]服務(wù)器1120包括多個虛擬機1150、1152和1154、虛擬交換機1140、以及連接槽1130。虛擬交換機1140向目的虛擬機發(fā)送通過NIC 1100接收到的分組。連接槽1130是將NIC1100和服務(wù)器1120相連的接口,例如可被實現(xiàn)為高速外圍組件互連(PCIe)。在該情況下,NIC 1100可以附接在PCIe槽中。
[0100]NIC 1100分析從網(wǎng)絡(luò)1110接收到的分組的上層的業(yè)務(wù)特征,以識別流并通過多處理器并行地處理識別出的流。這里,分組指代通過使用各種類型的隧道傳輸技術(shù)(tunneling)來封裝虛擬化環(huán)境網(wǎng)絡(luò)層信息以便被發(fā)送至多個虛擬機的分組。虛擬化環(huán)境網(wǎng)絡(luò)層指代由虛擬機形成的網(wǎng)絡(luò)的層,且虛擬化環(huán)境網(wǎng)絡(luò)層信息指代由虛擬機形成的網(wǎng)絡(luò)的層信息,并且虛擬化環(huán)境網(wǎng)絡(luò)層信息被封裝在物理網(wǎng)絡(luò)幀中,以通過由虛擬機形成的網(wǎng)絡(luò)的層來發(fā)送分組。下文中,基于該示例實施例中使用的虛擬化環(huán)境網(wǎng)絡(luò)層信息而被識別的分組將被稱為深度分組。深度分組被封裝在物理網(wǎng)絡(luò)幀中,以便通過物理網(wǎng)絡(luò)上的一般通信協(xié)議來識別和順利發(fā)送。此外,通過使用深度分組的虛擬化環(huán)境網(wǎng)絡(luò)層信息來分類的流被稱為深度流。深度流可被描述為由通信服務(wù)結(jié)構(gòu)中的服務(wù)終端的虛擬機生成的流。
[0101]深度流可被定義為虛擬化環(huán)境網(wǎng)絡(luò)上的特定業(yè)務(wù),該特定業(yè)務(wù)是根據(jù)虛擬化環(huán)境網(wǎng)絡(luò)幀中的上層(高于或等于虛擬層3(vL3))的業(yè)務(wù)屬性來分類的,該虛擬化環(huán)境網(wǎng)絡(luò)幀是通過對深度分組的物理網(wǎng)絡(luò)幀解封裝而獲得的??梢愿鶕?jù)預(yù)設(shè)的若干策略來分類和識別深度流。例如,分組分析器1310可以將虛擬機的TCP流識別為深度流。稍后將參考圖16來描述深度分組的結(jié)構(gòu)。
[0102]NIC 1100包括用于并行處理接收到的深度分組的多個隊列和多個處理器。隊列的大小和數(shù)量是固定的,或者根據(jù)與深度流有關(guān)的信息、服務(wù)器的虛擬化環(huán)境信息、處理器的負載等來動態(tài)改變。
[0103]圖12是示出了根據(jù)本發(fā)明示例實施例的動態(tài)設(shè)置NIC的資源的方法的視圖。
[0104]參考圖11和12,在操作S1200中,如果NIC 1100附接到服務(wù)器1120的連接槽1130中以與服務(wù)器1120相連,則在操作S1210中,NIC 1100從服務(wù)器1120接收包括虛擬機數(shù)目在內(nèi)的虛擬化環(huán)境信息。在操作S1220中,根據(jù)與深度流有關(guān)的信息、接收到的虛擬化環(huán)境信息、處理器的負載分布等,NIC 1100動態(tài)分配資源,例如隊列的大小和數(shù)量、隊列組的代(generat1ns)等。
[0105]例如,如果NIC1100從服務(wù)器1120接收到指示存在四個虛擬機的虛擬化環(huán)境信息,則NIC 1100可以為四個虛擬機中的每個虛擬機分配十二個隊列中的三個隊列。再例如,基于與深度流有關(guān)的信息,NIC 1100可以將深度流分為兩組,并為兩組中每一組分配六個隊列??梢愿鶕?jù)預(yù)設(shè)規(guī)則以各種方式確定分配給每個虛擬機的隊列的數(shù)量、每個隊列的大小等。
[0106]圖13是示出了根據(jù)本發(fā)明示例實施例的NIC的結(jié)構(gòu)的視圖。
[0107]參考圖13,NIC 1100包括分組接收器1300、分組分析器1310、存儲器1320、多個隊列1330、多個處理器1340、調(diào)度器1350、監(jiān)視單元1360、以及隊列管理器1370。
[0108]在包括分組接收器1300在內(nèi)的元件之間的連接線僅是示例實施例,用以幫助理解本發(fā)明。可以實現(xiàn)各種連接關(guān)系,例如隊列管理器1370和監(jiān)視單元1360之間的連接、調(diào)度器1350和多個隊列1330之間的連接等。
[0109]如果接收到使用各種常規(guī)隧道傳輸方法來封裝深度分組以便在外網(wǎng)上被識別為一般以太幀的分組,則分組接收器1300將其解封裝以移除對應(yīng)于物理網(wǎng)絡(luò)的報頭部分,并恢復(fù)用于虛擬化環(huán)境的數(shù)據(jù)分組幀。
[0110]分組分析器1310識別所恢復(fù)的深度分組的深度流。為識別深度流,不僅可以分析數(shù)據(jù)鏈路層(vL2層),還可以分析虛擬化環(huán)境中高于或等于網(wǎng)絡(luò)層(vL3層)的上層。為此,分組分析器1310通過深度分組檢測(DPI)處理來分析經(jīng)過解封裝的深度分組的從虛擬數(shù)據(jù)鏈路層(vL2層)到虛擬應(yīng)用層(vL7層)的各層,并識別流。對深度分組的用于識別深度流的分析不限于對從虛擬數(shù)據(jù)鏈路層到虛擬應(yīng)用層的所有層的分析,且因此分析范圍可以根據(jù)深度流識別策略而改變。
[0111]存儲器1320存儲深度分組和分組分析器1310識別出的深度流信息,且存儲和管理指示深度流和隊列之間的映射關(guān)系的流表。
[0112]例如,分組接收器1300在存儲器1320中存儲經(jīng)過解封裝的深度分組,并向分組分析器1310通知對深度分組的存儲。假如分組分析器1310識別出存儲器1320中存儲的相應(yīng)深度分組的深度流。換句話說,被通知了接收到新的深度分組的分組分析器1310根據(jù)預(yù)設(shè)策略來識別相應(yīng)深度分組的深度流屬性,存儲與深度流屬性有關(guān)的信息,并向調(diào)度器1350通知對該信息的存儲。
[0113]調(diào)度器1350向相應(yīng)隊列分別分配所識別出的深度流,且向多處理器1340并行分配該隊列。更具體地,調(diào)度器1350通過參考存儲器1320中存儲的流表來搜索深度分組的深度流所映射到的隊列,并向搜索到的隊列發(fā)送存儲器1320中存儲的深度分組。如果表中不存在與接收到的深度分組的深度流有關(guān)的映射信息,則調(diào)度器1350通過各種常規(guī)方法向特定隊列分配深度流,并在流表中存儲深度流和該隊列之間的映射關(guān)系。
[0114]調(diào)度器1350可以以深度流為單位對各虛擬機的深度分組進行排隊。例如,當(dāng)設(shè)置了深度流和隊列之間的映射關(guān)系時,可以向相同隊列分配具有相同屬性(例如,相同QoS優(yōu)先級)以第一和第二虛擬機為目標的第一流和第二流。
[0115]本發(fā)明不排除如下情形:可以向不同組的隊列分配各虛擬機的每個深度流,以提高并行處理的效率。換句話說,如果每個虛擬機的隊列被如圖14所示分組,則調(diào)度器1350以深度流為單位向第一組1400的隊列分配第一虛擬機的第一流,并以深度流為單位向第二組1410的隊列分配第二虛擬機的第二流。
[0116]例如,如果存儲器1320中加載了指示新的深度分組的信息且接收到相應(yīng)深度分組的深度流信息,則調(diào)度器1350可以參考流表來搜索深度流被分配到哪個隊列,并將存儲器1320中加載的深度分組加載到相應(yīng)隊列中。如果流表中未搜索到與識別出的深度流有關(guān)的信息,則調(diào)度器1350可以根據(jù)預(yù)設(shè)策略,向?qū)儆谙鄳?yīng)虛擬機的隊列之一分配相應(yīng)深度分組。這里,預(yù)設(shè)策略可以根據(jù)示例實施例而變化,例如,可以有在考慮到流密切性的情況下選擇隊列的策略、從深度分組將被發(fā)向的虛擬機的隊列中選擇具有最小負載的隊列的策略、選擇被分配給具有最低使用率的處理器的隊列的策略等等。
[0117]多個隊列1330被分別映射在至少一個或多個深度流上。如果以深度流為單位執(zhí)行排隊,則提高了處理器密切性,因而提高了并行處理的效率。可以根據(jù)虛擬機將多個隊列1330分為包括至少一個或多個隊列在內(nèi)的組。此外,多個隊列1330可被分為至少一個或多個分區(qū),如圖15所示。此外,多個隊列1330可被分為至少兩個或更多個分區(qū),如圖15所示。
[0118]調(diào)度器1350可以是從多個處理器中選擇的處理器。例如,可以將所有處理器1380中的特定處理器1350指定為調(diào)度器,或者可以基于監(jiān)視單元1360監(jiān)視的各處理器的負載來選擇具有最小負載的處理器作為調(diào)度器1350。除此以外,還可以應(yīng)用選擇調(diào)度器的各種方法。與參考圖8描述的方法一樣,如果從處理器中指定調(diào)度器,每當(dāng)需要調(diào)度時,控制器(未示出)生成中斷信號并向被指定為調(diào)度器的處理器發(fā)送該中斷信號,且接收到該中斷信號的處理器停止該處理器正在執(zhí)行的任務(wù),完成調(diào)度器的操作,并重新執(zhí)行先前的任務(wù)。
[0119]多個處理器1340并行地處理分別存儲在隊列中的深度分組,并向服務(wù)器的虛擬機發(fā)送經(jīng)過處理的深度分組。上面參考圖1至10描述的單調(diào)度或多調(diào)度方法可以應(yīng)用于多個處理器。換句話說,多個處理器可以被分組并以組為單位來調(diào)度。多個處理器1340連接到至少一個或多個隊列。
[0120]例如,在考慮到流密切性的情況下,多個處理器1340連接到隊列。換句話說,將存儲具有相同或相似深度流屬性的深度分組的隊列加以分組,然后將其連接到處理器。
[0121]再例如,多個處理器1340可以根據(jù)虛擬機來連接到隊列。參考圖14,第一處理器可以連接到被分配給第一虛擬機的第一至第三隊列1400,第二處理器可以連接到被分配給第二虛擬機的第四至第六隊列1410,并且第三處理器可以連接到被分配給第三虛擬機的第七和第八隊列1420。
[0122]再例如,第一處理器可以連接到被分配給第一虛擬機的第一至第三隊列和被分配給第二虛擬機的第四隊列。在該情況下,第二處理器可以連接到被分配給第二虛擬機的第五和第六隊列。換句話說,處理器可以連接到被分配給兩個或更多個虛擬機的所有隊列或一部分隊列。
[0123]監(jiān)視單元1360監(jiān)視各種狀態(tài),包括處理器1340的負載和隊列1330等。
[0124]如圖15所示,隊列管理器1370根據(jù)監(jiān)視結(jié)果將隊列分為多個分區(qū),并指定用于每個分區(qū)的調(diào)度器,將多個隊列組合成一個組或劃分多個隊列,或者增加或降低被分配給虛擬機的隊列的數(shù)量,以調(diào)節(jié)隊列的大小、數(shù)量等。根據(jù)通過圖12的上述處理所檢查的服務(wù)器的虛擬化環(huán)境等,隊列管理器可以動態(tài)地設(shè)置每個虛擬機的隊列的數(shù)量、大小等。
[0125]圖14是示出了根據(jù)本發(fā)明示例實施例的基于NIC的深度流的隊列分配的視圖。
[0126]參考圖14,根據(jù)虛擬機來劃分隊列1330。例如,向第一虛擬機分配第一至第三隊列1400,向第二虛擬機分配第四至第六隊列1410,且向第三虛擬機分配第七和第八隊列1420。調(diào)度器通過參考每個虛擬機的深度流來執(zhí)行排隊。
[0127]例如,如果根據(jù)優(yōu)先級識別出前往第一虛擬機的深度流,則調(diào)度器1350基于優(yōu)先級在被分配給第一虛擬機的第一至第三隊列1400中分類和存儲深度分組。換句話說,在前往第一虛擬機的深度流中具有最高優(yōu)先級的深度流被存儲在第一隊列中,具有次高優(yōu)先級的深度流被存儲在第二隊列中,以及具有其他優(yōu)先級的深度流被存儲在第三隊列中。
[0128]圖15是示出了根據(jù)本發(fā)明另一示例實施例的基于NIC的深度流的隊列分配的視圖。
[0129]參考圖15,隊列1330被劃分為至少兩個或更多個分區(qū)1520和1530。向分區(qū)1520和1530分別分配調(diào)度器1500和1510。例如,向第一分區(qū)1520分配第一調(diào)度器1500,且向第二分區(qū)1530分配第二調(diào)度器1510。調(diào)度器1500和1510獨立執(zhí)行與所分配的分區(qū)有關(guān)的調(diào)度操作。該示例實施例示出了隊列1330被分為兩個組1520和1530。根據(jù)示例實施例,隊列1330可被分為三個或更多個組,并且參考圖1至10描述的多調(diào)度方法可以應(yīng)用于三個或更多個組中的每個組。調(diào)度器可以是按照上文描述的預(yù)設(shè)方法從多個處理器1380中選擇的處理器。
[0130]例如,在通過如圖13所示的一個調(diào)度器進行調(diào)度期間,如果監(jiān)視單元測量的隊列的負載分布下降為低于或等于預(yù)設(shè)閾值,可以確定隊列的重均衡或處理器的重分配。備選地,如果處理器的負載低于或等于閾值,可以計算從網(wǎng)絡(luò)接收到的深度分組的統(tǒng)計數(shù)量或者由NIC中的所有處理器執(zhí)行的處理器能力,以確定隊列的重均衡或處理器的充分配。如圖15所示,如果隊列被劃分為多個分區(qū),則當(dāng)執(zhí)行隊列的重均衡或處理器的重分配時,需要調(diào)度器的附加指定,可以將具有最小負載的處理器指定為附加調(diào)度器。
[0131]可以基于虛擬機將屬于每個分區(qū)的隊列分成組1540,并且可以基于深度流將組中的隊列分類。在該情況下,產(chǎn)生了層級結(jié)構(gòu),即分區(qū)-每個虛擬機的組-每個組中的隊列。
[0132]圖16是示出了根據(jù)本發(fā)明示例實施例的深度分組的視圖。
[0133]參考圖16,深度分組包括物理網(wǎng)絡(luò)幀1610、隧道傳輸字段1620、虛擬機間網(wǎng)絡(luò)幀1630、和數(shù)據(jù)字段1600。
[0134]物理網(wǎng)絡(luò)幀1610包括指示現(xiàn)有物理網(wǎng)絡(luò)的層(如L2、IP、TCP等)的信息。隧道傳輸字段1620指示隧道傳輸信息等。虛擬機間網(wǎng)絡(luò)幀1630包括與虛擬機間網(wǎng)絡(luò)環(huán)境中的層(vL2至vL7)有關(guān)的信息。數(shù)據(jù)字段1600包括數(shù)據(jù)。
[0135]圖16的深度分組的結(jié)構(gòu)是用于幫助理解本發(fā)明的示例實施例,且因而不限于此。因此,可以定義和使用用于虛擬機環(huán)境的各類深度分組結(jié)構(gòu)。
[0136]此外,根據(jù)示例實施例,存儲器中存儲的深度分組的結(jié)構(gòu)和隊列中存儲的深度分組的結(jié)構(gòu)可以彼此相同或不同。例如,可以將從網(wǎng)絡(luò)接收的圖16的分組解封裝,以恢復(fù)深度分組,并將該深度分組改變?yōu)榭稍谔摂M機環(huán)境中處理的最佳結(jié)構(gòu),或者可以從深度分組的字段中刪除虛擬機環(huán)境中不需要的一部分或所有字段。換句話說,可以對設(shè)計進行各種改變,然后存儲在隊列中。
[0137]圖17是示出了根據(jù)本發(fā)明示例實施例的對虛擬機環(huán)境的分組進行處理的方法的流程圖。
[0138]參考圖17,在操作S1700中,如果網(wǎng)絡(luò)接口單元接收到深度分組,則在操作S1710中,網(wǎng)絡(luò)接口單元通過DPI處理等來分析深度分組,以識別深度分組將被發(fā)向的目的虛擬機和深度流。在操作S1720中,網(wǎng)絡(luò)接口單元以深度流為單位將深度分組存儲在被分配給每個虛擬機的一個或多個隊列中。在操作S1730中,網(wǎng)絡(luò)接口單元還通過多個處理器來處理存儲在每個隊列中的深度分組,并向虛擬機發(fā)送經(jīng)過處理的深度分組。
[0139]本發(fā)明還可以體現(xiàn)為計算機可讀記錄介質(zhì)上的計算機可讀代碼。計算機可讀記錄介質(zhì)是能夠存儲隨后可由計算機系統(tǒng)讀取的數(shù)據(jù)的任何數(shù)據(jù)存儲設(shè)備。計算機可讀記錄介質(zhì)的示例包括只讀存儲器(R0M)、隨機存取存儲器(RAM)、CD-R0M、磁帶、軟盤、光學(xué)數(shù)據(jù)存儲裝置等。計算機可讀記錄介質(zhì)也可以分布在聯(lián)網(wǎng)的計算機系統(tǒng)上,使得按照分布式方式存儲和執(zhí)行計算機可讀代碼。
[0140]盡管已經(jīng)參考本發(fā)明的示例實施例詳細地示出和描述了本發(fā)明,然而本領(lǐng)域技術(shù)人員將理解:在不脫離由所附權(quán)利要求限定的本發(fā)明的精神和范圍的前提下,可以進行各種形式和細節(jié)上的改變。應(yīng)當(dāng)僅在描述的意義下而為了限制的目的來考慮示例實施例。因此,本發(fā)明的范圍不是由本發(fā)明的【具體實施方式】而是由所附權(quán)利要求來限定,并且在該范圍內(nèi)的所有不同將被認為被包含在本發(fā)明中。
【主權(quán)項】
1.一種多處理裝置中的調(diào)度方法,所述調(diào)度方法包括: 將多個處理器中所有或一部分處理器分組為至少一個或多個處理器組; 如果存在被指定用于接收到的分組的流的處理器組或處理器,向所指定的處理器組或處理器分配所述流;以及 如果不存在被指定用于接收到的分組的流的處理器組或處理器,生成用于所述流的新處理器組,以及向所述新處理器組分配所述流,或者向不屬于任何處理器組的處理器分配所述流。2.根據(jù)權(quán)利要求1所述的調(diào)度方法,其中,生成和分配所述新處理器組包括: 將所述多個處理器中未被分組的所有或一部分處理器分組為新處理器組;以及 向所述新處理器組分配接收到的分組的流。3.根據(jù)權(quán)利要求1所述的調(diào)度方法,還包括: 向各處理器組中的一個處理器組中的處理器之一發(fā)送中斷信號;以及由所述處理器接收所述中斷信號,停止先前執(zhí)行的任務(wù),執(zhí)行調(diào)度操作,以及恢復(fù)先前執(zhí)行的任務(wù)。4.一種多處理裝置中的調(diào)度方法,所述調(diào)度方法包括: 基于多個處理器的負載狀態(tài)或處理容量,或基于接收到的分組的屬性,來確定單調(diào)度或多調(diào)度; 如果確定單調(diào)度,指定所述多個處理器之一為調(diào)度器;以及 如果確定多調(diào)度,將所述多個處理器分為至少兩個或更多個處理器組,以及指定每個處理器組中的處理器之一作為每個處理器組的調(diào)度器。5.根據(jù)權(quán)利要求4所述的調(diào)度方法,還包括: 如果確定多調(diào)度,以及不存在被指定用于接收到的分組的流的處理器組或處理器,生成用于所述流的新處理器組。6.根據(jù)權(quán)利要求5所述的調(diào)度方法,其中,生成所述新處理器組包括: 將所述多個處理器中未被分組的所有或一部分處理器生成為新處理器組。7.—種調(diào)度方法,包括: 根據(jù)通過物理網(wǎng)絡(luò)接收到的分組來獲取深度分組,所述深度分組包括封裝在物理網(wǎng)絡(luò)幀中的虛擬化環(huán)境網(wǎng)絡(luò)層信息; 基于所述深度分組中包括的虛擬化環(huán)境網(wǎng)絡(luò)層信息來識別所述深度分組的深度流;以及 以識別出的深度流為單位,向相應(yīng)隊列分配所述深度分組。8.根據(jù)權(quán)利要求7所述的調(diào)度方法,還包括: 根據(jù)虛擬機將一個或多個隊列分組。9.根據(jù)權(quán)利要求7所述的調(diào)度方法,其中: 識別所述深度分組包括識別所述深度分組的目的虛擬機;以及 分配所述深度流包括基于所述目的虛擬機和所述深度流,向相應(yīng)隊列分配所述深度分組。10.根據(jù)權(quán)利要求7所述的調(diào)度方法,其中,所述虛擬化環(huán)境網(wǎng)絡(luò)層信息指代由虛擬機形成的網(wǎng)絡(luò)的層信息,以及所述虛擬化環(huán)境網(wǎng)絡(luò)層信息被封裝在物理網(wǎng)絡(luò)幀中,以通過由虛擬機形成的網(wǎng)絡(luò)的層來發(fā)送分組,以及所述深度分組被封裝在物理網(wǎng)絡(luò)幀中,以便通過物理網(wǎng)絡(luò)上的一般通信協(xié)議來識別和順利發(fā)送。11.根據(jù)權(quán)利要求7所述的調(diào)度方法,其中,分配所述深度分組包括: 基于目的虛擬機,從包括至少一個或多個隊列在內(nèi)的多個隊列組中選擇隊列組;以及 基于所述深度流在所選擇的隊列組中選擇用于存儲分組的隊列。12.根據(jù)權(quán)利要求7所述的調(diào)度方法,其中,向每個虛擬機分配的隊列的數(shù)量是基于虛擬化環(huán)境信息來確定的,所述虛擬化環(huán)境信息包括與虛擬機或負載分布有關(guān)的信息。13.根據(jù)權(quán)利要求7所述的調(diào)度方法,其中,向每個虛擬機分配包括至少一個或多個隊列在內(nèi)的多個隊列組,以及調(diào)度器基于所述深度分組的目的虛擬機向所述深度分組分配所述多個隊列組之一,以及基于所述深度流來分配所選擇的隊列組中的隊列。14.一種網(wǎng)絡(luò)接口單元,包括: 分組接收器,被配置為根據(jù)通過物理網(wǎng)絡(luò)接收到的分組來獲取深度分組,所述深度分組包括封裝在物理網(wǎng)絡(luò)幀中的虛擬化環(huán)境網(wǎng)絡(luò)層信息; 分組分析器,被配置為基于所述深度分組中包括的虛擬化環(huán)境網(wǎng)絡(luò)層信息來識別所述深度分組的深度流;以及 調(diào)度器,被配置為以識別出的深度流為單位向相應(yīng)隊列分配所述深度分組。15.根據(jù)權(quán)利要求14所述的網(wǎng)絡(luò)接口單元,其中,所述調(diào)度器基于目的虛擬機從包括至少一個或多個隊列在內(nèi)的多個隊列組中選擇隊列組,以及基于所述深度流在所選擇的隊列組中選擇用于存儲分組的隊列。
【文檔編號】G06F9/48GK105900063SQ201580003775
【公開日】2016年8月24日
【申請日】2015年6月12日
【發(fā)明人】鄭基雄
【申請人】鄭基雄, 顧播網(wǎng)株式會社