用于管理网络统计计数器的技术的制作方法

文档序号:17048831发布日期:2019-03-05 19:49阅读:189来源:国知局
用于管理网络统计计数器的技术的制作方法

本申请要求2016年11月29日提交的美国临时专利申请no.62/427,268和2017年8月30日提交的印度临时专利申请no.201741030632的权益。



背景技术:

在当前的分组交换网络架构中,数据以网络分组的形式在联网的计算装置之间传送。在高级别处,收集数据并将其分组化成网络分组,然后将其发送到负责通过网络将网络分组分派到目标计算装置的传输装置(例如,相应联网计算装置的网络接口控制器(nic))。一些此类联网计算装置经由多个网络统计计数器维持由计算装置接收和/或从计算装置传送的网络业务的统计。例如,网络统计计数器可用于跟踪具体网络分组类型、事件或流的到达的数量。如此,统计计数器的值可用于监测计算装置的性能和/或安全性,以及影响网络管理和网络业务工程决策。

通常,网络统计计数器经由管芯上存储器实现并由硬件维持。通常,为了获得计数器值,软件应用经由寄存器读取轮询统计计数器。然而,某些部署环境(例如其中可能要求数百万统计计数器的那些部署环境)可能引起大的管芯大小,这可能有效地致使设计不可缩放。

附图说明

本文描述的概念通过示例方式而不是通过限制方式而在附图中示出。为了说明的简单性和清楚性,附图中示出的元件不一定按比例绘制。在认为适当的情况下,在附图间重复参考标记以指示对应或类似的元件。

图1是其中可以根据各种实施例实现本文描述的一种或多种技术的数据中心的概念性概述的图;

图2是图1的数据中心的机架(rack)的逻辑配置的示例实施例的图;

图3是根据各种实施例的其中可以实现本文描述的一种或多种技术的另一数据中心的示例实施例的图;

图4是根据各种实施例的其中可以实现本文描述的一种或多种技术的数据中心的另一示例实施例的图;

图5是表示可以在图1、3和4的数据中心的各种滑板(sled)之间建立的链路层连接性的连接性方案的图;

图6是根据一些实施例的可以表示图1-4中描绘机架的任何具体一个的架构的机架架构的图;

图7是可以与图6的机架架构一起使用的滑板的示例实施例的图;

图8是为以扩展能力为特征的滑板提供支持的机架架构的示例实施例的图;

图9是根据图8的机架架构实现的机架的示例实施例的图。;

图10是设计用于与图9的机架结合使用的滑板的示例实施例的图;

图11是根据各种实施例的其中可以实现本文描述的一种或多种技术的数据中心的示例实施例的图;

图12是用于管理网络统计计数器的系统的至少一个实施例的简化框图,所述系统包括经由网络与目标计算装置通信地耦合的源计算装置;

图13是图12的系统的目标计算装置的至少一个实施例的简化框图;

图14是图12和图13的目标计算装置的环境的至少一个实施例的简化框图;

图15是用于更新与接收到的网络分组关联的网络统计计数器的方法的至少一个实施例的简化流程图,所述方法可以由图12-14的目标计算装置执行;

图16是用于通知软件消耗器一个或多个网络统计计数器(所述软件消耗器已对其进行订阅)的当前值的方法的至少一个实施例的简化流程图,所述方法可以由图12-14的目标计算装置执行;以及

图17是可用于执行计数器值查找的图12-14的目标计算装置的存储器中的网络统计计数器的高级别架构的简化框图。

具体实施方式

虽然本公开的概念容许各种修改和备选形式,其特定实施例已通过示例方式在附图中示出并且将在本文中详细描述。然而,应该理解的是,不存在将本公开的概念限制于所公开的具体形式的意图,而是相反,意图是要覆盖与本公开和所附权利要求一致的所有修改、等效和备选方案。

在说明书中引用“一个实施例”、“实施例”、“说明性实施例”等指示所描述的实施例可包括具体特征、结构或特性,但每一个实施例可以或者可以不必要地包括该具体特征、结构或特性。此外,此类短语不一定是指相同实施例。此外,当具体特征、结构或特性联系实施例进行描述时,认为它在本领域技术人员的知识范围内,以便联系其它实施例实施此类特征、结构或特性(不管是否明确描述)。此外,应该意识到,包含在以“至少一个a、b和c”的形式的列表中的项可表示:(a);(b);(c);(a和b);(a和c);(b和c)或(a、b和c)。类似地,以“a、b或c中的至少一个”形式列出的项可表示:(a);(b);(c);(a和b);(a和c);(b和c);或(a,b和c)。

所公开的实施例在一些情况下可用硬件、固件、软件或其任何组合来实现。所公开的实施例也可作为由暂时性或非暂时性机器可读(例如计算机可读)介质携带或存储在其上的指令而被实现,其可由一个或多个处理器读取和执行。机器可读存储介质可被实施为用于存储或传送以由机器(例如易失性或非易失性存储器、媒体盘或其它媒体装置)可读形式的信息的任何存储装置、机制或其它物理结构。

在附图中,一些结构特征或方法特征可按特定布置和/或排序示出。然而,应该意识到,可能不要求此类特定布置和/或排序。而是,在一些实施例中,此类特征可按与在说明性附图中示出的不同的方式和/或顺序布置。此外,在具体附图中包括结构或方法特征不打算意指在所有实施例中要求此类特征,并且在一些实施例中,此类特征可以不被包括或者可以与其它特征组合。

图1示出了根据各种实施例的数据中心100的概念性概述,所述数据中心100通常可以表示数据中心或其它类型的计算网络,在其中/针对其可以实现本文描述的一种或多种技术。如图1中所示的,数据中心100通常可以包含多个机架,每个机架可以容纳包括相应的物理资源集合的计算装备。在图1中描绘的具体非限制性示例中,数据中心100包含四个机架102a至102d,其容纳包括物理资源(pcr)105a至105d的相应集合的计算装备。根据此示例,数据中心100的物理资源106的共同集合包括分布在机架102a至102d之间的物理资源105a至105d的各种集合。物理资源106可以包括多种类型的资源,诸如-例如-处理器、协处理器、加速器、现场可编程门阵列(fpga)、存储器和存储装置。实施例不限于这些示例。

说明性数据中心100在许多方面不同于典型的数据中心。例如,在说明性实施例中,其上放置诸如cpu、存储器和其它组件的组件的电路板(“滑板”)针对增加的热性能而设计。尤其,在说明性实施例中,滑板比典型的板更浅薄。换句话说,滑板从前到后较短(其中冷却风扇位于其处)。这降低了空气必须行进跨过板上组件的路径的长度。此外,滑板上的组件比起在典型的电路板中要间隔得更远,并且所述组件被布置成减少或消除遮蔽(即,另一组件的空气流动路径中的一个组件)。在说明性实施例中,诸如处理器的处理组件位于滑板的顶侧上,而诸如dimm的附近存储器位于滑板的底侧上。作为通过此设计提供的增强的气流的结果,组件可以以比在典型系统更高的频率和功率级操作,由此增加性能。此外,滑板配置成与每个机架102a、102b、102c、102d中的功率和数据通信缆线盲配对,从而增强它们被快速移除、升级、重新安装和/或更换的能力。类似地,位于滑板上的各个组件(例如处理器、加速器、存储器和数据存储驱动器)配置成被容易地升级(由于它们彼此增加的间隔)。在说明性实施例中,组件附加地包括硬件证明特征以证实其可靠性。

此外,在说明性实施例中,数据中心100利用支持多个其它网络架构(包括以太网和omni-path)的单个网络架构(“组构”)。在说明性实施例中,滑板经由光纤耦合到交换机,其提供比典型双绞线缆线(例如,类别5、类别5e、类别6等)更高的带宽和更低的时延。由于高带宽、低时延互连和网络架构,数据中心100可以使用物理上解聚的池资源(例如存储器,加速器(例如,图形加速器、fpga、asic等),以及数据存储驱动器),并在按需的基础上将它们提供给计算资源(例如,处理器),使计算资源能够访问池化资源(就好像它们是本地的)。说明性数据中心100附加地接收各种资源的利用信息,基于过去的资源利用预测不同类型的工作负荷的资源利用,并基于此信息动态地重新分配资源。

数据中心100的机架102a、102b、102c、102d可以包括促进各种各样类型的维护任务的自动化的物理设计特征。例如,数据中心100可以使用设计成机器人式访问并且接受和容纳机器人式可操纵的资源滑板的机架来实现。此外,在说明性实施例中,机架102a、102b、102c、102d包括集成功率源,其接收比对于功率源典型的电压更大的电压。增加的电压使功率源能够将附加功率提供到每个滑板上的组件,使组件能够以高于典型频率的频率进行操作。

