CN105900063A - 多处理环境中的调度方法和装置 - Google Patents

多处理环境中的调度方法和装置 Download PDF

Info

Publication number
CN105900063A
CN105900063A CN201580003775.7A CN201580003775A CN105900063A CN 105900063 A CN105900063 A CN 105900063A CN 201580003775 A CN201580003775 A CN 201580003775A CN 105900063 A CN105900063 A CN 105900063A
Authority
CN
China
Prior art keywords
processor
packet
stream
group
deep
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580003775.7A
Other languages
English (en)
Other versions
CN105900063B (zh
Inventor
郑基雄
Original Assignee
Gubernet Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020140079129A external-priority patent/KR101764811B1/ko
Priority claimed from KR1020150046740A external-priority patent/KR20150114911A/ko
Application filed by Gubernet Inc filed Critical Gubernet Inc
Priority claimed from PCT/KR2015/005914 external-priority patent/WO2015199366A1/ko
Publication of CN105900063A publication Critical patent/CN105900063A/zh
Application granted granted Critical
Publication of CN105900063B publication Critical patent/CN105900063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity

Abstract

提供用于处理分组的网络接口单元及其方法。该网络接口单元包括多个队列,如果通过物理网络接收到分组,则识别该分组的流,以流为单位将分组存储在多个队列中,以及通过多处理器来并行处理分组。

Description

多处理环境中的调度方法和装置
技术领域
本发明涉及多调度方法和装置,且具体涉及在用于并行处理分组的多处理环境中的调度方法和装置。
背景技术
多处理系统通过使用多个中央处理单元(CPU)核来并行处理多个进程。然而,多处理导致CPU核之间的均匀负载均衡、CPU核共享的资源之间的冲突、高速缓存效率恶化等问题。
具体地,为了提高分组处理效率,并行处理分组的多处理系统可以使得相同的CPU能够处理属于相同流的分组,并可以保持流对CPU的密切性(affinity)。在该情况下,特定CPU可能过载,且因而所有CPU之间的负载均衡可能是不均衡的。因此,可能降低多处理系统的整体处理效率。
为解决此问题,可以周期性地在CPU之间执行负载均衡。在该情况下,在负载均衡处理中改变处理流的CPU,且从而使流密切性降低,并改变了分组处理顺序,以使得分组重排序处理变为必须的。因此,降低了多处理系统的分组处理效率。
如上所述,为了提高多处理系统的处理效率,流密切性和合适的负载均衡是必须的。然而,这二者相互冲突,从而可以对此加以适当补充。
此外,由于近来互联网业务增长,因此服务器具有大容量和高速度。服务器的虚拟化促进了对由服务器大容量所引起的物理体积增加、成本等的解决方案。由于服务器的大容量、高速度和虚拟化,要求对包括数据分组在内的海量数据进行高效的并行处理,该海量数据由从物理网络接收的虚拟环境生成。此外,当在虚拟服务器中执行虚拟交换功能时,由于服务器负载增加,服务器的性能变差。因此,要求将根据虚拟交换功能来改变服务器的负载的技术实现到物理网络接口单元中。
作为支持物理网络接口设备中的虚拟环境的方法,支持虚拟环境的常规网络接口卡(NIC)已尝试以虚拟机为单位来生成和管理队列,以降低在网络接口设备和服务器的虚拟交换机之间的瓶颈现象。然而,当为了并行处理接收到的数据分组而执行处理器分配和队列再分布时,该尝试仅以虚拟机为单位来进行。换句话说,执行的是仅考虑虚拟化环境的物理层的处理器分配。因此,可能没有考虑作为对提高并行处理的处理效率来说非常重要的要素之一的处理器密切性,并且处理器分配和队列再分布是在仅考虑到处理器的使用负载的情况下来发生的。这可能作为降低并行处理的效率的因素。
发明内容
技术问题
提供了一种在执行分组并行处理的多处理环境中减轻流密切性和负载均衡之间的冲突并提高所有处理器的使用效率的调度方法和装置。
技术方案
根据示例实施例的方案,提供了一种多处理装置中的调度方法,所述调度方法包括:将多个处理器中所有或一部分处理器分组为至少一个或多个处理器组;如果存在被指定用于接收到的分组的流的处理器组或处理器,向指定的处理器组或处理器分配该流;以及如果不存在被指定用于接收到的分组的流的处理器组或处理器,生成用于该流的新处理器组并向新处理器组分配该流,或者向不属于任何处理器组的处理器分配该流。
根据另一示例实施例的方案,提供了一种多处理装置中的调度方法,所述调度方法包括:基于多个处理器的负载状态或处理容量,或基于接收到的分组的属性来确定单调度或多调度;如果确定单调度,指定多个处理器之一为调度器;以及如果确定多调度,将多个处理器分组为至少两个或更多个处理器组,并指定每个处理器组中的处理器之一作为每个处理器组的调度器。
根据另一示例实施例的方案,提供一种调度方法,包括:根据通过物理网络接收到的分组来获取深度分组,所述深度分组包括封装在物理网络帧中的虚拟化环境网络层信息;基于深度分组中包括的虚拟化环境网络层信息来识别深度分组的深度流;以及以识别出的深度流为单位,向相应队列分配深度分组。
根据另一示例实施例的方案,提供了一种网络接口单元,包括:分组接收器,被配置为根据通过物理网络接收到的分组来获取深度分组,所述深度分组包括封装在物理网络帧中的虚拟化环境网络层信息;分组分析器,被配置为基于深度分组中包括的虚拟化环境网络层信息来识别深度的深度流;以及调度器,被配置为以识别出的深度流为单位向相应队列分配所述深度分组。
本发明的有益效果
根据本发明,可以减轻流密切性和负载均衡之间的冲突,以提高并行处理的性能。此外,可以使用动态指定的多个调度器来降低由分组调度和排队所引起的时延。此外,通过多个调度器可以容易地应用依赖于业务属性的各种类型的调度算法。此外,降低了包括虚拟化环境在内的服务器的负载,该虚拟化环境包括多个虚拟机。以深度流为单位来处理分组,以提高深度分组和处理器之间的密切性,从而提高并行处理的效率。此外,可以将虚拟交换机的负载分布到网络接口卡中,以提高虚拟网络处理的效率。此外,可以按深度流为单位将分组排队并处理,以实现确保虚拟机终端之间的深度流处理单元的QoS的可扩缩通信处理。
附图说明
图1是示出了根据本发明示例实施例的用于执行单调度的多处理装置的视图。
图2是示出了根据本发明示例实施例的用于执行单调度的多处理方法的视图。
图3是示出了根据本发明示例实施例的用于多调度的分类策略的视图。
图4是示出了根据本发明示例实施例的使用多调度方法的多处理装置的结构的视图。
图5是示出了根据本发明示例实施例的多调度器的详细结构的视图。
图6是根据本发明示例实施例的多处理环境中的多调度方法的流程图。
图7是根据本发明另一示例实施例的多处理环境中的多调度方法的流程图。
图8是根据本发明示例实施例的在多处理环境中的处理器组中被指定为调度器的处理器的调度方法的流程图。
图9是示出了根据本发明示例实施例的用于多调度的处理器分组的视图。
图10是示出了根据本发明示例实施例的为了多调度而将处理器动态分组的方法的视图。
图11是示出了根据本发明示例实施例的包括用于多处理的网络接口单元在内的系统的示意结构的视图。
图12是示出了根据本发明示例实施例的动态设置NIC的资源的方法的视图。
图13是示出了根据本发明示例实施例的NIC的结构的视图。
图14是示出了根据本发明示例实施例的基于NIC的深度流的队列分配的视图。
图15是示出了根据本发明另一示例实施例的基于NIC的深度流的队列分配的视图。
图16是示出了根据本发明示例实施例的所使用的深度分组的视图。
图17是示出了根据本发明示例实施例的对虚拟机环境的分组进行处理的方法的流程图。
具体实施方式
现在将参考附图来详细描述根据本发明的多处理环境中的多调度方法和装置。
图1是示出了根据本发明示例实施例的用于执行单调度的多处理装置的视图。
参考图1,多处理装置100包括分组识别器105、分组发送器140、分组分配表130、存储器104、多个队列110、112和114、多个处理器120、122和124、以及控制器150。
分组识别器105从有线或无线网络或从另一装置接收分组,并且识别接收到的分组的流。分组识别器105还通过参考分组分配表130来检查是否存在分配给接收到的分组的流的处理器。
分组分配表130包括分别分配给分组的流的处理器的信息。例如,分组分配表130包括指示将第一处理器分配为用于处理第一和第二流的处理器且将第二处理器分配为用于处理第三流的处理器的信息。存储在分组分配表130中的信息由稍后将描述的调度器来生成和更新。
存储器104存储由分组识别器105所接收的分组。这里,存储器104可以将识别器105所识别的分组的流信息和参考分组分配表130所识别的处理器信息等存储在一起。
分组发送器140向相应处理器的队列发送存储在存储器104中的分组。分组发送器140可以按顺序向处理器队列发送存储在存储器中的分组,或者可以在考虑各种条件(如服务质量(QoS)、优先级等)的情况下不按顺序向处理器队列发送分组。
队列110、112和114从存储器104接收将被每个处理器处理的分组并存储分组。在该示例实施例中,队列110、112和114逐个分别存在于处理器120、122和124中,但不限于此。在一个处理器中可以存在两个或更多个队列,或者两个或更多个处理器可以共享一个队列。备选地,可以通过图11至17公开的方法将队列110、112和114分组。
此外,队列110、112和114具有先入先出(FIFO)结构,但不必限于此。因此,队列110、112和114可以实现为各种类型的结构,例如后入先出(LIFO)结构、基于优先级的输出等,即,队列110、112和114可以具有能够存储将被每个处理器处理的分组的任何结构。
如果分组分配表130中不存在分组流信息,控制器150将多个处理器之一指定为调度器,然后发送中断请求信号。接收到中断请求信号的处理器选择将处理分组的处理器,并将关联信息存储在分组分配表中。
多个处理器120、122和124分别处理分组。在考虑多处理系统的效率和制造成本降低的情况下,可以不包括用于分组调度的附加调度器,并且可以使用多个处理器之一(例如,第一处理器120)作为调度器。将参考图2来描述使用多个处理器之一作为调度器的方法。此外,在该示例实施例中,除了多个处理器外,还可以包括附加调度器。
图2是示出了根据本发明示例实施例的用于执行单调度的多处理方法的视图。
参考图1和2,在操作S200和S210中,分组识别器105分析接收到的分组以识别分组流。这里,流识别方法分析接收到的分组的所有网络层的业务属性,以根据预设网络通信策略对分组流加以分类。例如,可以根据预设通信策略,通过使用接收到的分组的属性,例如发送节点地址、目的地址、会话和应用层等作为要素,来识别一个流。在操作S220中,分组识别器105通过参考分组分配表130来检查是否存在将处理流的处理器的信息。分组、相应分组的流信息、处理器信息等存储在存储器104中。
在操作S230中,如果分组分配表130中存在将处理流的处理器的信息,则在操作S260中,分组发送器140向相应处理器的队列发送分组。例如,如果分组识别器105将接收到的分组识别为第一流,并且在分组分配表130中第二处理器被分配为将处理第一流的处理器,则分组发送器140向第二处理器122的队列112发送分组。
在操作S230中,如果分组分配表130中不存在将处理该流的处理器的信息,即该流是新的流,则在操作S240中,控制器150向多个处理器中被指定为调度器的一个处理器发送中断请求信号。控制器150可以将多个处理器中当前具有较低负载的一个处理器指定为调度器,可以通过预设调度器确定算法来指定调度器,或可以将预设处理器指定为调度器。在该示例实施例中,指定第一处理器120作为调度器。
在操作S250中,接收到中断请求信号的处理器120停止先前执行的任务并执行调度操作。例如,在操作S250中,被指定为调度器的处理器120选择将处理新的流的处理器,并在操作S260中,将与选定的处理器有关的信息存储在分组分配表130中。如果向被指定为调度器的处理器发送中断请求,则否决请求处理新输入分组的中断请求,直到解除该中断为止。
此外,被指定为调度器的处理器120可以周期性地或当特定事件发生时(即处理器的负载不均衡高于或等于预设水平时),应用已有的各种负载均衡算法,以便在处理器之间尝试负载再均衡。
如图1和2所示,当一个调度器120被选择为执行相应的任务时,系统否决新的中断,并延迟对新的流的处理,直到解除所请求的中断为止。此外,针对多个处理器中的所有处理器,执行用于解决负载不均衡的负载再均衡。因此,流密切性和负载均衡之间的冲突变得更为严重。这可以通过图4的多调度来减轻。
图3是示出了根据本发明示例实施例的用于多调度的分类策略的视图。
参考图3,分类策略包括将多个处理器分组的策略。如将参考图4所述,多调度将多个处理器分为至少两个或更多个组,并针对每个组来执行调度。为此,要求将多个处理器分组的策略。
作为分类策略的示例,存在如图3所示的基于分组流的策略。基于可将分组流分层划分的属性,可以将流分为两个组A和B。在该情况下,根据当前要被处理的流属于哪一组,可以将多个处理器分到两个组中。
再例如,存在基于处理器负载的分类策略。可以根据预设的组的数量来划分处理器,以均匀化每个组的负载分布。
可能存在将多个处理器分组的多个分类策略。例如,第一策略可以是基于流将多个处理器分为两个组的策略,第二策略可以是基于流将多个处理器分为三个组的策略,并且第三策略可以是根据多个处理器的负载将多个处理器分为至少两个或更多个组的策略。
本发明不限于图3的示例实施例,并且可以应用各类分类策略来划分处理器。分类策略可以由用户通过附加输入/输出接口来预设和更新。如图4所示,针对多调度,可以预设用于划分多个处理器的标准(即分类策略)。
图4是示出了根据本发明示例实施例的使用多调度方法的多处理装置的结构的视图。
参考图4,多处理装置400包括分组识别器410、分组发送器480、分组分配表420、多调度器430、存储器440、多个队列450、以及多个处理器460、462、464、466、470、472和474。
分组识别器410、分组发送器480、分组分配表420、存储器440、多个队列450、处理器460、4620、464、466、470、472和474等包括参考图1所描述的所有结构和功能。因此,省略该示例实施例中和图1的要素和功能相同的的要素和功能的重复描述,且主要将描述根据该示例实施例的多调度所必需的要素和功能。
基于多处理器的状态信息,例如负载分布状态、业务属性、业务处理容量等,多调度器430确定执行单调度还是多调度。例如,多调度器430可以执行单调度,然后从单调度变为多调度。相反,多调度器430可以执行多调度,然后从多调度变为单调度。
如果存在如图3所示的多个分类策略,则多调度器430可以基于状态信息来确定将应用哪个分类策略。如果多调度器430确定将执行多调度,则多调度器430根据分类策略将多个处理器分类到至少两个或更多个组中,并指定将针对每个组来执行调度的调度器。图5中示出了多调度器的详细结构。
例如,如图4所示,多调度器430将7个处理器分类成两个处理器组(第一组:第一至第四处理器,第二组:第五至第七处理器),并根据预设的调度器确定算法,将分别属于这两个组的处理器466和474指定为调度器。如果多调度器430将处理器分组,则与处理器组有关的信息可以存储在分组分配表420。
例如,如果如图3所示基于流将处理器分组,则多调度器430将与该流属于哪一组有关的信息存储在分组分配表420中。
如果分组分配表420中不存在与新接收到的分组流有关的信息,则分组识别器410检查新的流属于哪一组,并将相应分组和与相应分组有关的识别信息存储在存储器440中。多调度器430通过负载程度或预设的调度器确定算法来指定将处理相应组中的相应分组的调度器,并向指定的调度器发送中断请求信号以处理该相应分组。被指定为调度器的处理器执行从组中选择将处理相应流的处理器的调度操作等,如图1所示。
例如,根据图3的分组策略,可向流组A 300中分配包括第一至第四处理器在内的第一处理器组490,以及可向流组B 310中分配包括第五至第七处理器在内的第二组495。如果接收到的分组的流属于流组A 300,则多调度器430指定属于第一处理器组490的处理器之一作为调度器,以执行相应组490中的调度操作。这里,无论是否执行了第一组490的调度操作,第二处理器组495都可以执行对新分组的处理或执行调度操作,以提高所有处理器的处理效率。换句话说,可以并行执行第一处理器组490和第二处理器组495的调度操作。
再例如,在多调度中,可以根据处理器的负载、若干策略等而经常改变处理器的分组,并且未被分组的处理器可以被新分组到用于接收到的分组的新流的处理器组中。稍后将参考图9和10对此进行描述。
图5是示出了根据本发明示例实施例的多调度器的详细结构的视图。
参考图5,多调度器430包括策略确定器500、组划分器510和调度器指定器520。
通过使用多处理环境的状态信息,例如负载分布状态、业务属性、业务处理容量等信息,策略确定器500确定单调度或多调度。此外,如果策略确定器500执行多调度,则策略确定器500确定如何划分多个处理器或者将对每个划分的组应用哪个策略。
例如,如果多处理装置的整体业务处理容量低于或等于预设水平,则策略确定器500可以确定执行多调度,并选择如图3所示的基于流的策略作为分类策略。
根据策略确定器500确定的分类策略,组划分器510将多个处理器划分为至少两个或更多个组。
调度器指定器520通过负载程度或预设的调度器选择算法,指定每个组中的处理器之一作为调度器。例如,调度器指定器520可以指定每个组中具有最小负载的处理器作为调度器。此外,还可以将特定处理器固定为调度器,或者可以应用其他若干选择方法来动态指定调度器。
图6是根据本发明示例实施例的多处理环境中的多调度方法的流程图。
一起参考图4和6,在操作S600中,多调度器430检测状态信息,例如业务容量、流属性、负载分布状态等。在操作S610中,多调度器430基于状态信息来确定将执行单调度还是多调度。如果多调度器430执行单调度,则多调度器430指定多个处理器之一作为调度器。如果多调度器430执行多调度,则在操作S620中,多调度器430根据分类策略将多个处理器分为至少两个或更多个组,并在操作S630中,指定每个组中将作为调度器工作的处理器。如图1所示,每个组中被指定的处理器根据中断请求信号针对相应分组执行调度操作。然而,每个组中被指定的处理器仅针对被指定处理器所属的组中的处理器(而不是针对所有处理器)来执行调度。因此,两个或更多个划分的组中被指定的调度器可以同时独立执行调度任务。换句话说,每个组的调度器可以从多调度器430接收中断信号,并且无论另一组的调度器的中断是否解除,都执行调度任务,例如,对用于处理分组的处理器的选择。此外,划分的组可以独立地使用不同的策略或算法。
图7是示出了根据本发明另一示例实施例的多处理环境中的多调度方法的流程图。在图7中,如上所述,多调度器可以将多个处理器分组。
参考图4和7,在操作S700中分组识别器410接收分组,且在操作S710中分析分组以识别流。
在操作S730中,如果分组分配表420中存在与相应流有关的信息,则分组识别器410检查新的流属于哪个组,并将相应分组和与相应分组有关的识别信息存储在存储器440中。多调度器430向相应调度器发送中断请求信号以处理相应分组。
在操作S730中,如果分组分配表420中不存在与相应流有关的信息,则在操作S740中,多调度器430通过参考分类策略来检查该流属于哪个组。例如,如果如图3所示基于流来划分处理器组,则多调度器430基于将流分层划分的高秩(high-rank)属性来检查新识别出的流属于哪个组。再例如,如果根据负载分布来划分处理器组,则多调度器430可以选择具有相对较低负载的组作为新识别出的流所属的组。
多调度器430检查新的流属于哪个组,通过使用负载程度或预设的调度器确定算法来指定相应组中将处理相应分组的调度器,并向所指定的调度器发送中断信号以处理该相应分组。
在操作S750和S760中,接收到中断信号的处理器作为调度器工作,选择将处理新的流的处理器,并将关联信息存储在分组分配表420中。
例如,再参考图4,如果新的流被分配到包括第一至第四处理器在内的组中,则多调度器430向被指定为调度器的第四处理器466发送中断信号。通过预设的处理器确定算法,第四处理器466选择第一处理器460作为将处理相应分组的处理器,并将相应信息存储在分组分配表420中。如果接收到相同流的分组,则分组发送器480向第一处理器460分配相应分组。
图8是示出了根据本发明示例实施例的在多处理环境中被指定为处理器组中的调度器的处理器的调度方法的流程图。
参考图8,操作S800中,在接收到中断信号前,多个处理器执行流处理过程。如果存在被分配给新接收到的分组的流的处理器组或处理器,多调度器430向预先指定的处理器组或处理器分配流。如果不存在被分配给新接收到的分组的流的处理器组或处理器,则在操作S810中,多调度器430生成用于该新分组的流的处理器组,并向生成的处理器组中的一个处理器发送中断信号。
在操作S820中,接收到中断信号的处理器停止先前执行的操作,并在操作S830中,执行确定新分组的流将被分配给哪个处理器的调度操作,并在操作S840中,恢复在接收到中断信号前执行的操作。多调度器430可以向各处理器组分别发送中断信号,因而各处理器组可以分别同时执行调度操作。
图9是示出了根据本发明示例实施例的用于多调度的处理器分组的视图。
参考图9,如果多调度器430执行单调度,则多调度器430指定多个处理器900之一作为调度器。如果多调度器430执行多调度,多调度器430将所有或一部分处理器分为至少一个或多个组910和920,并分别指定各组的调度器。
多调度器430可以根据处理器的负载状态或预设的若干策略来生成新的处理器组或更新已有的处理器组。
例如,在多调度情况下,多调度器430可以将多个处理器分为包括第一至第三处理器在内的第一组910和包括第四和第五处理器在内的第二组920,并且可以不对其他处理器分组。
如果在多调度操作期间需要生成新的处理器组,多调度器430可以将当前未被分组的所有或一部分处理器分组以生成新的处理器组,或者可以将已有的处理器组重新分组以生成新的处理器组。
再例如,在多调度操作期间,多调度器430可以执行将新的处理器添加到已有的组(例如,包括第一至第三处理器在内的第一组910和包括第四和第五处理器在内的第二组920)中或者从已有的组中排除一些处理器的更新操作。
图10是示出了根据本发明示例实施例的将处理器动态分组用于多调度的方法的视图。
参考图10,如果要求用于接收到的分组的流的新的处理器组,或者要求改变以前的处理器组,则在操作S1000中,多调度器430新生成处理器组或更新已有的处理器组。例如,如果不存在被分配给新接收到的分组的流的处理器组或处理器,则多调度器430将未被分组的所有或一部分处理器生成为新的处理器组。
再例如,如果处理器组的负载或所有处理器的负载达到预设水平或者根据预设策略,多调度器430可以新产生所有的处理器组,将新的处理器添加到特定处理器组中,以及从组中排除至少一个已有的处理器。
在操作S1010中,多调度器430将所生成或更新的处理器组中的一个处理器指定为调度器。每个组中的一个处理器并不总是作为调度器来工作,仅当接收到中断信号时作为调度器工作,如参考图8所述,并且如果调度操作完成,执行与其他一般处理器相同的操作。
至此已描述了主要是分组和调度多个处理器的方法。下文中,现在将描述主要是分组和调度与多个处理器相连的队列的方法。图1至10的技术要素可被添加到图11至17的技术要素中,或者图11至17的要素可被添加到图1至10的要素中。换句话说,可以同时执行参考图1至10描述的对多个处理器的分组和将参考图11至17描述的对多个队列的分组。多处理装置可被实现为网络接口单元。
图11是示出了根据本发明示例实施例的包括用于多处理的网络接口单元在内的系统的示意结构的视图。
参考图11,网络接口单元被实现为网络接口卡(NIC)1100。然而,网络接口单元不必限于网络接口卡1100,且可被实现为服务器内部和外部的各种类型,如硬件、软件等。为方便描述,网络接口单元被表述为NIC。
服务器1120包括多个虚拟机1150、1152和1154、虚拟交换机1140、以及连接槽1130。虚拟交换机1140向目的虚拟机发送通过NIC 1100接收到的分组。连接槽1130是将NIC 1100和服务器1120相连的接口,例如可被实现为高速外围组件互连(PCIe)。在该情况下,NIC 1100可以附接在PCIe槽中。
NIC 1100分析从网络1110接收到的分组的上层的业务特征,以识别流并通过多处理器并行地处理识别出的流。这里,分组指代通过使用各种类型的隧道传输技术(tunneling)来封装虚拟化环境网络层信息以便被发送至多个虚拟机的分组。虚拟化环境网络层指代由虚拟机形成的网络的层,且虚拟化环境网络层信息指代由虚拟机形成的网络的层信息,并且虚拟化环境网络层信息被封装在物理网络帧中,以通过由虚拟机形成的网络的层来发送分组。下文中,基于该示例实施例中使用的虚拟化环境网络层信息而被识别的分组将被称为深度分组。深度分组被封装在物理网络帧中,以便通过物理网络上的一般通信协议来识别和顺利发送。此外,通过使用深度分组的虚拟化环境网络层信息来分类的流被称为深度流。深度流可被描述为由通信服务结构中的服务终端的虚拟机生成的流。
深度流可被定义为虚拟化环境网络上的特定业务,该特定业务是根据虚拟化环境网络帧中的上层(高于或等于虚拟层3(vL3))的业务属性来分类的,该虚拟化环境网络帧是通过对深度分组的物理网络帧解封装而获得的。可以根据预设的若干策略来分类和识别深度流。例如,分组分析器1310可以将虚拟机的TCP流识别为深度流。稍后将参考图16来描述深度分组的结构。
NIC 1100包括用于并行处理接收到的深度分组的多个队列和多个处理器。队列的大小和数量是固定的,或者根据与深度流有关的信息、服务器的虚拟化环境信息、处理器的负载等来动态改变。
图12是示出了根据本发明示例实施例的动态设置NIC的资源的方法的视图。
参考图11和12,在操作S1200中,如果NIC 1100附接到服务器1120的连接槽1130中以与服务器1120相连,则在操作S1210中,NIC1100从服务器1120接收包括虚拟机数目在内的虚拟化环境信息。在操作S1220中,根据与深度流有关的信息、接收到的虚拟化环境信息、处理器的负载分布等,NIC 1100动态分配资源,例如队列的大小和数量、队列组的代(generations)等。
例如,如果NIC 1100从服务器1120接收到指示存在四个虚拟机的虚拟化环境信息,则NIC 1100可以为四个虚拟机中的每个虚拟机分配十二个队列中的三个队列。再例如,基于与深度流有关的信息,NIC1100可以将深度流分为两组,并为两组中每一组分配六个队列。可以根据预设规则以各种方式确定分配给每个虚拟机的队列的数量、每个队列的大小等。
图13是示出了根据本发明示例实施例的NIC的结构的视图。
参考图13,NIC 1100包括分组接收器1300、分组分析器1310、存储器1320、多个队列1330、多个处理器1340、调度器1350、监视单元1360、以及队列管理器1370。
在包括分组接收器1300在内的元件之间的连接线仅是示例实施例,用以帮助理解本发明。可以实现各种连接关系,例如队列管理器1370和监视单元1360之间的连接、调度器1350和多个队列1330之间的连接等。
如果接收到使用各种常规隧道传输方法来封装深度分组以便在外网上被识别为一般以太帧的分组,则分组接收器1300将其解封装以移除对应于物理网络的报头部分,并恢复用于虚拟化环境的数据分组帧。
分组分析器1310识别所恢复的深度分组的深度流。为识别深度流,不仅可以分析数据链路层(vL2层),还可以分析虚拟化环境中高于或等于网络层(vL3层)的上层。为此,分组分析器1310通过深度分组检测(DPI)处理来分析经过解封装的深度分组的从虚拟数据链路层(vL2层)到虚拟应用层(vL7层)的各层,并识别流。对深度分组的用于识别深度流的分析不限于对从虚拟数据链路层到虚拟应用层的所有层的分析,且因此分析范围可以根据深度流识别策略而改变。
存储器1320存储深度分组和分组分析器1310识别出的深度流信息,且存储和管理指示深度流和队列之间的映射关系的流表。
例如,分组接收器1300在存储器1320中存储经过解封装的深度分组,并向分组分析器1310通知对深度分组的存储。假如分组分析器1310识别出存储器1320中存储的相应深度分组的深度流。换句话说,被通知了接收到新的深度分组的分组分析器1310根据预设策略来识别相应深度分组的深度流属性,存储与深度流属性有关的信息,并向调度器1350通知对该信息的存储。
调度器1350向相应队列分别分配所识别出的深度流,且向多处理器1340并行分配该队列。更具体地,调度器1350通过参考存储器1320中存储的流表来搜索深度分组的深度流所映射到的队列,并向搜索到的队列发送存储器1320中存储的深度分组。如果表中不存在与接收到的深度分组的深度流有关的映射信息,则调度器1350通过各种常规方法向特定队列分配深度流,并在流表中存储深度流和该队列之间的映射关系。
调度器1350可以以深度流为单位对各虚拟机的深度分组进行排队。例如,当设置了深度流和队列之间的映射关系时,可以向相同队列分配具有相同属性(例如,相同QoS优先级)以第一和第二虚拟机为目标的第一流和第二流。
本发明不排除如下情形:可以向不同组的队列分配各虚拟机的每个深度流,以提高并行处理的效率。换句话说,如果每个虚拟机的队列被如图14所示分组,则调度器1350以深度流为单位向第一组1400的队列分配第一虚拟机的第一流,并以深度流为单位向第二组1410的队列分配第二虚拟机的第二流。
例如,如果存储器1320中加载了指示新的深度分组的信息且接收到相应深度分组的深度流信息,则调度器1350可以参考流表来搜索深度流被分配到哪个队列,并将存储器1320中加载的深度分组加载到相应队列中。如果流表中未搜索到与识别出的深度流有关的信息,则调度器1350可以根据预设策略,向属于相应虚拟机的队列之一分配相应深度分组。这里,预设策略可以根据示例实施例而变化,例如,可以有在考虑到流密切性的情况下选择队列的策略、从深度分组将被发向的虚拟机的队列中选择具有最小负载的队列的策略、选择被分配给具有最低使用率的处理器的队列的策略等等。
多个队列1330被分别映射在至少一个或多个深度流上。如果以深度流为单位执行排队,则提高了处理器密切性,因而提高了并行处理的效率。可以根据虚拟机将多个队列1330分为包括至少一个或多个队列在内的组。此外,多个队列1330可被分为至少一个或多个分区,如图15所示。此外,多个队列1330可被分为至少两个或更多个分区,如图15所示。
调度器1350可以是从多个处理器中选择的处理器。例如,可以将所有处理器1380中的特定处理器1350指定为调度器,或者可以基于监视单元1360监视的各处理器的负载来选择具有最小负载的处理器作为调度器1350。除此以外,还可以应用选择调度器的各种方法。与参考图8描述的方法一样,如果从处理器中指定调度器,每当需要调度时,控制器(未示出)生成中断信号并向被指定为调度器的处理器发送该中断信号,且接收到该中断信号的处理器停止该处理器正在执行的任务,完成调度器的操作,并重新执行先前的任务。
多个处理器1340并行地处理分别存储在队列中的深度分组,并向服务器的虚拟机发送经过处理的深度分组。上面参考图1至10描述的单调度或多调度方法可以应用于多个处理器。换句话说,多个处理器可以被分组并以组为单位来调度。多个处理器1340连接到至少一个或多个队列。
例如,在考虑到流密切性的情况下,多个处理器1340连接到队列。换句话说,将存储具有相同或相似深度流属性的深度分组的队列加以分组,然后将其连接到处理器。
再例如,多个处理器1340可以根据虚拟机来连接到队列。参考图14,第一处理器可以连接到被分配给第一虚拟机的第一至第三队列1400,第二处理器可以连接到被分配给第二虚拟机的第四至第六队列1410,并且第三处理器可以连接到被分配给第三虚拟机的第七和第八队列1420。
再例如,第一处理器可以连接到被分配给第一虚拟机的第一至第三队列和被分配给第二虚拟机的第四队列。在该情况下,第二处理器可以连接到被分配给第二虚拟机的第五和第六队列。换句话说,处理器可以连接到被分配给两个或更多个虚拟机的所有队列或一部分队列。
监视单元1360监视各种状态,包括处理器1340的负载和队列1330等。
如图15所示,队列管理器1370根据监视结果将队列分为多个分区,并指定用于每个分区的调度器,将多个队列组合成一个组或划分多个队列,或者增加或降低被分配给虚拟机的队列的数量,以调节队列的大小、数量等。根据通过图12的上述处理所检查的服务器的虚拟化环境等,队列管理器可以动态地设置每个虚拟机的队列的数量、大小等。
图14是示出了根据本发明示例实施例的基于NIC的深度流的队列分配的视图。
参考图14,根据虚拟机来划分队列1330。例如,向第一虚拟机分配第一至第三队列1400,向第二虚拟机分配第四至第六队列1410,且向第三虚拟机分配第七和第八队列1420。调度器通过参考每个虚拟机的深度流来执行排队。
例如,如果根据优先级识别出前往第一虚拟机的深度流,则调度器1350基于优先级在被分配给第一虚拟机的第一至第三队列1400中分类和存储深度分组。换句话说,在前往第一虚拟机的深度流中具有最高优先级的深度流被存储在第一队列中,具有次高优先级的深度流被存储在第二队列中,以及具有其他优先级的深度流被存储在第三队列中。
图15是示出了根据本发明另一示例实施例的基于NIC的深度流的队列分配的视图。
参考图15,队列1330被划分为至少两个或更多个分区1520和1530。向分区1520和1530分别分配调度器1500和1510。例如,向第一分区1520分配第一调度器1500,且向第二分区1530分配第二调度器1510。调度器1500和1510独立执行与所分配的分区有关的调度操作。该示例实施例示出了队列1330被分为两个组1520和1530。根据示例实施例,队列1330可被分为三个或更多个组,并且参考图1至10描述的多调度方法可以应用于三个或更多个组中的每个组。调度器可以是按照上文描述的预设方法从多个处理器1380中选择的处理器。
例如,在通过如图13所示的一个调度器进行调度期间,如果监视单元测量的队列的负载分布下降为低于或等于预设阈值,可以确定队列的重均衡或处理器的重分配。备选地,如果处理器的负载低于或等于阈值,可以计算从网络接收到的深度分组的统计数量或者由NIC中的所有处理器执行的处理器能力,以确定队列的重均衡或处理器的充分配。如图15所示,如果队列被划分为多个分区,则当执行队列的重均衡或处理器的重分配时,需要调度器的附加指定,可以将具有最小负载的处理器指定为附加调度器。
可以基于虚拟机将属于每个分区的队列分成组1540,并且可以基于深度流将组中的队列分类。在该情况下,产生了层级结构,即分区-每个虚拟机的组-每个组中的队列。
图16是示出了根据本发明示例实施例的深度分组的视图。
参考图16,深度分组包括物理网络帧1610、隧道传输字段1620、虚拟机间网络帧1630、和数据字段1600。
物理网络帧1610包括指示现有物理网络的层(如L2、IP、TCP等)的信息。隧道传输字段1620指示隧道传输信息等。虚拟机间网络帧1630包括与虚拟机间网络环境中的层(vL2至vL7)有关的信息。数据字段1600包括数据。
图16的深度分组的结构是用于帮助理解本发明的示例实施例,且因而不限于此。因此,可以定义和使用用于虚拟机环境的各类深度分组结构。
此外,根据示例实施例,存储器中存储的深度分组的结构和队列中存储的深度分组的结构可以彼此相同或不同。例如,可以将从网络接收的图16的分组解封装,以恢复深度分组,并将该深度分组改变为可在虚拟机环境中处理的最佳结构,或者可以从深度分组的字段中删除虚拟机环境中不需要的一部分或所有字段。换句话说,可以对设计进行各种改变,然后存储在队列中。
图17是示出了根据本发明示例实施例的对虚拟机环境的分组进行处理的方法的流程图。
参考图17,在操作S1700中,如果网络接口单元接收到深度分组,则在操作S1710中,网络接口单元通过DPI处理等来分析深度分组,以识别深度分组将被发向的目的虚拟机和深度流。在操作S1720中,网络接口单元以深度流为单位将深度分组存储在被分配给每个虚拟机的一个或多个队列中。在操作S1730中,网络接口单元还通过多个处理器来处理存储在每个队列中的深度分组,并向虚拟机发送经过处理的深度分组。
本发明还可以体现为计算机可读记录介质上的计算机可读代码。计算机可读记录介质是能够存储随后可由计算机系统读取的数据的任何数据存储设备。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储装置等。计算机可读记录介质也可以分布在联网的计算机系统上,使得按照分布式方式存储和执行计算机可读代码。
尽管已经参考本发明的示例实施例详细地示出和描述了本发明,然而本领域技术人员将理解:在不脱离由所附权利要求限定的本发明的精神和范围的前提下,可以进行各种形式和细节上的改变。应当仅在描述的意义下而为了限制的目的来考虑示例实施例。因此,本发明的范围不是由本发明的具体实施方式而是由所附权利要求来限定,并且在该范围内的所有不同将被认为被包含在本发明中。

Claims (15)

1.一种多处理装置中的调度方法,所述调度方法包括:
将多个处理器中所有或一部分处理器分组为至少一个或多个处理器组;
如果存在被指定用于接收到的分组的流的处理器组或处理器,向所指定的处理器组或处理器分配所述流;以及
如果不存在被指定用于接收到的分组的流的处理器组或处理器,生成用于所述流的新处理器组,以及向所述新处理器组分配所述流,或者向不属于任何处理器组的处理器分配所述流。
2.根据权利要求1所述的调度方法,其中,生成和分配所述新处理器组包括:
将所述多个处理器中未被分组的所有或一部分处理器分组为新处理器组;以及
向所述新处理器组分配接收到的分组的流。
3.根据权利要求1所述的调度方法,还包括:
向各处理器组中的一个处理器组中的处理器之一发送中断信号;以及
由所述处理器接收所述中断信号,停止先前执行的任务,执行调度操作,以及恢复先前执行的任务。
4.一种多处理装置中的调度方法,所述调度方法包括:
基于多个处理器的负载状态或处理容量,或基于接收到的分组的属性,来确定单调度或多调度;
如果确定单调度,指定所述多个处理器之一为调度器;以及
如果确定多调度,将所述多个处理器分为至少两个或更多个处理器组,以及指定每个处理器组中的处理器之一作为每个处理器组的调度器。
5.根据权利要求4所述的调度方法,还包括:
如果确定多调度,以及不存在被指定用于接收到的分组的流的处理器组或处理器,生成用于所述流的新处理器组。
6.根据权利要求5所述的调度方法,其中,生成所述新处理器组包括:
将所述多个处理器中未被分组的所有或一部分处理器生成为新处理器组。
7.一种调度方法,包括:
根据通过物理网络接收到的分组来获取深度分组,所述深度分组包括封装在物理网络帧中的虚拟化环境网络层信息;
基于所述深度分组中包括的虚拟化环境网络层信息来识别所述深度分组的深度流;以及
以识别出的深度流为单位,向相应队列分配所述深度分组。
8.根据权利要求7所述的调度方法,还包括:
根据虚拟机将一个或多个队列分组。
9.根据权利要求7所述的调度方法,其中:
识别所述深度分组包括识别所述深度分组的目的虚拟机;以及
分配所述深度流包括基于所述目的虚拟机和所述深度流,向相应队列分配所述深度分组。
10.根据权利要求7所述的调度方法,其中,所述虚拟化环境网络层信息指代由虚拟机形成的网络的层信息,以及所述虚拟化环境网络层信息被封装在物理网络帧中,以通过由虚拟机形成的网络的层来发送分组,以及所述深度分组被封装在物理网络帧中,以便通过物理网络上的一般通信协议来识别和顺利发送。
11.根据权利要求7所述的调度方法,其中,分配所述深度分组包括:
基于目的虚拟机,从包括至少一个或多个队列在内的多个队列组中选择队列组;以及
基于所述深度流在所选择的队列组中选择用于存储分组的队列。
12.根据权利要求7所述的调度方法,其中,向每个虚拟机分配的队列的数量是基于虚拟化环境信息来确定的,所述虚拟化环境信息包括与虚拟机或负载分布有关的信息。
13.根据权利要求7所述的调度方法,其中,向每个虚拟机分配包括至少一个或多个队列在内的多个队列组,以及调度器基于所述深度分组的目的虚拟机向所述深度分组分配所述多个队列组之一,以及基于所述深度流来分配所选择的队列组中的队列。
14.一种网络接口单元,包括:
分组接收器,被配置为根据通过物理网络接收到的分组来获取深度分组,所述深度分组包括封装在物理网络帧中的虚拟化环境网络层信息;
分组分析器,被配置为基于所述深度分组中包括的虚拟化环境网络层信息来识别所述深度分组的深度流;以及
调度器,被配置为以识别出的深度流为单位向相应队列分配所述深度分组。
15.根据权利要求14所述的网络接口单元,其中,所述调度器基于目的虚拟机从包括至少一个或多个队列在内的多个队列组中选择队列组,以及基于所述深度流在所选择的队列组中选择用于存储分组的队列。
CN201580003775.7A 2014-06-26 2015-06-12 多处理环境中的调度方法和装置 Active CN105900063B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
KR10-2014-0079129 2014-06-26
KR1020140079129A KR101764811B1 (ko) 2014-04-02 2014-06-26 다중 프로세싱 환경에서의 다중 스케줄링 방법 및 그 장치
KR20140104319 2014-08-12
KR10-2014-0104319 2014-08-12
KR1020140112071A KR101583325B1 (ko) 2014-08-12 2014-08-27 가상 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
KR10-2014-0112071 2014-08-27
KR1020150046740A KR20150114911A (ko) 2014-04-02 2015-04-02 다중 프로세싱 환경에서의 스케줄링 방법 및 그 장치
KR10-2015-0046740 2015-04-02
PCT/KR2015/005914 WO2015199366A1 (ko) 2014-06-26 2015-06-12 다중 프로세싱 환경에서의 스케줄링 방법 및 그 장치

Publications (2)

Publication Number Publication Date
CN105900063A true CN105900063A (zh) 2016-08-24
CN105900063B CN105900063B (zh) 2021-07-06

Family

ID=55169115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580003775.7A Active CN105900063B (zh) 2014-06-26 2015-06-12 多处理环境中的调度方法和装置

Country Status (5)

Country Link
US (1) US10530846B2 (zh)
EP (1) EP3163442A4 (zh)
JP (1) JP2017521806A (zh)
KR (1) KR101583325B1 (zh)
CN (1) CN105900063B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608784A (zh) * 2017-06-28 2018-01-19 西安微电子技术研究所 一种在多核dsp下的海量数据流多模态调度方法
CN108009006A (zh) * 2016-11-02 2018-05-08 华为技术有限公司 I/o请求的调度方法及装置
CN108694087A (zh) * 2017-03-31 2018-10-23 英特尔公司 用于最优系统级性能的网络接口卡中的动态负载均衡
CN110166485A (zh) * 2019-06-14 2019-08-23 北京经纬恒润科技有限公司 一种协议的调度使用方法及装置
CN110673944A (zh) * 2018-07-03 2020-01-10 杭州海康威视数字技术股份有限公司 执行任务的方法和装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016162266A (ja) * 2015-03-03 2016-09-05 富士通株式会社 通信装置及びそのプロセッサ割当方法
US10893083B2 (en) * 2015-05-25 2021-01-12 Apple Inc. Neighbor awareness networking datapath—scheduling, scheduler rank, and pre-datapath operation triggering
KR101679573B1 (ko) * 2015-06-16 2016-11-25 주식회사 윈스 멀티코어 처리 시스템에서 dimm 채널 분산을 이용한 트래픽 보안 서비스 제공 방법 및 장치
CN114422284B (zh) * 2017-01-16 2022-10-28 中兴通讯股份有限公司 一种业务传递方法、设备及存储介质
US10862617B2 (en) * 2017-05-30 2020-12-08 Marvell Asia Pte, Ltd. Flowlet scheduler for multicore network processors
US11294688B2 (en) * 2017-06-16 2022-04-05 Drivenets Ltd. Parallel information processing on multi-core computing platforms
US11038819B2 (en) * 2017-06-29 2021-06-15 Intel Corporation Technologies for extracting extrinsic entropy for workload distribution
CN107315645B (zh) * 2017-06-30 2020-09-15 苏州浪潮智能科技有限公司 一种cpu核配置方法及装置
US10979368B2 (en) * 2017-08-02 2021-04-13 Nebbiolo Technologies, Inc. Architecture for converged industrial control and real time applications
JP6778169B2 (ja) * 2017-09-28 2020-10-28 日本電信電話株式会社 仮想化通信装置、および、仮想化通信方法
US11102139B1 (en) * 2018-09-05 2021-08-24 Amazon Technologies, Inc. Shared queue management utilizing shuffle sharding
KR102093351B1 (ko) * 2018-11-20 2020-03-25 울산과학기술원 다중 인터페이스에 대한 패킷 스케줄링 방법 및 장치
US10999221B2 (en) * 2019-07-02 2021-05-04 Mellanox Technologies Tlv Ltd. Transaction based scheduling
US11294715B2 (en) * 2019-08-28 2022-04-05 Marvell Asia Pte, Ltd. System and method for queuing work within a virtualized scheduler based on in-unit accounting of in-unit entries
US11409553B1 (en) 2019-09-26 2022-08-09 Marvell Asia Pte, Ltd. System and method for isolating work within a virtualized scheduler using tag-spaces
US11294708B2 (en) 2019-12-12 2022-04-05 Sap Se Data structure execution framework using virtual computing domains
US11470010B2 (en) 2020-02-06 2022-10-11 Mellanox Technologies, Ltd. Head-of-queue blocking for multiple lossless queues
US11442879B2 (en) * 2021-01-07 2022-09-13 Foundation Of Soongsil University-Industry Cooperation Interrupt request processing device
CN115843113A (zh) * 2023-02-14 2023-03-24 阿里巴巴(中国)有限公司 数据处理方法、无线接入网络、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08152903A (ja) * 1994-11-28 1996-06-11 Fujitsu Ltd マルチプロセッサシステム
JP2002344503A (ja) * 2001-05-14 2002-11-29 Fujitsu Ltd パケット転送装置におけるQoSリソース割り当て方式
KR20040005824A (ko) * 2000-09-25 2004-01-16 크로스빔 시스템즈, 인크. 네트워크 애플리케이션 장치를 위한 플로우 스케줄링 및구조
US20080059555A1 (en) * 2006-08-31 2008-03-06 Archer Charles J Parallel application load balancing and distributed work management
US20090316711A1 (en) * 2008-06-24 2009-12-24 Intel Corporation Packet switching
CN101896896A (zh) * 2007-12-17 2010-11-24 微软公司 高效中断消息定义
US20110299537A1 (en) * 2010-06-04 2011-12-08 Nakul Pratap Saraiya Method and system of scaling a cloud computing network
US20120072908A1 (en) * 2010-09-21 2012-03-22 Schroth David W System and method for affinity dispatching for task management in an emulated multiprocessor environment
EP2618257A2 (en) * 2008-02-05 2013-07-24 Solarflare Communications Inc Scalable sockets

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3359499B2 (ja) * 1996-06-28 2002-12-24 沖電気工業株式会社 送出トラヒック制御装置
JP4648290B2 (ja) * 2006-11-21 2011-03-09 日本電信電話株式会社 パケット転送装置、パケット分配方法、グループ所属プロセッサ変更方法、およびコンピュータプログラム
JP4881886B2 (ja) * 2008-01-30 2012-02-22 アラクサラネットワークス株式会社 パケットスケジューリング方法および装置
KR101350333B1 (ko) * 2009-11-03 2014-01-10 한국전자통신연구원 대규모 트래픽을 처리하는 온라인 서버 테스트를 위한 네트워크 에뮬레이션 시스템 및 방법
KR20110114909A (ko) 2010-04-14 2011-10-20 한국전자통신연구원 멀티 프로세싱 엔진 기반의 네트워크 프로세서 시스템 및 상기 네트워크 프로세서 시스템의 패킷 스케줄링 방법
JP5450898B2 (ja) * 2010-06-25 2014-03-26 インテル コーポレイション 無線ネットワークインターフェースコントローラを有するシステム、方法及びコンピュータプログラム
US8392625B2 (en) 2010-06-25 2013-03-05 Intel Corporation Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system
US8560708B2 (en) * 2010-06-29 2013-10-15 Alcatel Lucent Method and apparatus for allocating bundles of sessions in a network element
US8363656B2 (en) 2010-09-15 2013-01-29 International Business Machines Corporation Multiple virtual machines sharing a single IP address
JP5706297B2 (ja) * 2011-02-18 2015-04-22 アラクサラネットワークス株式会社 パケット転送装置及びQoS制御回路の電力供給制御方法
US8984526B2 (en) 2012-03-09 2015-03-17 Microsoft Technology Licensing, Llc Dynamic processor mapping for virtual machine network traffic queues
US9736211B2 (en) * 2012-08-27 2017-08-15 Vmware, Inc. Method and system for enabling multi-core processing of VXLAN traffic
US9178715B2 (en) * 2012-10-01 2015-11-03 International Business Machines Corporation Providing services to virtual overlay network traffic
US9059973B2 (en) * 2013-01-15 2015-06-16 International Business Machines Corporation Securing sensitive information in a network cloud

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08152903A (ja) * 1994-11-28 1996-06-11 Fujitsu Ltd マルチプロセッサシステム
KR20040005824A (ko) * 2000-09-25 2004-01-16 크로스빔 시스템즈, 인크. 네트워크 애플리케이션 장치를 위한 플로우 스케줄링 및구조
CN1518694A (zh) * 2000-09-25 2004-08-04 ���ܿ���ϵͳ���޹�˾ 网络应用设备的流调度和结构
JP2002344503A (ja) * 2001-05-14 2002-11-29 Fujitsu Ltd パケット転送装置におけるQoSリソース割り当て方式
US20080059555A1 (en) * 2006-08-31 2008-03-06 Archer Charles J Parallel application load balancing and distributed work management
CN101896896A (zh) * 2007-12-17 2010-11-24 微软公司 高效中断消息定义
EP2618257A2 (en) * 2008-02-05 2013-07-24 Solarflare Communications Inc Scalable sockets
US20090316711A1 (en) * 2008-06-24 2009-12-24 Intel Corporation Packet switching
US20110299537A1 (en) * 2010-06-04 2011-12-08 Nakul Pratap Saraiya Method and system of scaling a cloud computing network
US20120072908A1 (en) * 2010-09-21 2012-03-22 Schroth David W System and method for affinity dispatching for task management in an emulated multiprocessor environment

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009006A (zh) * 2016-11-02 2018-05-08 华为技术有限公司 I/o请求的调度方法及装置
CN108009006B (zh) * 2016-11-02 2022-02-18 华为技术有限公司 I/o请求的调度方法及装置
CN108694087A (zh) * 2017-03-31 2018-10-23 英特尔公司 用于最优系统级性能的网络接口卡中的动态负载均衡
CN107608784A (zh) * 2017-06-28 2018-01-19 西安微电子技术研究所 一种在多核dsp下的海量数据流多模态调度方法
CN107608784B (zh) * 2017-06-28 2020-06-09 西安微电子技术研究所 一种在多核dsp下的海量数据流多模态调度方法
CN110673944A (zh) * 2018-07-03 2020-01-10 杭州海康威视数字技术股份有限公司 执行任务的方法和装置
CN110166485A (zh) * 2019-06-14 2019-08-23 北京经纬恒润科技有限公司 一种协议的调度使用方法及装置
CN110166485B (zh) * 2019-06-14 2022-07-08 北京经纬恒润科技股份有限公司 一种协议的调度使用方法及装置

Also Published As

Publication number Publication date
EP3163442A4 (en) 2018-06-13
JP2017521806A (ja) 2017-08-03
KR101583325B1 (ko) 2016-01-07
US20160283283A1 (en) 2016-09-29
CN105900063B (zh) 2021-07-06
EP3163442A1 (en) 2017-05-03
US10530846B2 (en) 2020-01-07

Similar Documents

Publication Publication Date Title
CN105900063A (zh) 多处理环境中的调度方法和装置
US11036556B1 (en) Concurrent program execution optimization
US11799952B2 (en) Computing resource discovery and allocation
KR102008551B1 (ko) 물리적 큐들로의 가상 머신 플로우들의 오프로딩 기법
CN102521047B (zh) 实现多核处理器间中断负载均衡的方法
Wided et al. Load balancing with Job Migration Algorithm for improving performance on grid computing: Experimental Results
CN106250233B (zh) MapReduce性能优化系统及优化方法
CN107977271B (zh) 一种数据中心综合管理系统负载均衡方法
US11838384B2 (en) Intelligent scheduling apparatus and method
Pattanaik et al. Performance study of some dynamic load balancing algorithms in cloud computing environment
Kaur et al. Latency and network aware placement for cloud-native 5G/6G services
WO2018157768A1 (zh) 调度运行设备的方法、设备和运行设备
Qin et al. Optimal workload allocation for edge computing network using application prediction
Kadhim et al. Hybrid load-balancing algorithm for distributed fog computing in internet of things environment
KR20180134219A (ko) 가상머신 패킷의 처리방법과 그 장치
CN111245906B (zh) 一种业务请求分配方法
KR101773528B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
El-Zoghdy et al. A multi-class task scheduling strategy for heterogeneous distributed computing systems
Ba et al. Hybrid Resource Scheduling Algorithms in Heterogeneous Distributed Computing: a Comparative Study and Further Enhancements
Saravanakumar et al. Efficient idle virtual machine management for heterogeneous cloud using common deployment model
Rajpoot et al. Role of load balancing algorithms in cloud environment
KR102091152B1 (ko) 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치
Sun et al. A Frequency-aware Grouping Strategy for Stateful Operators in Distributed Stream Processing Systems
CN111611073B (zh) 一种容器化数据中心下基于流量感知的容器放置方法
Grosu et al. Local and Global Scheduling in Mobile Drop Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161018

Address after: South Korea field wide area

Applicant after: GUBERNET INC

Address before: South Korea field wide area

Applicant before: Zheng Jixiong

Applicant before: GUBERNET INC

GR01 Patent grant
GR01 Patent grant