CN103946825B - 用于网络设备选择的装置和方法 - Google Patents

用于网络设备选择的装置和方法 Download PDF

Info

Publication number
CN103946825B
CN103946825B CN201180074968.3A CN201180074968A CN103946825B CN 103946825 B CN103946825 B CN 103946825B CN 201180074968 A CN201180074968 A CN 201180074968A CN 103946825 B CN103946825 B CN 103946825B
Authority
CN
China
Prior art keywords
processing unit
central processing
unit cpu
cpu socket
network equipment
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.)
Expired - Fee Related
Application number
CN201180074968.3A
Other languages
English (en)
Other versions
CN103946825A (zh
Inventor
A·瓦苏德万
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN103946825A publication Critical patent/CN103946825A/zh
Application granted granted Critical
Publication of CN103946825B publication Critical patent/CN103946825B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

实施例可包括能够从网络设备中选择至少一个分组将被传输到的至少一个网络设备的电路。网络设备在至少一个链路聚合中至少部分地与彼此相关联。所述电路至少部分地基于所述至少一个网络设备相对至少一个中央处理单元(CPU)插座所具有的相对亲和度来选择所述至少一个网络设备,所述至少一个中央处理单元(CPU)插座至少部分地与至少一个分组所属的至少一个流相关联。所述相对亲和度可与一个或多个其它网络设备相对至少一个CPU插座所具有的相对亲和度有关。很多修改是可能的。

Description

用于网络设备选择的装置和方法
技术领域
本公开涉及网络设备选择。
背景技术
一种常规计算机包括包含于CPU插座中的中央处理单元(CPU)。每个CPU包括一个或多个处理器核心。常规计算机根据非均匀存储器架构来操作,在所述非均匀存储器架构中,可由相应的CPU或插座访问的存储器可被分类为相对于该CPU或插座的本地存储器或远程存储器,这取决于存储器对包括该CPU的插座是本地的还是远程的。本地存储器访问可能比远程存储器访问涉及相对更少的时延。
常规计算机还包括向耦合链路的网络提供聚合链路的成组网络接口控制器。以与在非均匀存储器架构中的存储器访问类似的方式,在一组中的单独网络接口控制器对插座或CPU可以是本地的或远程的。经由本地网络接口控制器来向插座或CPU传输数据或从插座或CPU传输数据可以比经由远程网络接口控制器相对更有效和/或涉及相对更少的时延。
在这个常规计算机中,判定哪个成组网络接口控制器将由插座或CPU使用一般不考虑这样的本地性问题,和/或是基于由常规计算机的物理配置引起的、固定的、预定的分配,该物理配置不考虑正发生的实际通信交换的特性。在任一情况下,这可减小网络通信效率和/或增加网络通信处理时延。
附图说明
随着下面的详细描述的进行,以及当参考附图时,实施例的特征和优点将变得明显,其中相似的数字描绘相似的部件,且其中:
图1示出系统实施例。
图2示出实施例中的特征。
虽然以下的具体实施例的进行借助了对解释性的实施例的参考,但其中的很多替代、修改和变化将对本领域的技术人员变得明显。因此,权利要求主题旨在被宽泛地考虑。
具体实施例
图1示出系统实施例100。系统100可包括一个或多个节点10。在这个实施例中,术语“主机计算机”、“主机”、“服务器”、“客户端”、“网络节点”、和“节点”可互换地使用,并可例如没有限制地意指一个或多个终端站、移动互联网设备、智能电话、媒体设备、输入/输出(I/O)设备、平板计算机、电器、中间站、网络接口、客户端、服务器、和/或其部分。在这个实施例中,数据和信息可互换地使用,且可以是或包括一个或多个命令(例如一个或多个程序指令),和/或一个或多个这样的命令可以是或包括数据和/或信息。同样在这个实施例中,“指令”可包括数据和/或一个或多个命令。
一个或多个节点10可包括一个或多个(且在这个实施例中,多个)电路板(CB)32和/或33。电路板32和/或33每个可以是或包括可电气地和/或机械地彼此耦合(例如经由一个或多个未示出的机架安装和/或其它耦合系统)的一个或多个母板、电路板、刀片、和/或电路面板,以便至少部分地与彼此通信地耦合。
电路板32可包括电路118。电路118可至少部分地包括一个或多个中央处理单元(CPU)插座13A、13B…13N,计算机可读/可写存储器21A、21B…21N,和/或网络设备(ND)120A、120B…120N。虽然没有在附图中示出,但电路板32还可包括可将插座13A、13B…13N通信地与彼此和/或在彼此当中耦合的互连电路(例如包括存储器和/或I/O控制器电路)。这个未示出的互连电路也可根据非均匀存储器访问(NUMA)架构将插座13A、13B…13N分别通信地耦合到相应的存储器21A、21B…21N。这可允许插座13A…13N至少部分地根据NUMA访问存储器21A…21N。例如,在这个实施例中,一个或多个存储器21A可以是相对于一个或多个插座13A的相应的本地存储器,但其它存储器(例如除了一个或多个存储器21A以外)可相对于一个或多个插座13A是远程的。同样例如,一个或多个存储器21B可以是相对于一个或多个插座13B的相应的本地存储器,但其它存储器(例如除了一个或多个存储器21B以外)可相对于一个或多个插座13B是远程的。同样例如,和/或一个或多个存储器21N可以是相对于一个或多个插座13N的相应的本地存储器,但其它存储器(例如除了一个或多个存储器21N以外)可相对于一个或多个插座13N是远程的。
在这个实施例中,以与NUMA架构可被实现的方式类似(至少部分)的方式,未示出的互连电路可将插座13A…13N通信地耦合到相应的网络设备120A…120N,以便允许相应的网络设备120A…120N相对于至少某些相应的插座13A…13N分别是本地的,但对于至少某些其它相应的插座13A…13N分别是远程的。例如,在这个实施例中,一个或多个网络设备120A可以是相对于一个或多个插座13A的相应的本地网络设备,但其它网络设备(例如除了一个或多个网络设备120A以外)可以相对于一个或多个插座13A是远程的。同样例如,一个或多个网络设备120B可以是相对于一个或多个插座13B的相应的本地网络设备,但其它网络设备(例如除了一个或多个网络设备120B以外)可以相对于一个或多个插座13B是远程的。同样例如,一个或多个网络设备120N可以是相对于一个或多个插座13N的相应的本地网络设备,但其它网络设备(例如除了一个或多个网络设备120N以外)可以相对于一个或多个插座13N是远程的。
每个插座13A…13N可包括相应的多个处理器核心。例如,一个或多个插座13A可包括多个处理器核心15A…15N。一个或多个插座13B可包括多个处理器核心17A…17N。一个或多个插座13N可包括多个处理器核心19A…19N。
每个网络设备120A…120N可以是或包括一个或多个相应的网络接口控制器(NIC)。例如,一个或多个网络设备120A可包括一个或多个NIC 150A。一个或多个网络设备120B可包括一个或多个NIC 150B。一个或多个网络设备120N可包括一个或多个NIC 150N。未示出的互连电路可将相应的NIC 150A…150N通信地耦合到相应的插座13A…13N。
在这个实施例中,网络设备120A…120N和/或NIC 150A…150N可经由通信链路51A…51N通信地耦合到一个或多个交换机70。这些链路51A…51N可耦合到可包括在一个或多个交换机70中的交换机电路119的端口160A…160N。例如,一个或多个网络设备120A和/或一个或多个NIC 150A可经由一个或多个链路51A通信地耦合到一个或多个端口160A。一个或多个网络设备120B和/或一个或多个NIC 150B可经由一个或多个链路51B通信地耦合到一个或多个端口160B。一个或多个网络设备120N和/或一个或多个NIC 150N可经由一个或多个链路51N通信地耦合到一个或多个端口160N。交换机电路119还可包括可经由一个或多个通信链路53通信地耦合到一个或多个网络50的一个或多个端口170。
在这个实施例中,多个网络设备120A…120N和/或NIC 150A…150N可在一个或多个链路聚合中至少部分地与彼此或在彼此当中相关联。例如,网络设备120A和120B和/或NIC 150A和150B可在可至少部分地包括和/或涉及链路51A和51B的一个或多个链路聚合130中至少部分地与彼此相关联。
在这个实施例中,“电路”可包括例如单一的或任何组合的模拟电路、数字电路、硬连线电路、可编程电路、协处理器电路、状态机电路、和/或可包括可由可编程电路执行的程序指令的存储器。同样在这个实施例中,处理器、CPU、处理器核心、核心和控制器中的每个可包括能够至少部分地执行一个或多个算术和/或逻辑操作,和/或能够至少部分地执行一个或多个指令的相应电路。虽然未在附图中示出,但一个或多个节点10和/或一个或多个交换机70中的每个可包括相应的图形用户界面系统,其可包括例如可允许人类用户将命令输入到一个或多个节点10、一个或多个交换机70、和/或系统100,并监控一个或多个节点10、一个或多个交换机70、和/或系统100的操作的相应键盘、指示设备、和显示系统。
存储器21A…21N可在本文中共同或单一地被称为(例如根据特定的上下文)存储器21(见图2)。存储器21可包括下列类型的存储器中的一个或多个:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机访问存储器、闪存、磁盘存储器、光盘存储器、和/或其它或以后发展的计算机可读和/或可写存储器。
一个或多个机器可读程序指令可存储在存储器21中。在一个或多个节点10的操作中,这些指令可由电路118和/或一个或多个处理器核心15A…15N、17A…17N、和/或19A…19N访问并执行。当被这样访问和执行时,这些一个或多个指令可导致一个或多个网络设备/NIC成组/聚合过程202、虚拟NIC实例过程206A…206N、物理NIC驱动实例过程208A…208N至少部分地由电路118和/或一个或多个处理器核心15A…15N、17A…17N、和/或19A…19N执行,并至少部分地变得驻存在存储器21中。同样,当这些一个或多个指令被这样访问和执行时,可导致电路118、处理器核心15A…15N、17A…17N、和/或19A…19N、网络设备120A…120N、NIC 150A…150N、和/或其中的一个或多个部件执行如由系统100的这些部件执行的在本文描述的操作。
在这个实施例中,实体的一部分或子集可包括全部或少于全部的实体。此外,在这个实施例中,过程、后台程序、程序、驱动器、操作系统、应用、内核、虚拟机监控器、和/或其中的实例中的每一个可(1)至少部分地包括和/或(2)至少部分地导致和/或归因于一个或多个操作和/或程序指令的执行。
在这个实施例中,至少部分地作为电路118、插座13A…13N、存储器21A…21N、网络设备120A…120N、NIC 150A…150N、和/或未示出的互连电路的特定构造和/或配置的结果,相对于相应的处理器核心和/或包括相应处理器核心的相应的插座,相应的本地存储器、相应的本地网络设备、和/或相应的本地NIC可以比相应的远程存储器、远程网络设备、和/或远程NIC更接近地耦合到和/或关联于相应的处理器核心和/或相应的插座。此外或可替代地,相应的插座和/或包括在相应插座中的相应的处理器核心可能能够:相比于相应的远程存储器、远程网络设备、和/或远程NIC至少部分地更快地(例如相对于相应的远程存储器、远程网络设备和/或远程NIC以减小的时延)访问相应的本地存储器、本地网络设备和/或本地NIC和/或与其通信。进一步此外或可替代地,不同于和/或额外于非均匀存储器访问架构和/或类似/相似的技术的架构和/或技术可至少部分地被使用和/或体现在一个或多个节点10和/或电路118中,而不偏离这个实施例。至少部分地作为前述内容的结果,经由相应的本地网络设备和/或相应的本地NIC向或从相应的插座或包括在相应插座中的相应的处理器核心传输数据,可以比经由相应的远程网络设备和/或远程NIC相对更有效和/或涉及相对更少的时延。
在这个实施例中,网络、网络链路、和/或通信链路可以是或包括可至少部分地容许、促进和/或允许两个或更多个实体例如使用和/或经由一个或多个有线和/或无线网络通信地耦合在一起的任何机制、工具、模态和/或其中的部分。此外,在这个实施例中,如果第一实体能够将一个或多个命令和/或数据传输到第二实体和/或从第二实体接收,则第一实体可“通信地耦合”到第二实体。在这个实施例中,“无线网络”可以是或包括至少部分地允许至少两个实体至少部分地被无线地通信地耦合的网络。在这个实施例中,“有线网络”可以是或包括至少部分地允许至少两个实体至少部分地被非无线地通信地耦合的网络。
在这个实施例中,分组可包括一个或多个符号和/或值。同样在这个实施例中,流和/或分组流可以至少部分地是、包括、和/或关联于多个分组,所述多个分组至少部分地属于、关联于、和/或共享一个或多个特征、源、目的地、属性、特性、符号、和/或值,例如至少部分地涉及处理和/或打算处理分组的一个或多个公共源和/或目的地地址、协议(例如传输控制协议)端口、服务、进程、接受者、和/或起源、和/或一个或多个插座、和/或处理器核心。
同样在这个实施例中,交换机可以是或包括能够至少部分地转发和/或路由一个或多个分组的一个或多个中间站。在这个实施例中,网络设备可以是或包括能够被用于、包括在、和/或通信地耦合到(直接或间接地)一个或多个网络的电路。此外,在这个实施例中,CPU插座可以是或包括电路,所述电路至少部分地包括和/或能够被通信地耦合到多个处理器核心。
此外,在这个实施例中,两个或更多个设备的成组可以至少部分地是、包括、促进、导致和/或归因于、和/或涉及:设备的相应的物理和/或逻辑特征、能力、操作、和/或电路的至少部分关联、一起使用、和/或组合。在这个实施例中,链路聚合可以至少部分地是、包括、促进、导致和/或归因于、和/或涉及两个或更多个通信链路的成组。在这个实施例中,与如果链路聚合中的链路不是被如此聚合可能另外导致的情况相比,链路聚合可允许吞吐量提高和/或增加的冗余能力。
在这个实施例中,网络设备120A和120B的成组、NIC 150A和105B的成组、和/或链路51A和51B的聚合可至少部分地符合和/或兼容在电气与电子工程师协会(IEEE)Std802.ad-2000和/或IEEE Std 802.1AX-2008中描述的协议。同样在这个实施例中,网络设备120A…120N和/或NIC 150A…150N可根据一个或多个通信协议经由链路51A…51N与端口160A…160N交换数据和/或命令。同样,一个或多个端口170可根据一个或多个这样的协议经由一个或多个链路53与一个或多个网络50交换数据和/或命令。例如,在这个实施例中,这些一个或多个协议可至少部分地兼容例如一个或多个以太网、传输控制协议/互联网协议(TCP/IP)、和/或其它协议。
例如,可以在系统100中被使用的一个或多个以太网协议可至少部分地符合或兼容IEEE Std 802.3-2008(2008年12月26日)、IEEE Std 802.1Q-2005(2006年5月19日)、IEEE Std 802.11a-1999(1999年2月11日)、IEEE Std 802.11b-1999(1999年2月11日)、IEEE Std 802.11g-2003(2003年10月20日)、和/或IEEE标准802.11n-2009(2009年10月29日)。可在系统100中被使用的TCP/IP协议可至少部分地符合或兼容在1981年9月公布的互联网工程任务组(IETF)请求注解(RFC)791和793中描述的协议。很多不同的、额外的、和/或其它协议(包括例如上面陈述的那些)可用于这样的数据和/或命令交换,而不偏离这个实施例(例如前述的、有关的、和/或其它协议的较早和/或以后发展的版本)。
在系统100的操作中,一个或多个进程202的至少部分执行可至少部分地导致电路118和/或一个或多个处理器核心15A…15N、17A…17N、和/或19A…19N至少部分地选自(例如在网络设备120A…120N当中)一个或多个分组52A将被传输到的一个或多个网络设备(例如一个或多个网络设备120A)。例如,一个或多个分组52A可至少部分地由一个或多个处理器核心(例如一个或多个核心15A)产生。一个或多个进程202、电路118、和/或一个或多个处理器核心15A…15N、17A…17N、和/或19A…19N可至少部分地基于一个或多个网络设备120A可相对于一个或多个CPU插座(在本例中,一个或多个插座13A)所具有的相对的亲和度(例如图1中的DA1)选择一个或多个网络设备120A,所述一个或多个CPU插座至少部分地关联于一个或多个分组52A可至少部分地属于的一个或多个分组流(例如一个或多个分组流F1)。
例如,在这个实施例中,可至少部分地属于一个或多个流F1的分组52A…52N(以及相应地,一个或多个流F1它们本身)可至少部分地由一个或多个核心15A产生。在本例中,一个或多个核心15A可包括在一个或多个插座13A中,且相应地,一个或多个插座13A可至少部分地关联于一个或多个流F1和/或一个或多个分组52A。在本例中,一个或多个设备120A相对于一个或多个插座13A具有的相对的亲和度DA1与一个或多个其它网络设备120B…120N相对于一个或多个插座13A所具有的相对的亲和度(例如DA2…DAN)有关。这个相对亲和度DA1可至少部分地基于一个或多个设备120A和一个或多个插座13A的通信耦合的相对本地性(例如图1中的LOC1)来判定。通信耦合的相对本地性LOC1可与一个或多个其它网络设备120B…120N和一个或多个插座13A的通信耦合的相对本地性(例如LOC2…LOCN)有关。
在这个实施例中,相应的网络设备与相应的CPU插座的相对亲和度可以至少部分地是、包括、归因于、和/或对应于认为相应的网络设备对相应的CPU插座是本地的程度,例如关于认为其它相应网络设备对相应的CPU插座是本地的相应程度。同样在这个实施例中,相应的网络设备和相应的CPU插座的通信耦合的相对本地性可以至少部分地是、包括、归因于、和/或对应于:经由相应的本地网络设备向或从相应的插座的数据传输的相对效率和/或相对时延(例如至少部分地作为未示出的互连电路的特定配置的结果)。
例如在这个实施例中,至少部分地作为未示出的互连电路的特定配置的结果,相对亲和度DA1可大于任何其它相对亲和度DA2…DAN,和/或通信耦合的相对本地性LOC1可大于任何其它通信耦合的相对本地性LOC2…LOCN。一个或多个进程202、电路118、和/或一个或多个处理器核心15A…15N、17A…17N、和/或19A…19N可选择一个或多个分组52A将被传输到的一个或多个网络设备120A,使得(1)一个或多个选择的网络设备120A可具有最大相对亲和度DA1,和/或(2)到一个或多个插座13A的最大通信耦合的相对本地性LOC1至少部分地关联于一个或多个分组52A所属的一个或多个流F1。
例如,图2所示的一个或多个进程202可至少部分地产生可至少部分地存储在存储器21中的一个或多个关联204。在这个实施例中,关联可以是或包括一个或多个数据结构,例如一个或多个表格和/或数据库。一个或多个关联204可使虚拟NIC实例206A…206N至少部分地关联于物理NIC驱动器实例208A…208N、插座13A…13N、和/或包括在插座13A…13N中的相应的处理器核心。一个或多个关联204可至少部分地包括、基于、和/或反映亲和度DA1…DAN和/或通信耦合的本地性LOC1…LOCN。
例如,在这个实施例中,每个相应的网络设备120A…120N和/或NIC 150A…150N可至少部分地关联于和/或受控于物理NIC驱动实例208A…208N的相应的一个。也就是说,每个网络设备120A…120N和/或每个NIC 150A…105N可以是或包括相应的物理设备,所述物理设备可关联于和/或受控于物理NIC驱动器实例208A…208N的相应的一个(例如以相应的1对1的关系)。然而,在这个实施例中,每个VNIC实例206A…206N可包括可关联于相应的插座13A…13N和/或由相应的插座13A…13N使用的相应的多VNIC实例。例如,在相应插座13A…13N中的相应的处理器核心组可执行多个相应的进程(未示出),所述进程可至少部分地产生:将经由交换机70从一个或多个节点10传输到网络50的分组流(例如分组流F1…FN)中的分组。对于每个相应的CPU插座,为了发起从一个或多个节点10的分组传输,由相应的插座中的处理器核心执行的这些未示出的进程可访问和/或发布(例如经由一个或多个未示出的操作系统网络堆栈进程)将要传输的分组到VNIC实例中的相关联的那些。
一个或多个关联204可将每个相应的CPU插座13A…13N至少部分地分配、关联、和/或映射到相应的元组(未示出)和/或在相应的元组(未示出)中,所述元组可包括(1)具有最大相对亲和度和/或与相应的CPU插座的最大通信耦合的相对本地性的一个或多个相应的网络设备和/或一个或多个相应的NIC,(2)关联于相应的CPU插座的相应的物理NIC驱动器实例,和/或(3)关联于相应的CPU插座的相应的多个VNIC实例。相应的元组还可指示将被引导到相应的CPU插座(例如作为消费者)或由相应的CPU插座产生(例如作为生产者)的一个或多个相应的流。每个这样的相应CPU插座还可包括也可在相应的元组中被指示的相应的存储器控制器电路。因此,在一个或多个关联204中的这些未示出的元组的每个中,多个相应的VNIC实例可关联于单个相应的物理NIC驱动器实例。
在这个实施例中,一个或多个进程202可将VNIC实例206A...206N至少部分地暴露给与它们相关联的CPU插座13A…13N。然而,一个或多个进程202可至少部分地隐藏物理NIC驱动器实例208A…208N以避开这些插座13A…13N。这些VNIC实例206A…206N中的每个可将单个相应的队列(和/或队列组和/或队列对)210A…210N暴露给可与VNIC实例206A…206N相关联的每个相应的插座13A…13N。
在一个VNIC实例(例如VNIC实例206A)接收分组(例如分组52A)之后,VNIC实例206A和/或一个或多个进程202可至少部分地基于一个或多个关联204中的元组来选择与网络设备120A和/或NIC 150A相关联的物理NIC驱动器实例(例如实例208A),所述网络设备120A和/或NIC 150A可具有最大相对亲和度和/或与产生分组52A和/或分组52A所属的流F1的相应的CPU插座(例如插座13A)的最大通信耦合的相对本地性。实际上,这也可选择网络设备120A和/或NIC 150A。电路118,一个或多个处理器核心15A…15N、17A…17N、和19A…19N,VNIC实例206A,和/或一个或多个进程202可将分组52A传输到这样选择的物理NIC驱动器实例208A用于处理。物理NIC驱动器实例208然后可控制它的相关联的网络设备120A和/或NIC 150A的操作,使得网络设备120A和/或NIC 150A可经由一个或多个链路51A将分组52A传输到交换机70的端口160A。交换机70可经由一个或多个端口170和一个或多个链路53将分组52A传输到一个或多个网络50。在上面的例子中,一个或多个未示出的操作系统网络堆栈进程可使用对于一个或多个插座13A的本地存储器(例如存储器21A)以缓冲分组52A。
此外或可替代地,虽然没有在附图中具体显示,但可至少部分地根据这个实施例的上述技术选择的一个或多个网络设备120A…120N可以至少部分地是或包括交换机70的一个或多个端口160A…160N。为了这个示例的目的,每个流F1…FN可由交换机70从网络50接收,并旨在由相应的插座13A…13N中的一个或多个相应的处理器核心消耗(例如处理)。例如,包括在流F1中的分组旨在由一个或多个插座13A中的一个或多个处理器核心15A…15N消耗,且包括在流FN中的分组旨在由一个或多个插座13B中的一个或多个处理器核心17A…17N消耗。交换机70和/或交换机电路119可至少部分地基于经由一个或多个控制消息192从一个或多个节点10至少部分地提供到交换机70的信息190来选择一个或多个端口160A,其中流F1的一个或多个分组52A经由所述一个或多个端口160A被传输到一个或多个节点10。交换机70和/或交换机电路119还可至少部分地基于信息190选择一个或多个端口160B,其中流FN中的分组经由所述一个或多个端口160B被传输到一个或多个节点10。
例如,一个或多个控制消息192可包括信息190,并可至少部分地由一个或多个进程202产生。一个或多个进程202可至少部分地基于一个或多个关联204,至少部分地产生一个或多个控制消息192和/或信息190。信息190和/或一个或多个控制消息192可隐式和/或显式地至少部分地包含、提供、和/或指示包括在一个或多个关联204中的相应的元组信息。被提供到交换机70和/或交换机电路119的这个元组信息可允许交换机70和/或交换机电路119为每个相应的CPU插座13A…13N至少部分地判定:由相应的CPU插座产生的或预期消耗的一个或多个相应的流、和/或具有最大相对亲和度和/或对相应的CPU插座的最大通信耦合的相对本地性的一个或多个相应的NIC。基于这个元组信息和从由一个或多个节点110传输到交换机70的分组得到的其它分组信息(例如源/目的地地址、端口信息等),交换机70和/或交换机电路119可选择交换机70的一个或多个端口160A,流F1中的分组52A…52N传输到所述端口160A或经由所述端口160A来传输。交换机70和/或交换机电路119可做出这个选择,因为一个或多个端口160A可通信地耦合(例如对交换机70的任何部件以最直接和/或接近的方式)到可具有最大相对亲和度DA1和/或对插座13A的最大通信耦合的相对本地性LOC1的一个或多个NIC 150A。
也基于这个元组信息和其它分组信息,交换机70和/或交换机电路119可选择交换机70的一个或多个端口160B,流FN中的分组传输到所述端口160B或经由所述端口160B来传输。交换机70和/或交换机电路119可做出这个选择,因为一个或多个端口160B通信地耦合(例如对交换机70的任何部件以最直接和/或接近的方式)到可具有最大相对亲和度和/或对插座13B的最大通信耦合的相对本地性的一个或多个NIC 150B。
因此,实施例可包括电路以从网络设备选择至少一个分组将被传输到的至少一个网络设备。网络设备可在至少一个链路聚合中至少部分地与彼此相关联。电路可至少部分地基于至少一个网络设备相对于至少一个CPU插座所具有的相对亲和度来选择至少一个网络设备,所述至少一个CPU插座至少部分地与至少一个分组所属的至少一个流相关联。相对亲和度可与一个或多个其它网络设备相对于至少一个CPU插座所具有的相应亲和度有关。
有利的是,在这个实施例中,分组所传输到的一个或多个网络设备的选择可在每分组和/或每流的基础上做出,至少部分地基于:分组可属于哪个流、与那些流最密切关联的CPU插座、CPU插座对网络设备的相对亲和度、和/或CPU插座对网络设备的通信耦合的相对本地性。有利的是,这可在一个或多个节点10和/或系统100中提高网络通信效率和/或降低网络通信处理时延。
很多修改是可能的。例如,一个或多个进程202可至少部分地基于一个或多个用户提供的偏好(例如经由一个或多个未示出的图形用户界面所提供的)来产生一个或多个关联204。这些偏好可至少部分地修改(例如在运行时间期间动态地)一个或多个关联204以考虑例如在VNIC实例、CPU插座、网络接口控制器、网络设备等之间或当中的负载均衡、相对处理速度、和/或其它偏好。很多其它修改也是可能的。因此,这个实施例应被宽泛地视为包括所有这样的变化、修改、以及替代。

Claims (21)

1.一种用于网络设备选择的装置,包括:
电路,其从网络设备中选择至少一个分组将被传输到的至少一个网络设备,所述网络设备在至少一个链路聚合中至少部分地与彼此相关联,所述电路至少部分地基于所述至少一个网络设备相对于至少一个中央处理单元CPU插座所具有的相对的亲和度来选择所述至少一个网络设备,所述至少一个中央处理单元CPU插座至少部分地与所述至少一个分组所属的至少一个流相关联,所述相对的亲和度与一个或多个其它网络设备相对于所述至少一个中央处理单元CPU插座所具有的相应的亲和度有关,所述相对的亲和度是至少部分地基于以下内容来判定的:所述至少一个网络设备和所述至少一个中央处理单元CPU插座的通信耦合的相对的本地性,所述相对的本地性与一个或多个其它网络设备和所述至少一个中央处理单元CPU插座的通信耦合的相应的本地性有关。
2.如权利要求1所述的装置,其中:
每个所述网络设备包括相应的网络接口控制器NIC。
3.如权利要求1所述的装置,其中:
所述装置包括节点,所述节点包括电路板;
所述电路板包括:
所述电路;
中央处理单元CPU插座,其包括所述至少一个中央处理单元CPU插座;以及
所述网络设备;
每个所述中央处理单元CPU插座包括相应的多个处理器核心;
所述网络设备包括相应的网络接口控制器;
所述中央处理单元CPU插座相应地耦合到相应的网络接口控制器;以及
所述网络接口控制器相应地耦合到交换机的相应的端口。
4.如权利要求1所述的装置,其中:
所述电路至少部分地执行至少部分地产生至少一个关联的至少一个进程;
所述至少一个关联使虚拟网络接口控制器NIC实例、物理网络接口控制器NIC驱动器实例、以及中央处理单元CPU插座相关联;
所述中央处理单元CPU插座包括所述至少一个中央处理单元CPU插座;以及
所述至少一个关联至少部分地反映所述相对的亲和度和所述相应的亲和度。
5.如权利要求4所述的装置,其中:
所述至少一个关联使多个所述虚拟网络接口控制器NIC实例与单个所述物理网络接口控制器NIC驱动器实例相关联;
所述至少一个进程使所述虚拟网络接口控制器NIC实例暴露于所述中央处理单元CPU插座;
所述至少一个进程向所述中央处理单元CPU插座隐藏所述物理网络接口控制器NIC驱动器实例;以及
每个所述虚拟网络接口控制器NIC实例使单个相应的队列暴露于每个相应的中央处理单元CPU插座。
6.如权利要求1所述的装置,其中:
所述网络设备包括耦合到包括中央处理单元CPU插座的节点的端口,所述中央处理单元CPU插座包括所述至少一个中央处理单元CPU插座;
交换机包括所述端口;以及
所述交换机至少部分地基于来自所述节点的信息来选择将至少一个分组传输到所述节点所经由的至少一个端口,所述相对的亲和度是至少部分地基于所述信息被至少部分地判定的。
7.如权利要求6所述的装置,其中:
至少部分地经由从所述节点发布到所述交换机的一个或多个控制消息来提供所述信息;以及
所述中央处理单元CPU插座至少部分地根据非均匀存储器访问来访问存储器。
8.一种用于网络设备选择的方法,包括:
至少部分地由电路从网络设备中选择至少一个分组将被传输到的至少一个网络设备,所述网络设备在至少一个链路聚合中至少部分地与彼此相关联,所述电路至少部分地基于所述至少一个网络设备相对于至少一个中央处理单元CPU插座所具有的相对的亲和度来选择所述至少一个网络设备,所述至少一个中央处理单元CPU插座至少部分地与所述至少一个分组所属的至少一个流相关联,所述相对的亲和度与一个或多个其它网络设备相对于所述至少一个中央处理单元CPU插座所具有的相应的亲和度有关,所述相对的亲和度是至少部分地基于以下内容来判定的:所述至少一个网络设备和所述至少一个中央处理单元CPU插座的通信耦合的相对的本地性,所述相对的本地性与一个或多个其它网络设备和所述至少一个中央处理单元CPU插座的通信耦合的相应的本地性有关。
9.如权利要求8所述的方法,其中:
每个所述网络设备包括相应的网络接口控制器NIC。
10.如权利要求8所述的方法,其中:
用于网络设备选择的系统包括节点,所述节点包括电路板;
所述电路板包括:
所述电路;
中央处理单元CPU插座,其包括所述至少一个中央处理单元CPU插座;以及
所述网络设备;
每个所述中央处理单元CPU插座包括相应的多个处理器核心;
所述网络设备包括相应的网络接口控制器;
所述中央处理单元CPU插座相应地耦合到相应的网络接口控制器;以及
所述网络接口控制器相应地耦合到交换机的相应的端口。
11.如权利要求8所述的方法,其中:
所述电路至少部分地执行至少部分地产生至少一个关联的至少一个进程;
所述至少一个关联使虚拟网络接口控制器NIC实例、物理网络接口控制器NIC驱动器实例、以及中央处理单元CPU插座相关联;
所述中央处理单元CPU插座包括所述至少一个中央处理单元CPU插座;以及
所述至少一个关联至少部分地反映所述相对的亲和度和所述相应的亲和度。
12.如权利要求11所述的方法,其中:
所述至少一个关联使多个所述虚拟网络接口控制器NIC实例与单个所述物理网络接口控制器NIC驱动器实例相关联;
所述至少一个进程使所述虚拟网络接口控制器NIC实例暴露于所述中央处理单元CPU插座;
所述至少一个进程向所述中央处理单元CPU插座隐藏所述物理网络接口控制器NIC驱动器实例;以及
每个所述虚拟网络接口控制器NIC实例使单个相应的队列暴露于每个相应的中央处理单元CPU插座。
13.如权利要求8所述的方法,其中:
所述网络设备包括耦合到包括中央处理单元CPU插座的节点的端口,所述中央处理单元CPU插座包括所述至少一个中央处理单元CPU插座;
交换机包括所述端口;以及
所述交换机至少部分地基于来自所述节点的信息来选择将至少一个分组传输到所述节点所经由的至少一个端口,所述相对的亲和度是至少部分地基于所述信息被至少部分地判定的。
14.如权利要求13所述的方法,其中:
至少部分地经由从所述节点发布到所述交换机的一个或多个控制消息来提供所述信息;以及
所述中央处理单元CPU插座至少部分地根据非均匀存储器访问来访问存储器。
15.一种用于网络设备选择的装置,包括:
用于至少部分地由电路从网络设备中选择至少一个分组将被传输到的至少一个网络设备的单元,所述网络设备在至少一个链路聚合中至少部分地与彼此相关联,所述电路至少部分地基于所述至少一个网络设备相对于至少一个中央处理单元CPU插座所具有的相对的亲和度来选择所述至少一个网络设备,所述至少一个中央处理单元CPU插座至少部分地与所述至少一个分组所属的至少一个流相关联,所述相对的亲和度与一个或多个其它网络设备相对于所述至少一个中央处理单元CPU插座所具有的相应的亲和度有关,所述相对的亲和度是至少部分地基于以下内容来判定的:所述至少一个网络设备和所述至少一个中央处理单元CPU插座的通信耦合的相对的本地性,所述相对的本地性与一个或多个其它网络设备和所述至少一个中央处理单元CPU插座的通信耦合的相应的本地性有关。
16.如权利要求15所述的装置,其中:
每个所述网络设备包括相应的网络接口控制器NIC。
17.如权利要求15所述的装置,其中:
用于网络设备选择的系统包括节点,所述节点包括电路板;
所述电路板包括:
所述电路;
中央处理单元CPU插座,其包括所述至少一个中央处理单元CPU插座;以及
所述网络设备;
每个所述中央处理单元CPU插座包括相应的多个处理器核心;
所述网络设备包括相应的网络接口控制器;
所述中央处理单元CPU插座相应地耦合到相应的网络接口控制器;以及
所述网络接口控制器相应地耦合到交换机的相应的端口。
18.如权利要求15所述的装置,其中:
所述电路至少部分地执行至少部分地产生至少一个关联的至少一个进程;
所述至少一个关联使虚拟网络接口控制器NIC实例、物理网络接口控制器NIC驱动器实例、以及中央处理单元CPU插座相关联;
所述中央处理单元CPU插座包括所述至少一个中央处理单元CPU插座;以及
所述至少一个关联至少部分地反映所述相对的亲和度和所述相应的亲和度。
19.如权利要求18所述的装置,其中:
所述至少一个关联使多个所述虚拟网络接口控制器NIC实例与单个所述物理网络接口控制器NIC驱动器实例相关联;
所述至少一个进程使所述虚拟网络接口控制器NIC实例暴露于所述中央处理单元CPU插座;
所述至少一个进程向所述中央处理单元CPU插座隐藏所述物理网络接口控制器NIC驱动器实例;以及
每个所述虚拟网络接口控制器NIC实例使单个相应的队列暴露于每个相应的中央处理单元CPU插座。
20.如权利要求15所述的装置,其中:
所述网络设备包括耦合到包括中央处理单元CPU插座的节点的端口,所述中央处理单元CPU插座包括所述至少一个中央处理单元CPU插座;
交换机包括所述端口;以及
所述交换机至少部分地基于来自所述节点的信息来选择将至少一个分组传输到所述节点所经由的至少一个端口,所述相对的亲和度是至少部分地基于所述信息被至少部分地判定的。
21.如权利要求20所述的装置,其中:
至少部分地经由从所述节点发布到所述交换机的一个或多个控制消息来提供所述信息;以及
所述中央处理单元CPU插座至少部分地根据非均匀存储器访问来访问存储器。
CN201180074968.3A 2011-11-22 2011-11-22 用于网络设备选择的装置和方法 Expired - Fee Related CN103946825B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/061876 WO2013077860A1 (en) 2011-11-22 2011-11-22 Network device selection

Publications (2)

Publication Number Publication Date
CN103946825A CN103946825A (zh) 2014-07-23
CN103946825B true CN103946825B (zh) 2017-03-01

Family

ID=48470166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180074968.3A Expired - Fee Related CN103946825B (zh) 2011-11-22 2011-11-22 用于网络设备选择的装置和方法

Country Status (4)

Country Link
US (1) US9331935B2 (zh)
CN (1) CN103946825B (zh)
DE (1) DE112011105868T5 (zh)
WO (1) WO2013077860A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9331935B2 (en) 2011-11-22 2016-05-03 Intel Corporation Network device selection
CN104615480A (zh) * 2015-02-04 2015-05-13 上海交通大学 基于numa高性能网络处理器负载的虚拟处理器调度方法
CN105208079A (zh) * 2015-08-13 2015-12-30 浪潮(北京)电子信息产业有限公司 一种san交换机的监控系统及方法
US10394679B2 (en) * 2016-04-29 2019-08-27 Nicira, Inc. Locality-aware scheduling for NIC teaming
CN108021429B (zh) * 2017-12-12 2019-08-06 上海交通大学 一种基于numa架构的虚拟机内存及网卡资源亲和度计算方法
US11646980B2 (en) 2018-03-30 2023-05-09 Intel Corporation Technologies for packet forwarding on ingress queue overflow
US11928502B2 (en) 2021-04-29 2024-03-12 VMware LLC Optimized networking thread assignment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1518694A (zh) * 2000-09-25 2004-08-04 ���ܿ���ϵͳ���޹�˾ 网络应用设备的流调度和结构
CN1703016A (zh) * 2003-03-06 2005-11-30 微软公司 虚拟网络拓扑结构生成
US7499457B1 (en) * 2005-04-22 2009-03-03 Sun Microsystems, Inc. Method and apparatus for enforcing packet destination specific priority using threads
CN101990002A (zh) * 2009-07-29 2011-03-23 索乐弗莱尔通讯公司 控制器集成

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8111707B2 (en) * 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US8296490B2 (en) * 2007-06-29 2012-10-23 Intel Corporation Method and apparatus for improving the efficiency of interrupt delivery at runtime in a network system
US7783822B2 (en) * 2007-07-25 2010-08-24 Hewlett-Packard Development Company, L.P. Systems and methods for improving performance of a routable fabric
US7650488B2 (en) * 2008-06-18 2010-01-19 Intel Corporation Communication between processor core partitions with exclusive read or write to descriptor queues for shared memory space
US8488601B1 (en) * 2011-07-12 2013-07-16 Qlogic, Corporation Method and system for link aggregation
US9331935B2 (en) 2011-11-22 2016-05-03 Intel Corporation Network device selection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1518694A (zh) * 2000-09-25 2004-08-04 ���ܿ���ϵͳ���޹�˾ 网络应用设备的流调度和结构
CN1703016A (zh) * 2003-03-06 2005-11-30 微软公司 虚拟网络拓扑结构生成
US7499457B1 (en) * 2005-04-22 2009-03-03 Sun Microsystems, Inc. Method and apparatus for enforcing packet destination specific priority using threads
CN101990002A (zh) * 2009-07-29 2011-03-23 索乐弗莱尔通讯公司 控制器集成

Also Published As

Publication number Publication date
US9331935B2 (en) 2016-05-03
US20140161122A1 (en) 2014-06-12
WO2013077860A1 (en) 2013-05-30
CN103946825A (zh) 2014-07-23
DE112011105868T5 (de) 2014-08-28

Similar Documents

Publication Publication Date Title
CN103946825B (zh) 用于网络设备选择的装置和方法
US11411828B2 (en) Host network analyzer
CN110178118B (zh) 硬件实现的负载平衡
US9875126B2 (en) Hash-based load balancing for bonded network interfaces
US8634415B2 (en) Method and system for routing network traffic for a blade server
Chen et al. Reinforcement learning–based QoS/QoE‐aware service function chaining in software‐driven 5G slices
US7962647B2 (en) Application delivery control module for virtual network switch
US11456941B2 (en) Extensible network traffic engineering platform for increasing network resiliency in cloud applications
US9154451B2 (en) Systems and methods for sharing devices in a virtualization environment
CN105721535A (zh) 对服务功能链中的服务功能的并行处理
CN104468401B (zh) 一种报文处理方法和装置
US20160380848A1 (en) Packet Copy Management For Service Chain Processing Within Virtual Processing Systems
US9807157B2 (en) Hybrid virtual load balancer
US9160659B2 (en) Paravirtualized IP over infiniband bridging
CN105052081A (zh) 通信流量处理架构和方法
US9774710B2 (en) System and method for network protocol offloading in virtual networks
CN104272656A (zh) 软件定义网络中的网络反馈
US9898435B2 (en) Aggregate baseboard management controller (BMC) controller
US20180300766A1 (en) Efficient translation and load balancing of openrtb and header bidding requests
CN106357726B (zh) 负载均衡方法及装置
US20120287782A1 (en) Programmable and high performance switch for data center networks
US10129148B2 (en) Table-based load balancing for bonded network interfaces
US20240080276A1 (en) Path selection for packet transmission
CN107493245A (zh) 交换机的板卡以及数据流转发方法
US20220321491A1 (en) Microservice data path and control path processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170301

Termination date: 20191122

CF01 Termination of patent right due to non-payment of annual fee