图2示出了数据中心100的机架202的示范逻辑配置。如图2中所示的,机架202通常可以容纳多个滑板,每个滑板可以包括相应的物理资源集合。在图2中描绘的具体非限制性示例中,机架202容纳包括物理资源205-1至205-4的相应集合的滑板204-1至204-4,其每个构成在机架202中包括的物理资源206的共同集合的一部分。针对于图1,如果机架202表示-例如-机架102a,则物理资源206可以对应于机架102a中包括的物理资源105a。在此示例的上下文中,物理资源105a因此可以由物理资源的相应集合组成,包括在机架202的滑板204-1至204-4中包括的物理存储资源205-1、物理加速器资源205-2、物理存储器资源205-3和物理计算资源205。实施例不限于此示例。每个滑板可以包含各种类型的物理资源(例如,计算、存储器、加速器、存储)中的每个的池。通过具有包括解聚资源的机器人式可访问和机器人式可操纵的滑板,每种类型的资源可以彼此独立地并且以其自己的优化刷新率升级。

图3示出了根据各种实施例的数据中心300的示例,所述数据中心300通常可以表示在其中/针对其可以实现本文描述的一种或多种技术的数据中心。在图3中描绘的具体非限制性示例中,数据中心300包括机架302-1至302-32。在各种实施例中,数据中心300的机架可以以如定义和/或适应各种访问路径的此种方式布置。例如,如图3中所示的,数据中心300的机架可以以如定义和/或适应访问路径311a、311b、311c和311d的此种方式布置。在一些实施例中,此类访问路径的存在可以通常使自动化维护装备(例如机器人维护装备)能够以物理地访问容纳在数据中心300的各种机架中的计算装备并执行自动化维护任务(例如,替换故障的滑板、升级滑板)。在各种实施例中,可以选择访问路径311a、311b、311c和311d的尺寸、机架302-1至302-32的尺寸,和/或数据中心300的物理布局的一个或多个其它方面以促进此类自动化操作。实施例不限于在此上下文中。

图4示出了根据各种实施例的数据中心400的示例,所述数据中心400通常可以表示在其中/针对其可以实现本文描述的一种或多种技术的数据中心。如图4中所示的,数据中心400可以以光组构412为特征。光组构412通常可以包括光信令媒体(例如光缆)和光交换基础设施的组合,数据中心400中的任何具体滑板可以经由它们将信号发送到数据中心400中的每个其它滑板以及接收来自数据中心400中的每个其它滑板的信号。光组构412提供到任何给定滑板的信令连接性可以包括到相同机架中的其它滑板和其它机架中的滑板二者的连接性。在图4中描绘的具体非限制性示例中,数据中心400包括四个机架402a至402d。机架402a至402d容纳滑板的相应对404a-1和404a-2、404b-1和404b-2、404c-1和404c-2以及404d-1和404d-2。因此,在此示例中,数据中心400包括总共八个滑板。经由光组构412,每个此类滑板可以拥有与数据中心400中的其它七个滑板中的每个的信令连接性。例如,经由光组构412,机架402a中的滑板404a-1可以拥有与机架402a中的滑板404a-2的信令连接性,以及与分布在数据中心400的其它机架402b、402c和402d之间的其它六个滑板404b-1、404b-2、404c-1、404c-2、404d-1和404d-2的信令连接性。实施例不限于此示例。

图5示出了连接性方案500的概述,所述连接性方案500通常可以表示在一些实施例中可以在数据中心(例如图1、3和4的示例数据中心100、300和400中的任何一个)的各种滑板之间建立的链路层连接性。可以使用以双模光交换基础设施514为特征的光组构来实现连接性方案500。双模光交换基础设施514通常可以包括交换基础设施,其能够根据多个链路层协议经由相同的统一光信令媒体集合接收通信,并适当地交换此类通信。在各种实施例中,可以使用一个或多个双模光交换机515来实现双模光交换基础设施514。在各种实施例中,双模光交换机515通常可以包括高基(high-radix)交换机。在一些实施例中,双模光交换机515可以包括多层交换机,例如四层交换机。在各种实施例中,双模光交换机515可以以集成硅光子学为特征(与常规交换装置相比,使它们能够通过显着减少的时延交换通信)。在一些实施例中,双模光交换机515可以构成叶脊架构中的叶交换机530,其附加地包括一个或多个双模光脊交换机520。

在各种实施例中,双模光交换机可以能够经由光组构的光信令媒体接收携带因特网协议(ip分组)的以太网协议通信和根据第二高性能计算(hpc)链路层协议(例如,intel的omni-path架构,infiniband)的通信。如图5中所反映的,针对于拥有到光组构的光信令连接性的滑板504a和504b的任何具体对,连接性方案500因此可以经由以太网链路和hpc链路提供对链路层连接性的支持。因此,可以由单个高带宽、低时延交换组构支持以太网和hpc通信二者。实施例不限于此示例。

图6示出了根据一些实施例的机架架构600的一般概述,所述机架架构600可以表示图1至4中描绘的机架中的任何具体架构。如图6中所反映的,机架架构600通常可以以滑板可以插入其中的多个滑板空间为特征,每个滑板空间可以经由机架访问区域601而机器人式可访问。在图6中描绘的具体非限制性示例中,机架架构600以五个滑板空间603-1至603-5为特征。滑板空间603-1至603-5以相应的多功能连接器模块(mpcm)616-1至616-5为特征。

图7示出了可以表示此类类型的滑板的滑板704的示例。如图7中所示的,滑板704可以包括物理资源705集合,以及mpcm716,其被设计成当滑板704插入到滑板空间(例如图6的任何滑板空间603-1至603-5)中时与对应物mpcm耦合。滑板704还可以以扩展连接器717为特征。扩展连接器717通常可以包括插座、插槽或其它类型的连接元件(其能够接受一种或多种类型的扩展模块,例如扩展滑板718)。通过与扩展滑板718上的对应物连接器耦合,扩展连接器717可以为物理资源705提供对驻留在扩展滑板718上的补充计算资源705b的访问。实施例不限于在此上下文中。

图8示出了可以表示机架架构的机架架构800的示例,所述机架架构可以被实现以便为以扩展能力为特征的滑板(例如图7的滑板704)提供支持。在图8中描绘的具体非限制性示例中,机架架构800包括七个滑板空间803-1至803-7,其以相应的mpcm816-1至816-7为特征。滑板空间803-1至803-7包括相应的主区域803-1a至803-7a和相应的扩展区域803-1b至803-7b。针对于每个此类滑板空间,当对应的mpcm与插入的滑板的对应物mpcm耦合时,主区域通常可以构成滑板空间的区域,其可以物理地适应插入的滑板。扩展区域通常可以构成滑板空间的区域,其可以物理地适应扩展模块,例如图7的扩展滑板718(在插入的滑板配置有此类模块的情况下)。

图9示出了根据一些实施例的机架902的示例,其可以表示根据图8的机架架构800实现的机架。在图9中描绘的具体非限制性示例中,机架902以七个滑板空间903-1至903-7为特征,其包括相应的主区域903-1a至903-7a和相应的扩展区域903-1b至903-7b。在各种实施例中,可以使用空气冷却系统来实现机架902中的温度控制。例如,如图9中所反映的,机架902可以以多个风扇919为特征,风扇919通常布置成在各种滑板空间903-1至903-7内提供空气冷却。在一些实施例中,滑板空间的高度大于常规的“1u”服务器高度。在此类实施例中,如与常规机架配置中使用的风扇相比,风扇919通常可以包括相对慢的大直径冷却风扇。相对于以较高速度运行的较小直径的冷却风扇,以较低的速度运行较大直径的冷却风扇可以增加风扇寿命,同时仍然提供相同的冷却量。滑板比常规的机架尺寸物理上更浅薄。此外,在每个滑板上布置组件以减少热遮蔽(即,不在气流方向上串联布置)。因此,更宽、更浅薄的滑板允许装置性能的增加,因为由于改进的冷却(即,没有热遮蔽、装置之间的更多空间、针对更大散热器的更多空间等),装置可以以更高的热封套(例如,250w)操作。

mpcm916-1至916-7可以配置成为插入的滑板提供对由相应的功率模块920-1至920-7供应的功率的使用,每个功率模块可以从外部功率源921提取功率。在各种实施例中,外部功率源921可以向机架902递送交流(ac)功率,并且功率模块920-1至920-7可以配置成将此类ac功率转换为要供应到插入的滑板的直流(dc)功率。在一些实施例中,例如,功率模块920-1至920-7可以配置成将277伏ac功率转换成12伏dc功率,以经由相应的mpcm916-1至916-7提供给插入的滑板。实施例不限于此示例。

mpcm916-1至916-7还可以被布置成为插入的滑板提供到双模光交换基础设施914的光信令连接性,双模光交换基础设施914可以与图5的双模光交换基础设施514相同或与其类似。在各种实施例中,包含在mpcm916-1至916-7中的光连接器可以被设计成与插入的滑板的mpcm中包含的对应物光连接器耦合,以经由相应长度的光缆922-1至922-7为此类滑板提供到双模光交换基础设施914的光信令连接性。在一些实施例中,每个此类长度的光缆可以从其对应的mpcm延伸到在机架902的滑板空间外部的光互连织机(loom)923。在各种实施例中,光互连织机923可以布置成通过支撑柱或者机架902的其它类型的负荷承载元件。实施例不限于在此上下文中。由于插入的滑板经由mpcm连接到光交换基础设施,因此可以节省通常花费在手动配置机架缆线以适应新插入的滑板的资源。

图10示出了根据一些实施例的滑板1004的示例,其可以表示设计用于与图9的机架902结合使用的滑板。滑板1004可以以mpcm1016为特征,mpcm1016包括光连接器1016a和功率连接器1016b,并且被设计成与滑板空间的对应物mpcm耦合(与将mpcm1016插入到该滑板空间中结合)。将mpcm1016与此类对应物mpcm耦合可以使功率连接器1016与对应物mpcm中包括的功率连接器耦合。这通常可以使滑板1004的物理资源1005能够经由功率连接器1016和功率传输媒体1024从外部源供应功率,功率传输媒体1024将功率连接器1016导电地耦合到物理资源1005。

滑板1004还可以包括双模光网络接口电路1026。双模光网络接口电路1026通常可以包括能够根据由图9的双模光交换基础设施914支持的多个链路层协议中的每个通过光信令媒体进行通信的电路。在一些实施例中,双模光网络接口电路1026可以具有以太网协议通信和根据第二高性能协议的通信二者的能力。在各种实施例中,双模光网络接口电路1026可以包括一个或多个光收发器模块1027,每个光收发器模块1027可以能够通过一个或多个光通道中的每个来传送和接收光信号。实施例不限于在此上下文中。

将mpcm1016与给定机架中的滑板空间的对应物mpcm耦合可以使光连接器1016a与对应物mpcm中包括的光连接器耦合。这通常可以经由光通道1025集合中的每个在双模光网络接口电路1026和滑板的光缆之间建立光连接性。双模光网络接口电路1026可以经由电信令媒体1028与滑板1004的物理资源1005通信。除了用于提供改进的冷却并使能以相对较高的热封套(例如,250w)操作的滑板上的组件的布置和滑板的尺寸之外(如上面参考图9所描述的),在一些实施例中,滑板可包括一个或多个附加特征以促进空气冷却,例如热管和/或散热器(布置成耗散由物理资源1005生成的热)。值得注意的是,尽管图10中描绘的示例滑板1004没有以扩展连接器为特征,但以滑板1004的设计元件为特征的任何给定滑板也可以根据一些实施例以扩展连接器为特征。实施例不限于在此上下文中。

图11示出了根据各种实施例的数据中心1100的示例,所述数据中心1100通常可以表示在其中/针对其可实现本文描述的一种或多种技术的数据中心。如图11中反映的,可以实现物理基础设施管理框架1150a以促进管理数据中心1100的物理基础设施1100a。在各种实施例中,物理基础设施管理框架1150a的一个功能可以将要管理数据中心1100内的自动化维护功能,例如使用机器人维护装备来服务物理基础设施1100a内的计算装备。在一些实施例中,物理基础设施1100a可以以先进的遥测系统为特征,所述遥测系统执行遥测报告,所述遥测报告足够鲁棒以支持物理基础设施1100a的远程自动化管理。在各种实施例中,由此类先进的遥测系统提供的遥测信息可以支持诸如故障预测/预防能力和容量规划能力的特征。在一些实施例中,物理基础设施管理框架1150a还可以配置成使用硬件证明技术来管理物理基础设施组件的认证。例如,机器人可以在安装之前通过分析从与要安装的每个组件关联的射频标识(rfid)标签收集的信息来验证组件的可靠性。实施例不限于在此上下文中。

如图11中所示的,数据中心1100的物理基础设施1100a可以包括光组构1112,其可以包括双模光交换基础设施1114。光组构1112和双模光交换基础设施1114可以分别与图4的光组构412和图5的双模光交换基础设施514相同或与其类似,并且可以在数据中心1100的滑板之间提供高带宽、低时延、多协议连接性。如上面所讨论的,参考图1,在各种实施例中,此类连接性的可用性可以使解聚和动态地池化诸如加速器、存储器和存储的资源可行。在一些实施例中,例如,一个或多个池化加速器滑板1130可以包括在数据中心1100的物理基础设施1100a之间,每个物理基础设施1100a可以包括加速器资源池-例如协处理器和/或fpga-例如-其经由光组构1112和双模光交换基础设施1114对其它滑板全局可访问。

在另一示例中,在各种实施例中,一个或多个池化存储滑板1132可以包括在数据中心1100的物理基础设施1100a之间,每个物理基础设施1100a可以包括经由光组构1112和双模光交换基础设施1114对其它滑板全局可访问的存储资源池。在一些实施例中,此类池化存储滑板1132可以包括固态存储装置(例如固态驱动器(ssd))的池。在各种实施例中,一个或多个高性能处理滑板1134可以包括在数据中心1100的物理基础设施1100a之间。在一些实施例中,高性能处理滑板1134可以包括高性能处理器池以及冷却特征(其增强空气冷却以产生高达250w或更高的较高热封套)。在各种实施例中,任何给定的高性能处理滑板1134可以以扩展连接器1117为特征,所述扩展连接器1117可以接受远存储器扩展滑板,使得对该高性能处理滑板1134本地可用的远存储器从包括在该滑板上的近存储器以及处理器中解聚。在一些实施例中,此类高性能处理滑板1134可以被配置有远存储器(使用包括低时延ssd存储装置的扩展滑板)。光基础设施允许一个滑板上的计算资源以利用远程加速器/fpga、存储器和/或ssd资源(其在位于相同机架或数据中心中的任何其它机架上的滑板上解聚)。在上面参考图5描述的脊-叶网络架构中,远程资源可以位于距一个交换机跳或距两个交换机跳的距离。实施例不限于在此上下文中。

在各种实施例中,可以将一个或多个抽象的层应用于物理基础设施1100a的物理资源,以便定义虚拟基础设施,例如软件定义的基础设施1100b。在一些实施例中,可以分配软件定义的基础设施1100b的虚拟计算资源1136以支持云服务1140的提供。在各种实施例中,可以对虚拟计算资源1136的具体集合进行分组以用于提供到云服务1140(以sdi服务1138的形式)。云服务1140的示例可以包括-但不限于-软件即服务(saas)服务1142、平台即服务(paas)服务1144,以及基础设施即服务(iaas)服务1146。

在一些实施例中,可以使用虚拟基础设施管理框架1150b来进行软件定义的基础设施1100b的管理。在各种实施例中,虚拟基础设施管理框架1150b可以被设计成结合管理到云服务1140的虚拟计算资源1136和/或sdi服务1138的分配来实现工作负荷指纹识别技术和/或机器学习技术。在一些实施例中,虚拟基础设施管理框架1150b可以结合执行此类资源分配来使用/咨询遥测数据。在各种实施例中,可以实现应用/服务管理框架1150c,以便为云服务1140提供qos管理能力。实施例不限于在此上下文中。

现在参考图12,在说明性实施例中,用于管理目标计算装置1206(例如,滑板204、404、504、1004、1130、1132、1134中的一个)的网络统计计数器的系统1200包括经由网络1204通信地耦合到目标计算装置1206的一个或多个源计算装置1202。如说明性地示出的,图12的目标计算装置1206包括一个或多个软件消耗器1208、消耗器控制队列管理器1210和计数器引擎1212。在使用中,目标计算装置1206管理多个活动计数器页(例如,参见图17的活动计数器页1702),其每个可用于跟踪一个或多个活动统计计数器。活动计数器页包括可用于查找对软件消耗器感兴趣的对应统计计数器(即,活动统计计数器)的值的统计计数器标识符。

每个活动统计计数器配置成存储指示在一段时间内接收到的关联网络分组的数量的值。因此,软件消耗器(例如,软件消耗器1208中的一个),例如当前由目标计算装置1206执行的软件应用,可以订阅一个或多个活动计数器页并跟踪在一段时间内接收到的某种类型的网络分组。为了管理活动计数器页和与其关联的统计计数器,目标计算装置1206,或者更具体地,目标计算装置1206的计数器引擎(例如,计数器引擎1212),配置成识别对应于接收到的网络分组的统计计数器,并在接收到网络分组时递增与所识别的统计计数器关联的值。

此外,如下面进一步详细描述的,计数器引擎1212配置成在已检测到触发事件时生成通知消息,所述通知消息包括软件消耗器已订阅的活动计数器页的统计计数器值。此类触发事件可以包括:已到期的定时器、来自订阅软件的转储清除请求,已超过阈值(例如,基于按计数器分配的位的数量或其它阈值确定因子)的统计计数器的值,已增长了预定值的统计计数器或某一其它触发事件。在已检测到触发事件时,计数器引擎1212配置成标记适当的活动计数器页以用于通知,并为随后接收到的网络分组分配新计数器页(其中可适用的统计计数器设置成其初始值(例如,零))。此外,计数器引擎1212配置成经由消耗器控制队列(例如,消耗器控制队列管理器1210)将所生成的通知消息传送到订阅的软件消耗器。相应地,软件消耗器可以然后更新统计计数器值的主副本。

如此,与当前技术不同,不要求软件消耗器从位于硬件中的存储器轮询计数器值,并且可以回复硬件以提供通知服务。此外,如本文所描述的,计数器引擎1212和关联的存储器缓冲器仅被要求在通知时段期间维持足够的计数器集合,因为统计计数器值的主副本由软件维持,所述软件通常具有对更大得多的存储器空间的访问。此外,由于计数器的总体大小仅取决于在通知时段期间维持足够的计数器集合,因此可以显着减少对具有大的管芯上存储器的需求,由此允许扩大规模到可以要求数百万统计计数器的计算系统。

目标计算装置1206可以实施为能够执行本文描述的功能的任何类型的计算或计算机装置,包括而不限于服务器(例如,独立、机架安装式、刀片等)、交换机(例如,解聚交换机、机架安装式交换机、独立交换机、完全管理交换机、部分管理型交换机、全双工交换机和/或半双工通信模式使能交换机)、路由器、网络设备(例如,物理或虚拟)、web设备、分布式计算系统、基于处理器的系统和/或多处理器系统。在说明性实施例中,目标计算装置1206实施为服务器滑板,例如上面描述的滑板204、404、504、1004、1130、1132、1134中的一个。

如图13中所示的,说明性目标计算装置1206(例如,计算滑板)包括计算引擎1300、输入/输出(i/o)子系统1306、通信电路1308、数据存储装置1314、以及在一些实施例中,一个或多个外设装置。当然,在其它实施例中,目标计算装置1206可以包括备选或附加组件,诸如通常在计算装置中找到的那些组件(例如,图形处理单元(gpu)、功率供应、风扇、等)。例如,在一些实施例中,目标计算装置1206可以实施为具有一个或多个现场可编程门阵列(fpga)的加速器滑板、具有多个存储器存储装置和关联的控制器的存储器滑板,或具有多个数据存储装置(例如,固态驱动器)和关联的控制器的数据存储滑板。此外,在一些实施例中,一个或多个说明性组件可以结合在另一组件中,或者以其它方式形成另一组件的一部分。此外,在一些实施例中,可以从目标计算装置1206省略一个或多个说明性组件。

计算引擎1300可以实施为能够执行下面描述的各种计算功能的任何类型的装置或装置的集合。在一些实施例中,计算引擎1300可以实施为单个装置,诸如集成电路、嵌入式系统、现场可编程门阵列(fpga)、片上系统(soc)或其它集成系统或装置。此外,在一些实施例中,计算引擎1300包括或实施为处理器1302和存储器1304。计算引擎1300可以实施为能够执行指令以执行本文描述的功能的任何类型的中央处理单元。例如,处理器1302可以实施为单核处理器、多核处理器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、微控制器或其它处理器或处理/控制电路。不管处理器1302的实施例,处理器1302可以实施为能够执行编程的指令的独立逻辑执行单元。在一些实施例中,处理器1302可以包括高速缓冲存储器的一部分(即,可以比存储器1304更快地被访问的存储器)和可用于独立地执行程序或线程的功能单元,其未示出以保持描述的清楚性。应该意识到,在一些实施例中,目标计算装置1206可以包含多于一个处理器1302。

存储器1304可以实施为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器1304可以存储在目标计算装置1206的操作期间使用的各种数据和软件,诸如操作系统、应用、程序,库和驱动器。i/o子系统1306可以实施为电路和/或组件,以促进与计算引擎1300和目标计算装置1206的其它组件的输入/输出操作。例如,i/o子系统1306可以实施为,或者以其它方式包括,存储器控制器中枢、输入/输出控制中枢、固件装置、通信链路(即,点对点链路、总线链路、电线、缆线、光导管、印刷电路板迹线等),和/或促进输入/输出操作的其它组件和子系统。在一些实施例中,i/o子系统1306可以形成片上系统(soc)的一部分并且连同处理器1302、存储器1304以及目标计算装置1206的其它组件结合在单个集成电路芯片上。

通信电路1308可以实施为能够使能目标计算装置1206与其它计算装置(例如源计算装置1202)以及任何网络通信使能装置(例如接入点,网络交换机/路由器等)之间的通信的任何通信电路、装置或其集合,以允许通过网络1204的通信。通信电路1308可以配置成使用任何一种或多种通信技术(例如,无线或有线通信技术)和关联协议(例如,以太网、bluetooth®、wi-fi®、wimax、lte,5g等)以实现此类通信。

在一些实施例中,如本文所描述的通信电路1308的一个或多个功能的执行可以由通信电路1308的专用电路、硬件或其组合来执行,其可以实施为片上系统(soc)或以其它方式形成目标计算装置1206的soc的一部分(例如,连同处理器1302、存储器1304和/或目标计算装置1206的其它组件结合在单个集成电路芯片上)。备选地,在一些实施例中,专用电路、硬件或其组合可以实施为目标计算装置1206的一个或多个分立处理单元,其每个可以能够执行本文描述的一个或多个功能。

说明性通信电路1308包括网络接口控制器(nic)1310。nic1310可以实施为一个或多个插入式板、子卡、网络接口卡、控制器芯片、芯片集或可以由目标计算装置1206使用的其它装置。在一些实施例中,例如,nic1310可以与计算引擎1300集成,实施为通过扩展总线(例如,pciexpress(pcie))耦合到i/o子系统1306的扩展卡(被包括作为包括一个或多个处理器的soc的一部分,或被包括在也包含一个或多个处理器的多芯片封装中)。

应该意识到,在一些实施例中,通信电路1308可以包括专用电路、硬件或其组合,以执行用于执行本文描述的功能的流水线逻辑(例如,硬件算法),所述功能包括处理网络分组(例如,解析所接收到的网络分组、针对每个接收到的网络分组确定目的地计算装置、将网络分组转发到目标计算装置1206的相应主机缓冲器的具体缓冲队列等),执行计算功能等。例如在一些实施例中,本文描述的如由计数器引擎1212执行的操作的至少一部分可以由通信电路1308执行,或者更具体地由nic1310执行。

数据存储装置1314可以实施为被配置用于短期或长期存储数据的任何类型的(一个或多个)装置,例如诸如存储器装置和电路、存储器卡、硬盘驱动器、固态驱动器或其它数据存储装置。应该意识到,数据存储装置1314和/或存储器1304(例如,计算机可读存储媒体)可以存储如本文所描述的各种数据,包括能够由目标计算装置1206的处理器(例如,处理器1300)执行的操作系统、应用、程序、库、驱动器、指令等。

一个或多个外设装置1312可以包括可用于将信息输入到目标计算装置1206中和/或从目标计算装置1206接收信息的任何类型的装置。外设装置1312可以实施为可用于将信息输入到目标计算装置1206中的任何辅助装置,例如键盘、鼠标、麦克风、条形码读取器、图像扫描仪等,或者从目标计算装置1206(例如显示器、扬声器、图形电路、打印机、投影仪等)输出信息。应该意识到,在一些实施例中,外设装置1312中的一个或多个可以充当输入装置和输出装置(例如,触摸屏显示器、显示屏顶部上的数字化仪等)的作用。应该进一步意识到,连接到目标计算装置1206的外设装置1222的类型可取决于(例如)目标计算装置1206的类型和/或意图用途。附加或备选地,在一些实施例中,外设装置1222可以包括一个或多个端口,例如usb端口,例如以用于将外部外设装置连接到目标计算装置1206。

网络1204可以实施为任何类型的有线或无线通信网络,包括但不限于无线局域网(wlan)、无线个域网(wpan)、蜂窝网络(例如,全球移动通信系统(gsm)、长期演进(lte)等)、电话网络、数字订户线(dsl)网络、缆线网络、局域网(lan)、广域网(wan)、全球网络(例如,因特网)或其任何组合。应该意识到,在此类实施例中,网络1204可以充当集中式网络功能,并且在一些实施例中,可以通信地耦合到另一网络(例如,因特网)。相应地,网络1204可以根据需要包括各种各样其它虚拟和/或物理网络计算装置(例如,路由器、交换机、网络集线器、服务器、存储装置、计算装置等),以促进源计算装置1202和目标计算装置1206之间的通信,其未示出以保持描述的清楚性。

源计算装置1202可以实施为能够执行本文描述的功能的任何类型的计算或计算机装置,包括但不限于移动计算装置(例如,智能手机、平板计算机、膝上型计算机、笔记本计算机、可穿戴装置),桌上型计算机、服务器(例如,独立、机架安装式、刀片等)、交换机(例如,解聚交换机、机架安装式交换机、独立交换机、完全管理的交换机、部分管理的交换机、全双工交换机和/或半双工通信模式使能的交换机)、路由器、网络设备(例如,物理或虚拟)、web设备、分布式计算系统、基于处理器的系统和/或多处理器系统。

应该意识到,源计算装置1202通常包括比如本文针对说明性目标计算装置1206描述的组件的组件。如此,为了描述的清楚性,本文不重复相同组件的进一步描述,其中理解到上面关于目标计算装置1206提供的对应组件的描述同样适用于源计算装置1202的对应组件。例如,在一些实施例中,源计算装置1202可以实施为另一滑板204、404、504、1004、1130、1132、1134。当然,应该意识到,源计算装置1202可以包括附加和/或备选组件(取决于实施例)。

现在参考图14,在使用中,目标计算装置1206在操作期间建立环境1400。说明性环境1400包括网络业务入口/出口管理器1406,以及图12的说明性目标计算装置1206的一个或多个软件消耗器1208、消耗器控制队列管理器1210和计数器引擎1212。环境1400的各种组件可以实施为硬件、固件、软件或其组合。如此,在一些实施例中,环境1400的一个或多个组件可以实施为电子装置的集合或电路(例如,网络业务入口/出口管理器电路1406、消耗器控制队列管理器电路1210、计数器引擎电路1212等)。

应该意识到,在一些实施例中,一个或多个说明性组件可以形成另一组件的一部分和/或一个或多个说明性组件可以彼此独立。此外,在一些实施例中,环境1400的一个或多个组件可以实施为虚拟化硬件组件或仿真架构,其可以由目标计算装置1206的处理器1300、nic1310或其它一个或多个组件建立和维持。应该意识到,为了描述的清楚性,目标计算装置1206可以包括通常在计算装置中找到的(未在图14中示出的)其它组件、子组件、模块、子模块、逻辑、子逻辑和/或装置。

在说明性环境1400中,目标计算装置1206附加地包括计数器数据1402和通知消息数据1404,其每个可以由目标计算装置1206的各种组件和/或子组件访问。此外,计数器数据1402和通知消息数据1404中的每个可以由目标计算装置1206的各种说明性组件访问。此外,应该意识到,在一些实施例中,存储在计数器数据1402和通知消息数据1404中的每个中或以其它方式由其表示的数据可以相对于彼此相互排他。例如,在一些实现中,存储在计数器数据1402中的数据也可以存储为通知消息数据1404中的一个或多个的一部分。如此,尽管由目标计算装置1206利用的各种数据在本文中被描述为具体离散数据,在其它实施例中,此类数据可以被组合、聚合和/或以其它方式形成单个或多个数据集合的部分(包括重复的副本)。

一个或多个软件消耗器1208可以实施为当前在目标计算装置1206上执行的任何类型的程序,其维持状态计数器的主副本并且消耗(即,处理)在由计数器引擎1212经由消耗器控制队列传送到软件消耗器1208的通知消息中接收到的计数器值。因此,消耗器控制队列管理器1210(其可以实施为如上面所讨论的硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合)配置成充当计数器引擎1212和软件消耗器(例如,图12的软件消耗器1208)之间的接口的作用。

为此,消耗器控制队列管理器1210配置成为订阅计数器引擎1212的每个软件消耗器创建和管理消耗器控制队列。每个消耗器控制队列配置成接收和排队本文所描述的计数器通知消息,以及将排队的计数器通知消息分布到关联的软件消耗器。为了初始化消耗器控制队列,消耗器控制队列管理器1210配置成初始化和分配每个消耗器控制队列,以及为每个消耗器控制队列建立唯一标识符,所述唯一标识符由软件消耗器可使用以从相应消耗器控制队列请求通知分组。

此外,消耗器控制队列管理器1210可以配置成向每个消耗器控制队列指配中断。在一些实施例中,消耗器控制队列管理器1210可以配置成在不处理快速路径网络业务的核上设置消耗器控制队列。消耗器控制队列管理器1210还可以配置成与驱动器通信,例如可能被要求设置消耗器控制队列的参数,例如针对消耗器控制队列分配的缓冲器的数量(例如,以处置最差情况转储清除速率)。

如上面所讨论的,可以被实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合的网络业务入口/出口管理器1406配置成接收入局以及路由/传送出局网络业务。因此,网络业务入口/出口管理器1406配置成通过管理(例如,创建、修改、删除等)到目标计算装置1206的物理和虚拟网络端口(即,虚拟网络接口)的连接(例如,经由通信电路1306)以及与其关联的入口缓冲器/队列来促进到目标计算装置1206的入局网络通信(例如,网络业务、网络分组、网络流等)。此外,网络业务入口/出口管理器1406配置成解析所接收到的网络分组,例如可以对接收到的网络分组的报头或有效载荷/主体执行,以识别网络分组的属性或指示符,其可以可用于对接收到的网络分组进行归类和/或确定接收到的网络分组所对应的流。

此外,网络业务入口/出口管理器1406配置成通过管理(例如,创建、修改、删除等)到目标计算装置1206的物理和虚拟网络端口/接口的连接(例如,经由通信电路1306)以及与其关联的出口缓冲器/队列来促进来自目标计算装置1206的出局网络通信(例如,网络业务、网络分组流、网络流等)。此外,网络业务入口/出口管理器1406配置成在可适用层将适当的报头构造/添加到网络分组、有效载荷/主体(即,统计计数器值和关联的标识符)以及任何脚注(footer),例如可用于存储错误检测码(例如,循环冗余校验(crc)数据验证信息)。

如上面所讨论的,可以实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合的计数器引擎1212配置成在一段时间上维持统计计数器的值,将软件消耗器已订阅的那些统计计数器值封装成通知消息,并将通知消息传送到订阅的软件消耗器。为此,说明性计数器引擎1212包括计数器页管理器1408、计数器值管理器1410和计数器通知管理器1412。

可以实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合的计数器页管理器1408配置成创建和管理活动计数器页(例如,参见图17的活动计数器页1702)。为此,计数器页管理器1408配置成分配新活动计数器页并管理哪个软件消耗器(例如,图12的软件消耗器1208中的一个)与每个活动计数器页关联。每个活动计数器页可用于将统计计数器标识符映射到被映射的统计计数器的值的存储器地址条目。

应该意识到,软件消耗器可以订阅多于一个活动计数器页。因此,计数器页管理器1408可以配置成生成软件消耗器对应的活动计数器页的标识符并为软件消耗器提供该标识符。备选地,计数器页管理器1408可以配置成从软件消耗器接收标识符并使用所述标识符将软件消耗器映射到软件消耗器对应的活动计数器页。换句话说,标识符(不管源)可以由软件消耗器可使用以识别哪个(哪些)活动计数器页与从计数器引擎1212接收到的消息(例如,通知消息)关联。

计数器值管理器1410(其可以实施为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合)配置成创建统计计数器并更新统计计数器值。例如,在接收到网络分组并识别与所接收到的网络分组关联的分组流(例如,可以由网络业务入口/出口管理器1406执行)时,计数器值管理器1410配置成基于所识别的分组流识别哪个(哪些)活动计数器页与软件消耗器关联。应该意识到,备选地,在其它实施例中,另一指示符可以附加地或备选地与网络分组关联(例如,一种类型的有效载荷数据、元组、源互联网协议(ip)地址、目的地ip地址、源端口号、目的端口号等),其可用于识别每个接收到的网络分组的适当的统计计数器标识符。

计数器值管理器1410配置成执行查找操作以检索统计计数器的当前值(即,计数器值),其地址被映射到所识别的活动计数器页中的统计计数器标识符。如果统计计数器是新的(即,查找不成功),则计数器值管理器1410配置成使用可适用的计数器存储器条目在计数器存储器的储库(bank)(例如,参见图17的计数器储库1706)中以初始默认值(例如,零)开始分配统计计数器。此外,计数器值管理器1410配置成将统计计数器添加到适当的活动计数器页(即,与对应于所识别的分组流的软件消耗器关联)。如果统计计数器存在于活动计数器页中(即,查找成功),则计数器值管理器1410配置成使用与统计计数器关联的计数器存储器条目地址来读取当前值、递增当前值,以及将递增的值写回计数器存储器。

可以实施为硬件、固件、软件、虚拟化硬件,仿真架构和/或其组合的计数器通知管理器1412配置成生成通知消息并将生成的通知消息传送到可适用的消耗器控制队列(例如,经由消耗器控制队列管理器)。为此,计数器通知管理器1412配置成检测通知触发事件并请求映射到与软件消耗器(与通知触发事件关联)关联的活动计数器页的每个统计计数器的值。通知触发事件可以包括任何检测到的事件,所述事件提示与要读取的活动计数器页关联的统计计数器值。如先前所描述的,此类触发事件可以包括已到期的定时器、来自订阅软件的转储清除请求、已超过阈值(例如,基于每计数器分配的位的数量或其它阈值确定因子)的统计计数器的值、已增长了预定值的统计计数器,或某一其它通知触发事件。

在已接收到所请求的统计计数器值时,计数器通知管理器1412附加地配置成生成通知消息,所述通知消息包括作为通知消息的有效载荷/主体的所接收到的统计计数器值。此外,计数器通知管理器1412配置成将报头附连到通知消息,所述报头包括指示生成通知消息的时间的时间戳和接收到的统计计数器值的总数量的指示。计数器通知管理器1412还配置成将通知消息传送到与软件消耗器(已针对其生成通知消息)关联的消耗器控制队列。相应地,软件消耗器可以在从消耗器控制队列接收到通知消息时更新统计计数器值的主副本。在一些实施例中,统计计数器值的主副本可以存储在计数器数据1402中。此外,在一些实施例中,通知消息的至少一部分可以存储在通知消息数据1404中。

现在参考图15,示出了用于更新与所接收到的网络分组关联的网络统计计数器的方法1500,其可以由目标计算装置1206执行,或者更具体地,由目标计算装置1206的nic(例如,图13的nic1310)执行。应该意识到,方法1500中描述的功能性的至少一部分可以由计数器引擎1212执行。方法1500在框1502开始,其中nic1310确定网络分组是否已被接收。如果是,则方法1500前进到框1504,其中nic1310确定与所接收到的网络分组关联的网络分组标识符。在一些实施例中,可以在解析和处理所接收到的网络分组报头和/或有效载荷/主体的至少一部分时确定网络分组标识符。在框1506中,nic1310基于所确定的网络分组标识符来确定与所接收到的网络分组关联的分组流。

在框1508,nic1310基于所确定的分组流来识别软件消耗器和统计计数器。在框1510中,nic1310识别与所识别的软件消耗器关联的一个或多个活动计数器页。在框1512,nic1310使用统计计数器的标识符对所识别的活动计数器页中的统计计数器执行查找操作。如先前所描述的,对活动计数器页执行查找操作(即,使用统计计数器标识符)以检索统计计数器的存储器条目地址。在框1514,nic1310确定查找操作是否成功。换句话说,nic1310确定在所识别的活动计数器页中是否找到匹配的统计计数器标识符,以及是否已检索到统计计数器的对应计数器存储器地址。

在框1514,如果nic1310确定查找操作成功,则方法1500分支到框1516。在框1516,nic1310读取在查找操作期间检索的统计计数器存储器条目地址处的统计计数器的值。例如,图17显示了目标计算装置1206的存储器中的统计计数器1708的说明性高级别架构。如说明性地示出,活动计数器页1702包括第一活动计数器页(指派为活动计数器页(1)1702a)、第二活动计数器页(指派为活动计数器页(2)1702b)和第三活动计数器页(指派为活动计数器页(n)1702c,其中“n”是表示“第n”活动计数器页1702的正整数)。

还如说明性地示出,活动计数器页(1)1702a包括第一计数器标识符条目(指派为计数器标识符(1)1704a)、第二计数器标识符条目(指派为计数器标识符(2)1704b),以及第三计数器标识符条目(指派为计数器标识符(n)1704c,其中“n”是表示“第n”计数器标识符条目1704的正整数)。此外,说明性计数器储库1706包括第一计数器储库(指派为计数器储库(1)1706a)和第二计数器储库(指派为计数器储库(n)1706b,其中“n”是表示“第n”计数器储库1706的正整数)。计数器储库(1)1706a说明性地包括第一计数器值条目(指派为计数器值(1)1708a)、第二计数器值条目(指派为计数器值(2)1708b),以及第三计数器值条目(指派为计数器值(n)1708c,其中“n”是表示“第n”计数器值条目1708的正整数)。

在此类实施例中,为了执行查找操作,nic1310配置成确定匹配的计数器标识符是否在被搜索的活动计数器页1702的计数器标识符条目1704中。如先前所注意到的,每个活动计数器页1702包括统计计数器标识符及其对应的计数器存储器地址条目的集合,其每个对应于计数器储库1706的计数器值条目1708(在计数器储库1706中存储统计计数器值)。在其中分组流对应于与活动计数器页(1)1702a关联的软件消耗器的说明性示例中,nic1310配置成确定活动计数器页(1)1702a是否包括在匹配对应于所识别的统计计数器(即,基于所确定的分组流识别的)的计数器标识符的计数器条目1704中的一个中的统计计数器标识符。在进一步说明性示例中,在定位匹配的计数器标识符时,如由计数器标识符(2)1704b的突出显示的边界所指示的,nic1310配置成对计数器标识符(2)1704b的计数器存储器地址进行读取请求,计数器标识符(2)1704b的计数器存储器地址(如由突出显示的边界和箭头指示和说明性地示出)是计数器储库(1)1706a的计数器值(1)1708a。

再次参考图15,在框1518,nic1310递增从统计计数器读取的值。在框1520,nic1310将递增的统计计数器值写回到最初从其读取统计计数器值的计数器存储器地址。返回参考框1514,在nic1310确定查找操作不成功的情况下,方法1500分支到框1522。在框1522,nic1310将新计数器添加到与所识别的软件消耗器关联的活动计数器页。在框1524,nic1310在计数器存储器地址分配新统计计数器。在框1526,nic1310将新统计计数器的值初始化为默认初始值(例如,零)。在框1528,nic1310将计数器存储器地址和统计计数器的标识符写入到可适用的活动计数器页(例如,图17的活动计数器页1702中的一个)中的计数器标识符条目(例如,图17的计数器标识符条目1704中的一个)。

现在参考图16,示出了用于向软件消耗器通知软件消耗器已订阅的一个或多个网络统计计数器的当前值的方法1600,其可以由目标计算装置1206执行,或者更具体地由目标计算装置1206的nic(例如,图13的nic1310)执行。应该意识到,方法1600中描述的功能性的至少一部分可以由计数器引擎1212执行。方法1600在框1602开始,其中nic1310确定是否已检测到通知触发事件,其指示向软件消耗器(例如,图12的软件消耗器1208中的一个)通知具体活动计数器页的当前统计计数器值。如先前所描述的,通知触发事件可以包括任何检测到的事件,所述事件提示与要读取的活动计数器页关联的统计计数器值。还如先前所描述的,此类触发事件可以包括已到期的定时器、来自订阅软件的转储清除请求、已超过阈值(例如,基于每计数器分配的位的数量或其它阈值确定因子)的统计计数器的值、已增长了预定值的统计计数器,或某一其它通知触发事件。

如果nic1310确定通知软件消耗器,则方法1600前进到框1604,其中nic1310标记与软件消耗器关联的活动计数器页以用于通知。在框1606,nic1310为随后接收到的网络分组分配新活动计数器页以进行更新。应该意识到,新活动计数器页包括与针对通知而标记的活动计数器页相同的活动计数器条目,使得每个计数器被重置为默认值。如此,仅考虑在活动计数器页针对通知而被标记与新活动计数器页针对通知而被标记的时间之间执行的成功查找的数量。在框1608,nic1310读取活动计数器页中的每个活动计数器条目的统计计数器值。在框1610,nic1310识别从活动计数器页读取的活动计数器条目的总数量。在框1612,nic1310生成具有读取的统计计数器值及其关联的统计计数器标识符(作为消息的有效载荷/主体)的通知消息。此外,在框1614,nic1310捕获生成通知消息的时间。

在框1616,nic1310将报头附连到通知消息。此外,在框1618,nic1310在报头中包括时间戳,所述时间戳对应于生成通知消息的捕获时间。此外,在框1620,nic1310包括指示在活动计数器页中识别的活动计数器条目的总数量的值。在框1622,nic1310将通知消息传送到与要被通知的软件消耗器关联的消耗器控制队列。

应该意识到,在一些实施例中,方法1500和1600可以实施为存储在计算机可读媒体上的各种指令,其可以由处理器(例如,处理器1300)、通信电路1306,和/或目标计算装置1206的其它组件执行,以使目标计算装置1206执行方法1500和1600的至少一部分。计算机可读媒体可以实施为能够由目标计算装置1206读取的任何类型的媒体,包括但不限于存储器1304、数据存储装置1314、目标计算装置1206的其它存储器或数据存储装置,由目标计算装置1206的外设装置可读取的便携式媒体,和/或其它媒体。

本发明提供一组技术方案,如下:

1.一种用于管理网络统计计数器的计算装置,所述计算装置包括:

计算引擎;以及

网络接口控制器(nic),用于:

由所述nic基于接收到的网络分组识别多个统计计数器的统计计数器和软件消耗器,其中所述软件消耗器当前在所述计算装置上执行;

由所述nic根据所述识别的软件消耗器来识别活动计数器页,其中所述活动计数器页包括多个计数器标识符条目,并且其中所述多个计数器标识符条目中的每个包括所述统计计数器的计数器标识符和所述统计计数器的计数器存储器地址;

由所述nic读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的值;

由所述nic递增所述统计计数器的所述读取值;

由所述nic将所述统计计数器的所述递增值写回到所述计数器存储器地址;

由所述nic确定是否已检测到通知触发事件;

由所述nic并且响应于已检测到所述通知触发事件而生成通知消息,其中所述通知消息的主体包括所述统计计数器的当前值和所述活动计数器页的其它统计计数器中的每个的当前值;以及

由所述nic将所述生成的通知消息传送到所述软件消耗器。

如技术方案1所述的计算装置,其中,将所述生成的通知消息传送到所述软件消耗器包括:将所述生成的通知消息传送到与所述软件消耗器关联的消耗器控制队列。

如技术方案1所述的计算装置,其中,生成所述通知消息包括:捕获生成所述通知消息的时间并将报头附连到所述通知消息,并且其中,所述报头包括所述捕获的时间。

如技术方案3所述的计算装置,其中,生成所述通知消息包括:将报头附连到所述通知消息,其中,所述报头包括所述通知消息中包括的所述活动计数器页的统计计数器的总数量的指示符。

如技术方案1所述的计算装置,其中,确定是否已检测到所述通知触发事件包括:检测由所述nic管理的定时器是否已到期。

如技术方案1所述的计算装置,其中,确定是否已检测到所述通知触发事件包括:检测是否已从所述软件消耗器接收到转储清除请求。

如技术方案1所述的计算装置,其中,确定是否已检测到所述通知触发事件包括:检测所述多个统计计数器中的任何一个的值是否已超过阈值。

如技术方案1所述的计算装置,其中,确定是否已检测到所述通知触发事件包括:检测所述多个统计计数器中的任何一个的值是否已增长预定值。

如技术方案1所述的计算装置,其中,所述多个指令还使所述计算装置用于:

由所述nic并且响应于所述查找操作未返回匹配的计数器标识符,而将新计数器添加到所述活动计数器页;

由所述nic在新计数器存储器地址分配新统计计数器;

由所述nic将所述新统计计数器的值设置为零;以及

由所述nic将所述新统计计数器的标识符和所述新计数器存储器地址写入到所述活动计数器页的空计数器标识符条目。

如技术方案1所述的计算装置,其中,所述多个指令还使所述计算装置通过所述nic确定与所述接收到的网络分组关联的分组流,并且其中,识别所述统计计数器和所述软件消耗器包括基于所述确定的分组流识别所述统计计数器和所述软件消耗器。

如技术方案1所述的计算装置,其中,所述多个指令还使所述计算装置通过所述nic对所述识别的活动计数器页中的所述识别的统计计数器执行查找操作,以检索与所述识别的统计计数器关联的计数器存储器地址,并且其中读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的所述值包括:在所述查找操作已返回所述匹配的计数器标识符条目之后读取在由所述查找操作返回的匹配计数器标识符条目的所述统计计数器的所述值。

一个或多个机器可读存储媒体,包括存储在所述机器可读存储媒体上的多个指令,所述指令响应于被执行,使计算装置用于:

由所述计算装置的网络接口控制器(nic)基于接收到的网络分组识别多个统计计数器的统计计数器和软件消耗器,其中所述软件消耗器当前正在所述计算装置上执行;

由所述nic根据所述识别的软件消耗器来识别活动计数器页,其中所述活动计数器页包括多个计数器标识符条目,并且其中所述多个计数器标识符条目中的每个包括所述统计计数器的计数器标识符和所述统计计数器的计数器存储器地址;

由所述nic读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的值;

由所述nic递增所述统计计数器的所述读取值;

由所述nic将所述统计计数器的所述递增值写回到所述计数器存储器地址;

由所述nic确定是否已检测到通知触发事件;

由所述nic并且响应于已检测到所述通知触发事件而生成通知消息,其中所述通知消息的主体包括所述统计计数器的当前值和所述活动计数器页的其它统计计数器中的每个的当前值;以及

由所述nic将所述生成的通知消息传送到所述软件消耗器。

如技术方案12所述的一个或多个机器可读存储媒体,其中将所述生成的通知消息传送到所述软件消耗器包括将所述生成的通知消息传送到与所述软件消耗器关联的消耗器控制队列。

如技术方案12所述的一个或多个机器可读存储媒体,其中,生成所述通知消息包括:捕获生成所述通知消息的时间并将报头附连到所述通知消息,并且其中所述报头包括所述捕获的时间。

如技术方案14所述的一个或多个机器可读存储媒体,其中,生成所述通知消息包括:将报头附连到所述通知消息,其中,所述报头包括所述通知消息中包括的所述活动计数器页的统计计数器总数量的指示符。

如技术方案12所述的一个或多个机器可读存储媒体,其中,确定是否已检测到所述通知触发事件包括:检测由所述nic管理的定时器是否已到期。

如技术方案12所述的一个或多个机器可读存储媒体,其中,确定是否已检测到所述通知触发事件包括:检测是否已从所述软件消耗器接收到转储清除请求。

如技术方案12所述的一个或多个机器可读存储媒体,其中,确定是否已检测到所述通知触发事件包括:检测所述多个统计计数器中的任何一个的值是否处于以下情况中的一种:超过了阈值或者增长了预定值。

如技术方案12所述的一个或多个机器可读存储媒体,其中,所述多个指令还使所述计算装置用于:

由所述nic并且响应于所述查找操作未返回匹配的计数器标识符,将新计数器添加到所述活动计数器页;

由所述nic在新计数器存储器地址分配新统计计数器;

由所述nic将所述新统计计数器的值设置为零;以及

由所述nic将所述新统计计数器的标识符和所述新计数器存储器地址写入到所述活动计数器页的空计数器标识符条目。

如技术方案12所述的一个或多个机器可读存储媒体,其中,所述多个指令还使所述计算装置通过所述nic确定与所述接收到的网络分组关联的分组流,并且其中,识别所述统计计数器和所述软件消耗器包括基于所述确定的分组流来识别所述统计计数器和所述软件消耗器。

如技术方案12所述的一个或多个机器可读存储媒体,其中,所述多个指令还使所述计算装置通过所述nic对所述识别的活动计数器页中的所述识别的统计计数器执行查找操作以检索与所述识别的统计计数器关联的计数器存储器地址,并且其中,读取存储在所述对应的计数器标识符条目的所述计数器存储器地址的所述统计计数器的所述值包括:在所述查找操作已返回所述匹配的计数器标识符条目之后读取在由所述查找操作返回的匹配的计数器标识符条目的所述统计计数器的所述值。

22.一种用于管理网络统计计数器的方法,所述方法包括:

由计算装置的网络接口控制器(nic)基于接收到的网络分组识别多个统计计数器的统计计数器和软件消耗器,其中所述软件消耗器当前正在所述计算装置上执行;

由所述nic根据所述识别的软件消耗器来识别活动计数器页,其中所述活动计数器页包括多个计数器标识符条目,并且其中所述多个计数器标识符条目中的每个包括所述统计计数器的计数器标识符和所述统计计数器的计数器存储器地址;

由所述nic读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的值;

由所述nic递增所述统计计数器的所述读取值;

由所述nic将所述统计计数器的所述递增值写回到所述计数器存储器地址;

由所述nic确定是否已检测到通知触发事件;

由所述nic并且响应于已检测到所述通知触发事件而生成通知消息,其中所述通知消息的主体包括所述统计计数器的当前值和所述活动计数器页的其它统计计数器中的每个的当前值;以及

由所述nic将所述生成的通知消息传送到所述软件消耗器。

如技术方案22所述的方法,还包括:

通过所述nic并且响应于所述查找操作未返回匹配的计数器标识符,将新计数器添加到所述活动计数器页;

由所述nic在新计数器存储器地址分配新统计计数器;

由所述nic将所述新统计计数器的值设置为零;以及

由所述nic将所述新统计计数器的标识符和所述新计数器存储器地址写入到所述活动计数器页的空计数器标识符条目。

如技术方案22所述的方法,还包括由所述nic确定与所述接收到的网络分组关联的分组流,并且其中识别所述统计计数器和所述软件消耗器包括基于所述确定的分组流来识别所述统计计数器和所述软件消耗器。

如技术方案22所述的方法,还包括由所述nic对所述识别的活动计数器页中的所述识别的统计计数器执行查找操作,以检索与所述识别的统计计数器关联的计数器存储器地址,并且其中读取存储在所述对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的所述值包括:在所述查找操作已返回所述匹配的计数器标识符条目之后读取在由所述查找操作返回的匹配的计数器标识符条目的所述统计计数器的所述值。

示例

下面提供本文公开的技术的说明性示例。技术的实施例可以包括下面描述的示例中的任何一个或多个以及其任何组合。

示例1包括一种用于管理网络统计计数器的计算装置,所述计算装置包括:计算引擎;以及网络接口控制器(nic)以:由所述nic基于接收到的网络分组识别多个统计计数器的统计计数器和软件消耗器,其中所述软件消耗器当前在所述计算装置上执行;由所述nic根据所述识别的软件消耗器来识别活动计数器页,其中所述活动计数器页包括多个计数器标识符条目,并且其中所述多个计数器标识符条目的每个包括所述统计计数器的计数器标识符和所述统计计数器的计数器存储器地址;由所述nic读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的值;由所述nic递增所述统计计数器的所述读取值;由所述nic将所述统计计数器的所述递增值写回到所述计数器存储器地址;由所述nic确定是否已检测到通知触发事件;由所述nic并且响应于已检测到所述通知触发事件而生成通知消息,其中所述通知消息的主体包括所述统计计数器的当前值和所述活动计数器页的其它统计计数器的每个的当前值;以及由所述nic将所述生成的通知消息传送到所述软件消耗器。

示例2包括示例1所述的主题,并且其中,将所述生成的通知消息传送到所述软件消耗器包括:将所述生成的通知消息传送到与所述软件消耗器关联的消耗器控制队列。

示例3包括示例1和2的任何一个的所述主题,并且其中,生成所述通知消息包括:捕获生成所述通知消息的时间并将报头附连到所述通知消息,并且其中,所述报头包括所述捕获的时间。

示例4包括示例1-3的任何一个的所述主题,并且其中,生成所述通知消息包括:将报头附连到所述通知消息,其中,所述报头包括所述通知消息中包括的所述活动计数器页的统计计数器的总数量的指示符。

示例5包括示例1-4的任何一个的所述主题,并且其中,确定是否已检测到所述通知触发事件包括:检测由所述nic管理的定时器是否已到期。

示例6包括示例1-5的任何一个的所述主题,并且其中,确定是否已检测到所述通知触发事件包括:检测是否已从所述软件消耗器接收到转储清除请求。

示例7包括示例1-6的任何一个的所述主题,并且其中,确定是否已检测到所述通知触发事件包括:检测所述多个统计计数器中的任何一个的值是否已超过阈值。

示例8包括示例1-7的任何一个的所述主题,并且其中,确定是否已检测到所述通知触发事件包括:检测所述多个统计计数器的任何一个的值是否已增长预定值。

示例9包括示例1-8的任何一个的所述主题,并且其中,所述多个指令还使所述计算装置:由所述nic并且响应于所述查找操作未返回匹配的计数器标识符,而将新计数器添加到所述活动计数器页;由所述nic在新计数器存储器地址分配新统计计数器;由所述nic将所述新统计计数器的值设置为零;以及由所述nic将所述新统计计数器的标识符和所述新计数器存储器地址写入到所述活动计数器页的空计数器标识符条目。

示例10包括示例1-9的任何一个的所述主题,并且其中,所述多个指令还使所述计算装置通过所述nic确定与所述接收到的网络分组关联的分组流,并且其中,识别所述统计计数器和所述软件消耗器包括基于所述确定的分组流识别所述统计计数器和所述软件消耗器。

示例11包括示例1-10的任何一个的所述主题,并且其中,所述多个指令还使所述计算装置通过所述nic对所述识别的活动计数器页中的所述识别的统计计数器执行查找操作,以检索与所述识别的统计计数器关联的计数器存储器地址,并且其中读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的所述值包括:在所述查找操作已返回所述匹配的计数器标识符条目之后读取在由所述查找操作返回的匹配计数器标识符条目的所述统计计数器的所述值。

示例12包括一种用于管理网络统计计数器的方法,所述方法包括:由计算装置的网络接口控制器(nic)基于接收到的网络分组识别多个统计计数器的统计计数器和软件消耗器,其中所述软件消耗器当前正在所述计算装置上执行;由所述nic根据所述识别的软件消耗器来识别活动计数器页,其中所述活动计数器页包括多个计数器标识符条目,并且其中所述多个计数器标识符条目的每个包括所述统计计数器的计数器标识符和所述统计计数器的计数器存储器地址;由所述nic读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的值;由所述nic递增所述统计计数器的所述读取值;由所述nic将所述统计计数器的所述递增值写回到所述计数器存储器地址;由所述nic确定是否已检测到通知触发事件;由所述nic并且响应于已检测到所述通知触发事件而生成通知消息,其中所述通知消息的主体包括所述统计计数器的当前值和所述活动计数器页的其它统计计数器的每个的当前值;以及由所述nic将所述生成的通知消息传送到所述软件消耗器。

示例13包括示例12所述的主题,并且其中将所述生成的通知消息传送到所述软件消耗器包括将所述生成的通知消息传送到与所述软件消耗器关联的消耗器控制队列。

示例14包括示例12和13的任何一个所述的主题,并且其中,生成所述通知消息包括:捕获生成所述通知消息的时间并将报头附连到所述通知消息,并且其中所述报头包括所述捕获的时间。

示例15包括示例12-14的任何一个所述的主题,并且其中,生成所述通知消息包括:将报头附连到所述通知消息,并且其中,所述报头包括所述通知消息中包括的所述活动计数器页的统计计数器总数量的指示符。

示例16包括示例12-15的任何一个所述的主题,并且其中,确定是否已检测到所述通知触发事件包括:检测由所述nic管理的定时器是否已到期。

示例17包括示例12-16的任何一个所述的主题,并且其中,确定是否已检测到所述通知触发事件包括:检测是否已从所述软件消耗器接收到转储清除请求。

示例18包括示例12-17的任何一个所述的主题,并且其中,确定是否已检测到所述通知触发事件包括:检测所述多个统计计数器的任何一个的值是否已超过阈值。

示例19包括示例12-18的任何一个所述的主题,并且其中,确定是否已检测到所述通知触发事件包括:检测所述多个统计计数器的任何一个的值是否已增长预定值。

示例20包括示例12-19的任何一个所述的主题,并且还包括:由所述nic并且响应于所述查找操作未返回匹配的计数器标识符,将新计数器添加到所述活动计数器页;由所述nic在新计数器存储器地址分配新统计计数器;由所述nic将所述新统计计数器的值设置为零;以及由所述nic将所述新统计计数器的标识符和所述新计数器存储器地址写入到所述活动计数器页的空计数器标识符条目。

示例21包括示例12-20的任何一个所述的主题,并且还包括通过所述nic确定与所述接收到的网络分组关联的分组流,并且其中,识别所述统计计数器和所述软件消耗器包括基于所述确定的分组流来识别所述统计计数器和所述软件消耗器。

示例22包括示例12-21的任何一个所述的主题,并且还包括:通过所述nic对所述识别的活动计数器页中的所述识别的统计计数器执行查找操作以检索与所述识别的统计计数器关联的计数器存储器地址,并且其中,读取存储在所述对应的计数器标识符条目的所述计数器存储器地址的所述统计计数器的所述值包括:在所述查找操作已返回所述匹配计数器标识符条目之后读取在由所述查找操作返回的匹配计数器标识符条目的所述统计计数器的所述值。

示例23包括计算装置的网络接口控制器(nic)的一个或多个机器可读存储媒体,所述计算装置存储在所述机器可读存储媒体上的多个指令,所述指令当被执行时使所述nic执行示例12-22的任何一个所述的方法。

示例24包括一种用于管理网络统计计数器的计算装置,所述计算装置包括一个或多个处理器;并且网络接口控制器(nic)具有存储在其中的多个指令,所述指令当由所述nic执行时使所述计算装置执行示例12-22的任何一个所述的方法。

示例25包括一种用于管理网络统计计数器的计算装置,所述计算装置包括:用于由计算装置的网络接口控制器(nic)基于接收到的网络分组识别多个统计计数器的统计计数器和软件消耗器的部件,其中所述软件消耗器当前正在所述计算装置上执行;用于由所述nic根据所述识别的软件消耗器来识别活动计数器页的部件,其中所述活动计数器页包括多个计数器标识符条目,并且其中所述多个计数器标识符条目的每个包括所述统计计数器的计数器标识符和所述统计计数器的计数器存储器地址;用于由所述nic读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的值的部件;用于由所述nic递增所述统计计数器的所述读取值的部件;用于由所述nic将所述统计计数器的所述递增值写回到所述计数器存储器地址的部件;用于由所述nic确定是否已检测到通知触发事件的部件;用于由所述nic并且响应于已检测到所述通知触发事件而生成通知消息的部件,其中所述通知消息的主体包括所述统计计数器的当前值和所述活动计数器页的其它统计计数器的每个的当前值;以及用于由所述nic将所述生成的通知消息传送到所述软件消耗器的部件。

示例26包括示例25所述的主题,其中用于将所述生成的通知消息传送到所述软件消耗器的所述部件包括用于将所述生成的通知消息传送到与所述软件消耗器关联的消耗器控制队列的部件。

示例27包括示例25和26的任何一个所述的主题,并且其中,用于生成所述通知消息的部件包括:用于捕获生成所述通知消息的时间并将报头附连到所述通知消息的部件,并且其中所述报头包括所述捕获的时间。

示例28包括示例25-27的任何一个所述的主题,并且其中,用于生成所述通知消息的所述部件包括:用于将报头附连到所述通知消息的部件,并且其中,所述报头包括所述通知消息中包括的所述活动计数器页的统计计数器总数量的指示符。

示例29包括示例25-28的任何一个所述的主题,并且其中,用于确定是否已检测到所述通知触发事件的所述部件包括:用于检测由所述nic管理的定时器是否已到期的部件。

示例30包括示例25-29的任何一个所述的主题,并且其中,用于确定是否已检测到所述通知触发事件的所述部件包括:用于检测是否已从所述软件消耗器接收到转储清除请求的部件。

示例31包括示例25-30的任何一个所述的主题,并且其中,用于确定是否已检测到所述通知触发事件的部件包括:用于检测所述多个统计计数器的任何一个的值是否已超过阈值的部件。

示例32包括示例25-31的任何一个所述的主题,并且其中,用于确定是否已检测到所述通知触发事件的部件包括:用于检测所述多个统计计数器的任何一个的值是否已增长预定值的部件。

示例33包括示例25-32的任何一个所述的主题,并且还包括:用于由所述nic并且响应于所述查找操作未返回匹配的计数器标识符,将新计数器添加到所述活动计数器页的部件;用于由所述nic在新计数器存储器地址分配新统计计数器的部件;用于由所述nic将所述新统计计数器的值设置为零的部件;以及用于由所述nic将所述新统计计数器的标识符和所述新计数器存储器地址写入到所述活动计数器页的空计数器标识符条目的部件。

示例34包括示例25-33的任何一个所述的主题,并且还包括用于由所述nic确定与所述接收到的网络分组关联的分组流的部件,并且其中用于识别所述统计计数器和所述软件消耗器的部件包括基于所述确定的分组流来识别所述统计计数器和所述软件消耗器。

示例35包括示例25-34的任何一个所述的主题,还包括用于由所述nic对所述识别的活动计数器页中的所述识别的统计计数器执行查找操作,以检索与所述识别的统计计数器关联的计数器存储器地址的部件,并且其中用于读取存储在对应计数器标识符条目的所述计数器存储器地址的所述统计计数器的所述值的部件包括在所述查找操作已返回所述匹配计数器标识符条目之后读取在由所述查找操作返回的匹配计数器标识符条目的所述统计计数器的所述值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1