掌桥专利:专业的专利平台
掌桥专利
首页

网络设备功耗的处理方法及装置

文献发布时间:2024-04-18 19:58:53


网络设备功耗的处理方法及装置

技术领域

本申请涉及通信技术领域,尤其涉及一种网络设备功耗的处理方法及装置。

背景技术

目前,网络设备已经广泛应用于各行各业,其主要用于实现各种骨干网络内、骨干网间以及骨干网络与互联网间的交互通信。随着视频、图像、即时通信等新应用的普及,扩大了对网络设备业务带宽的需求,并且对网络设备低功耗、高可靠也提出了更高的要求。

在此基础上,应用更低的成本、更短的产品开发周期,并能够提供多样的网络单元与丰富的功能,成为网络设备新的产业趋势。例如,网络设备内的数据平面开发数据包(英文:data plane development kit,简称:DPDK)功能。

DPDK摒弃中断而采用轮询(polling)方式接收数据报文。实现过程主要为:通过DPDK的网卡驱动将接收的数据报文分配至对应的接收队列(接收队列预先分配内存)中;应用层通过轮询接收队列以获取数据报文,并对数据报文进行处理;然后,通过DPDK的网卡驱动将待转发的数据报文向下一跳网络设备发送。DPDK有效节省CPU响应中断以及内存拷贝的时间,提升了网络设备处理报文的效率。

通常情况,网络设备采用多核多队列方式收发以及处理报文。网络设备内包括多个计算单元,每个计算单元轮询自身对应的接收队列。计算单元彼此之间资源独立,避免了不同计算单元资源共享访问冲突问题。

但是,鉴于网络设备处于不同的使用场景以及业务量的实时访问差异,每个计算单元轮询接收队列过程中,均按照自身最大处理能力轮询对应的接收队列并进行数据报文的处理。当网络设备内存在较多的计算单元时,将导致网络设备整机功耗较大。

发明内容

有鉴于此,本申请提供了一种网络设备功耗的处理方法及装置,用以解决现有计算单元轮询接收队列过程中,均按照自身最大处理能力轮询对应的接收队列并进行数据报文的处理,导致网络设备整机功耗较大的问题。

第一方面,本申请提供了一种网络设备功耗的处理方法,所述方法应用于网络设备,所述网络设备内包括多个计算单元,每个计算单元与一个工作队列对应,所述方法包括:

获取所述多个计算单元中每个计算单元的状态属性信息,所述状态属性信息包括所述计算单元的当前状态以及报文已处理个数;

根据每个计算单元的当前状态以及报文已处理个数,计算所述多个计算单元的整体使用率;

识别所述整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系;

根据识别结果,对所述当前状态为工作的计算单元的数量或者所述当前状态为空闲的计算单元的数量进行调度处理。

第二方面,本申请提供了一种网络设备功耗的处理装置,所述装置应用于网络设备,所述网络设备内包括多个计算单元,每个计算单元与一个工作队列对应,所述装置包括:

获取单元,用于获取所述多个计算单元中每个计算单元的状态属性信息,所述状态属性信息包括所述计算单元的当前状态以及报文已处理个数;

计算单元,用于根据每个计算单元的当前状态以及报文已处理个数,计算所述多个计算单元的整体使用率;

识别单元,用于识别所述整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系;

调度单元,用于根据识别结果,对所述当前状态为工作的计算单元的数量或者所述当前状态为空闲的计算单元的数量进行调度处理。

第三方面,本申请提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本申请第一方面所提供的方法。

因此,应用本申请提供的网络设备功耗的处理方法及装置,网络设备获取多个计算单元中每个计算单元的状态属性信息,该状态属性信息包括计算单元的当前状态以及报文已处理个数;根据每个计算单元的当前状态以及报文已处理个数,网络设备计算多个计算单元的整体使用率;网络设备识别整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系;根据识别结果,网络设备对当前状态为工作的计算单元的数量或者当前状态为空闲的计算单元的数量进行调度处理。

如此,根据多个计算单元的整体使用率与第一使用阈值、第二使用阈值之间的大小关系,对工作、空闲的计算单元的数量进行动态调度。在保障数据报文处理可靠性以及处理效率的同时,有效降低网络设备整机功耗。解决了现有计算单元轮询接收队列过程中,仍按照自身最大处理能力轮询对应的接收队列并进行数据报文的处理,造成网络设备整机功耗较大的问题。

附图说明

图1为本申请实施例提供的网络设备功耗的处理方法的流程图;

图2为本申请实施例提供的网络设备调度计算单元内部结构图;

图3为本申请实施例提供的网络设备功耗的处理装置结构图;

图4为本申请实施例提供的网络设备硬件结构体。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本申请相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面对本申请实施例提供的网络设备功耗的处理方法进行详细地说明。参见图1,图1为本申请实施例提供的网络设备功耗的处理方法的流程图。该方法应用于网络设备,本申请实施例提供的网络设备功耗的处理方法可包括如下所示步骤。

步骤110、获取所述多个计算单元中每个计算单元的状态属性信息,所述状态属性信息包括所述计算单元的当前状态以及报文已处理个数;

具体地,网络设备内包括多个计算单元,每个计算单元具有一个对应的工作队列。计算单元可具体为具有对数据报文进行处理功能的模块,其包括CPU、外围电路、内存、寄存器等等。

工作队列也可称之为收发队列,用于对待处理/待发送的数据报文进行缓存。工作队列内按优先级别划分为高优工作子队列以及普通工作子队列。其中,高优工作子队列内可存储报文优先级别高的数据报文,普通工作子队列内可同时存储报文优先级别低的数据报文以及报文优先级别高的数据报文。

对工作队列按优先级别划分可优先使优先级别高的数据报文进行传输,以对高优业务进行保证。

网络设备获取自身多个计算单元中每个计算单元的状态属性信息,该状态属性信息包括计算单元的当前状态、报文已处理个数以及标识(计算单元的自身标识,例如,计算单元1、计算单元2、计算单元3等等)。其中,计算单元的当前状态可具体为工作或者空闲。计算单元的报文已处理(收发处理)个数也可称之为报文转发带宽,其用于统计计算对报文的处理情况,计算单元可通过寄存器对已处理报文的个数进行统计,同时,还可统计每个已处理报文的大小。

可选地,在执行步骤110之前,网络设备周期性探测每个计算单元对应的工作队列中是否存在待处理的业务报文;若存在,则网络设备确定计算单元的当前状态为工作;若未存在,则网络设备确定计算单元的当前状态为空闲。

可选地,在执行步骤110之后,网络设备利用报文已处理个数,还可计算出计算单元的当前使用率。当前使用率也可称之为当前带宽使用率,其用于表征计算单元当前的使用情况,即计算单元报文已处理个数与该计算单元最大处理能力的占比。

其中,计算单元最大处理能力也就是计算单元预配置的处理业务报文个数的最大值,该最大值在计算单元出厂时就已配置,例如,5G。计算单元的当前报文处理个数,例如,2G,则两者的商即为该计算单元的当前使用率。

例如,计算单元1的当前状态为工作,当前使用率为80%;计算单元2的当前状态为工作,当前使用率为40%;计算单元3的当前状态为工作,当前使用率为50%;计算单元4的当前状态为空闲,当前使用率为0%;计算单元5的当前状态为工作,当前使用率为20%等等。

步骤120、根据每个计算单元的当前状态以及报文已处理个数,计算所述多个计算单元的整体使用率;

具体地,根据步骤110的描述,网络设备获取到每个计算单元的当前状态以及报文已处理个数后,计算多个计算单元的整体使用率。上述多个计算单元也即是网络设备包括的全部计算单元。

网络设备可通过下式(1)计算整体使用率。

整体使用率=多个计算单元的当前报文处理个数和值/网络设备最大处理能力式(1)

其中,网络设备最大处理能力也就是网络设备的最大转发能力,该最大转发能力在网络设备出厂时就已配置。

可以理解的是,由于空闲的计算单元的当前报文处理个数为0,因此,在计算多个计算单元的当前报文处理个数和值时,网络设备可只选择当前状态为工作状态的计算单元的当前报文处理个数进行和运算,也可同时选择当前状态为工作状态的计算单元的当前报文处理个数与当前状态为空闲状态的计算单元的当前报文个数一起进行和运算。

步骤130、识别所述整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系;

具体地,根据步骤120的描述,网络设备计算出整体使用率后,识别整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系。

其中,第一使用阈值可具体为20%;第二使用阈值可具体为80%。当然,第一使用阈值、第二使用阈值也可以根据实际情况进行调整。例如,第一使用阈值可具体为20%;第二使用阈值可具体为70%等等。

步骤140、根据识别结果,对所述当前状态为工作的计算单元的数量或者所述当前状态为空闲的计算单元的数量进行调度处理。

具体地,根据步骤130的描述,网络设备在对整体使用率与第一使用阈值、第二用阈值之间的大小关系进行识别后,根据识别结果,网络设备对当前状态为工作的计算单元的数量或者当前状态为空闲的计算单元的数量进行调度处理。

可选地,在一种实现情况下,若整体使用率大于第一使用阈值且小于第二使用阈值,即整体使用率处于(20%,80%)区间内,则网络设备保持当前状态为工作的计算单元的数量以及当前状态为空闲的计算单元的数量不变。也即是,网络设备不对每种当前状态的计算单元的数量进行调度处理。

网络设备对当前使用率不小于第二使用阈值的计算单元设置阻塞标记,并对当前状态为工作的计算单元的哈希标记进行重分配,以使得接收到数据报文后,根据数据报文包括的五元组信息计算的哈希值,网络设备将数据报文映射至具有对应哈希标记且当前使用率小于第二使用阈值的计算单元。

网络设备更新本地记录的报文选择计算单元表,该报文选择计算单元表包括与每个计算单元对应的表项,每个表项包括计算单元的哈希标记、当前状态、当前使用率、阻塞标记以及标识。

上述阻塞标记用于表示该计算单元存在阻塞风险。上述对当前状态为工作的计算单元的哈希标记进行重分配具体过程为:网络设备可根据当前使用率对工作的计算单元进行从小到大的排序,并按序为计算单元分配哈希标记。例如,0、1、2、3等等。该哈希标记与通过五元组信息计算的哈希值具有一一对应的映射关系。例如,哈希标记0与哈希值XXXXXXXX对应;哈希标记1与哈希值YYYYYYYY对应等等。

网络设备为当前使用率低的计算单元分配更小的哈希标记,为当前使用率高的,尤其是当前使用率不小于第二使用阈值的计算单元分配更大的哈希标记,以使得在根据哈希值映射计算单元的过程中,优先命中当前使用率低的计算单元,避免命中当前使用率不小于第二使用阈值的计算单元。

上述报文选择计算单元表具体用于存储每个计算单元的相关属性。可以理解的是,每当网络设备在调度周期内计算新的当前使用率、调度计算单元的工作状态、更新哈希标记、更新阻塞标记后,均会对计算单元对应的表项进行更新。

可选地,在另一种实现情况下,若整体使用率不小于第二使用阈值,即整体使用率大于等于80%,则网络设备判断多个计算单元中是否包括当前状态为空闲的计算单元。

网络设备可通过查看报文选择计算单元表来判断是否包括空闲的计算单元。若多个计算单元中存在当前状态为空闲的计算单元,则网络设备启动(或称之为唤醒)当前状态为空闲的计算单元,并对报文选择计算单元表中对应的表项更新。

上述更新可具体为更新工作状态、哈希标记、当前使用率。可以理解的是,工作状态更新为工作,哈希标记为网络设备重新分配(重新分配过程可参考前述)、当前使用率为0%。

在实际应用中,当前状态为空闲的计算单元的数量可能为多个,此时,网络设备可先随机启动一个当前状态为空闲的计算单元。然后,计算一次整体使用率,并判断整体使用率是否处于(20%,80%)区间内。若处于,则网络设备停止启动一个当前状态为空闲的计算单元;若未处于且大于等于80%,则网络设备可再次随机启动一个当前状态为空闲的计算单元,并重复计算一次整体使用率,并判断整体使用率是否处于(20%,80%)区间内的过程,直至整体使用率处于(20%,80%)区间内停止,或者,多个计算单元中未存在当前状态为空闲的计算单元时停止。

若多个计算单元中未存在当前状态为空闲的计算单元,则网络设备当接收到数据报文后,根据数据报文包括的五元组信息,将数据报文映射至与五元组信息对应的计算单元,并由计算单元根据数据报文的优先级,将数据报文再次映射至工作队列中与优先级匹配的工作子队列内。此时,尽管整体使用率大于等于80%,但通过将数据报文按照优先级分配至不同的工作子队列内,可优先保障对高优业务报文的处理。

上述网络设备启动(或称之为唤醒)当前状态为空闲的计算单元具体是指:将之前已分配给计算单元的软硬件资源进行恢复的过程。

可选地,在另一种实现情况下,若整体使用率不大于第一使用阈值,即整体使用率小于等于20%,则网络设备将当前使用率为最小的计算单元关闭(或称之为休眠),并对报文选择计算单元表中对应的表项更新。

网络设备可根据当前使用率对工作的计算单元进行从小到大的排序,并按序将当前使用率为最小的计算单元关闭。

在实际应用中,网络设备关闭当前使用率为最小的计算单元之前,还将探测当前使用率为最小的计算单元对应的工作队列中包括的数据报文是否均已处理完毕。在数据报文均已处理完毕后,网络设备将当前使用率为最小的计算单元关闭,然后,更新对应的报文选择计算单元表项。上述更新对应的报文选择计算单元表项具体是指:对表项中包括的计算单元的当前状态、当前使用率进行更新。

例如,将工作状态的计算单元关闭后,网络设备确定该计算单元对应的工作队列中包括的数据报文均已处理完毕。网络设备根据该计算单元的标识,从报文选择计算单元表获取与计算单元的标识对应的表项。网络设备将该表项中的当前状态设置为空闲并将当前使用率设置为0%。

因此,应用本申请提供的网络设备功耗的处理方法,网络设备获取多个计算单元中每个计算单元的状态属性信息,该状态属性信息包括计算单元的当前状态以及报文已处理个数;根据每个计算单元的当前状态以及报文已处理个数,网络设备计算多个计算单元的整体使用率;网络设备识别整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系;根据识别结果,网络设备对当前状态为工作的计算单元的数量或者当前状态为空闲的计算单元的数量进行调度处理。

如此,根据多个计算单元的整体使用率与第一使用阈值、第二使用阈值之间的大小关系,对工作、空闲的计算单元的数量进行动态调度。在保障数据报文处理可靠性以及处理效率的同时,有效降低网络设备整机功耗。解决了现有计算单元轮询接收队列过程中,仍按照自身最大处理能力轮询对应的接收队列并进行数据报文的处理,造成网络设备整机功耗较大的问题。

下面对本申请实施例提供的网络设备功耗的处理方法进行详细地说明。参见图2,图2为本申请实施例提供的网络设备调度计算单元内部结构图。在图2中,网络设备内包括报文收发模块、多个计算单元、与每个计算一一对应的工作队列以及调度模块。

其中,报文收发模块用于实现数据报文的发送与接收。计算单元用于对数据报文进行相应处理。调度模块用于根据多个计算单元的整体使用率,对计算单元的当前状态进行调整,以实现降低网络设备的整机功耗。报文收发模块、计算单元以及调度模块可相互进行双向通信。

根据工作状态的不同,计算单元包括工作状态的计算单元以及空闲状态的计算单元。处于工作状态的计算单元轮询工作队列以获取并处理数据报文。

计算单元可具体为具有对数据报文进行处理功能的模块,其包括CPU、外围电路、内存、寄存器等等。

工作队列也可称之为收发队列,用于对待处理/待发送的数据报文进行缓存。工作队列内按优先级别划分为高优工作子队列以及普通工作子队列。其中,高优工作子队列内可存储报文优先级别高的数据报文,普通工作子队列内可同时存储报文优先级别低的数据报文以及报文优先级别高的数据报文。

对工作队列按优先级别划分可优先使优先级别高的数据报文进行传输,以对高优业务进行保证。

调度模块包括报文调度触发模块、计算单元带宽统计模块、队列报文拥塞状态模块、报文优先级类别模块、计算单元调度管理模块以及报文选择计算单元表项。

每个计算单元周期性(在一个调度周期内)探测自身对应的工作队列中是否存在待处理的业务报文;若存在,则计算单元确定自身的当前状态为工作;若未存在,则计算单元确定自身的当前状态为空闲。同时,每个计算单元在探测自身对应的工作队列中是否存在待处理的业务报文的过程中,可通过内部寄存器对已处理报文的个数进行统计,同时,还可统计每个已处理报文的大小。

每个计算单元周期性(在一个调度周期内)向计算单元带宽统计模块上报自身的状态属性信息,该状态属性信息包括自身的当前状态、报文已处理个数以及标识(计算单元的自身标识,例如,计算单元1、计算单元2、计算单元3等等)。

需要说明的是,计算单元带宽统计模块也可周期性探测每个计算单元对应的工作队列中是否存在待处理的业务报文;若存在,则计算单元带宽统计模块确定计算单元的当前状态为工作;若未存在,则计算单元带宽统计模块确定计算单元的当前状态为空闲。此时,每个计算单元周期性向计算单元带宽统计模块上报自身的状态属性信息包括报文已处理个数以及标识。

计算单元带宽统计模块获取到每个计算单元报文已处理个数后,还从内存中获取每个计算单元在出厂时配置的处理业务报文个数的最大值。计算单元带宽统计模块计算出每个计算单元的当前使用率。当前使用率也可称之为当前带宽使用率,其用于表征计算单元当前的使用情况,即计算单元报文已处理个数与该计算单元最大处理能力的占比。

若计算单元当前状态为空闲,则该计算单元实时处理报文个数为0,其当前使用率为0。

需要说明的是,报文收发模块对数据报文的收发、上送计算单元的过程不受调度模块对计算单元调度的影响。报文收发模块可按照本期调度周期的上一个调度周期的调度结果对数据报文上送计算单元进行处理。报文收发模块对数据报文的收发、上送计算单元的过程与现有上送过程相同,在此不再复述。

计算单元带宽统计模块获取到每个计算单元的当前状态以及报文已处理个数后,计算多个计算单元的整体使用率,如前式(1)。

可以理解的是,由于空闲的计算单元的当前报文处理个数为0,因此,在计算多个计算单元的当前报文处理个数和值时,网络设备可只选择当前状态为工作状态的计算单元的当前报文处理个数进行和运算,也可同时选择当前状态为工作状态的计算单元的当前报文处理个数与当前状态为空闲状态的计算单元的当前报文个数一起进行和运算。

计算单元带宽统计模块计算出每个计算单元的当前使用率、多个计算单元的整体使用率后,向计算单元调度管理模块传输每个计算单元的当前使用率、标识、多个计算单元的整体使用率。计算单元带宽统计模块还可以向队列报文拥塞状态传输每个计算单元的当前使用率以及标识。后续,队列报文拥塞状态在接收到计算单元调度管理模块发送的打标指令后,为对应的计算单元设置拥塞标记。

计算单元调度管理模块获取到每个计算单元的当前使用率、标识、多个计算单元的整体使用率后,识别整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系。其中,第一使用阈值可具体为20%;第二使用阈值可具体为80%。

计算单元调度管理模块在对整体使用率与第一使用阈值、第二用阈值之间的大小关系进行识别后,根据识别结果,计算单元调度管理模块对当前状态为工作的计算单元的数量或者当前状态为空闲的计算单元的数量进行调度处理

在一种实现情况下,若整体使用率大于20%且80%,则计算单元调度管理模块保持当前状态为工作的计算单元的数量以及当前状态为空闲的计算单元的数量不变。也即是,计算单元调度管理模块不对每种当前状态的计算单元的数量进行调度处理。

计算单元调度管理模块生成并向队列报文拥塞状态模块发送第一通知消息,已告知队列报文拥塞状态模块对当前使用率不小于80%的计算单元设置阻塞标记。上述阻塞标记用于表示该计算单元存在阻塞风险。

计算单元调度管理模块还对当前状态为工作的计算单元的哈希标记进行重分配,以使得报文收发模块接收到数据报文后,根据数据报文包括的五元组信息计算的哈希值,报文收发模块将数据报文映射至具有对应哈希标记且当前使用率小于20%的计算单元。

上述对当前状态为工作的计算单元的哈希标记进行重分配具体过程为:计算单元调度管理模块可根据当前使用率对工作的计算单元进行从小到大的排序,并按序为计算单元分配哈希标记。例如,0、1、2、3等等。该哈希标记与通过五元组信息计算的哈希值具有一一对应的映射关系。例如,哈希标记0与哈希值XXXXXXXX对应;哈希标记1与哈希值YYYYYYYY对应等等。

计算单元调度管理模块为当前使用率低的计算单元分配更小的哈希标记,为当前使用率高的,尤其是当前使用率不小于80%的计算单元分配更大的哈希标记,以使得在根据哈希值映射计算单元的过程中,优先命中当前使用率低的计算单元,避免命中当前使用率不小于80%的计算单元。

计算单元调度管理模块可生成并向报文调度触发模块发送第二通知消息,报文调度触发模块向报文收发模块发送第二通知消息,以告知报文收发模块本期调度结果中当前状态为工作的计算单元的数量、当前状态为工作的计算单元的哈希标记、当前状态为工作的计算单元的阻塞标记(存在阻塞风险的计算单元具有标记,未存在阻塞风险的计算单元不具有标记)以及标识。

计算单元调度管理模块更新报文选择计算单元表,该报文选择计算单元表包括与每个计算单元对应的表项,每个表项包括计算单元的哈希标记、当前状态、当前使用率、阻塞标记以及标识。

可以理解的是,每当网络设备在调度周期内计算新的当前使用率、调度计算单元的工作状态、更新哈希标记、更新阻塞标记后,均会对计算单元对应的表项进行更新。

在另一种实现情况下,若整体使用率不小于80%,即整体使用率大于等于80%,则计算单元调度管理模块判断多个计算单元中是否包括当前状态为空闲的计算单元。

计算单元调度管理模块可通过查看报文选择计算单元表来判断是否包括空闲的计算单元。若多个计算单元中存在当前状态为空闲的计算单元,则计算单元调度管理模块启动(或称之为唤醒)当前状态为空闲的计算单元,并对报文选择计算单元表中对应的表项更新。

上述更新可具体为更新工作状态、哈希标记、当前使用率。可以理解的是,工作状态更新为工作,哈希标记为网络设备重新分配(重新分配过程可参考前述)、当前使用率为0%。

在实际应用中,当前状态为空闲的计算单元的数量可能为多个,此时,计算单元调度管理模块可先随机启动一个当前状态为空闲的计算单元。然后,计算一次整体使用率,并判断整体使用率是否处于(20%,80%)区间内。若处于,则计算单元调度管理模块停止启动一个当前状态为空闲的计算单元;若未处于且大于等于80%,则计算单元调度管理模块可再次随机启动一个当前状态为空闲的计算单元,并重复计算一次整体使用率,并判断整体使用率是否处于(20%,80%)区间内的过程,直至整体使用率处于(20%,80%)区间内停止,或者,多个计算单元中未存在当前状态为空闲的计算单元时停止。

计算单元调度管理模块可生成并向报文调度触发模块发送第三通知消息,报文调度触发模块向报文收发模块发送第三通知消息,以告知报文收发模块本期调度结果中当前状态为工作的计算单元的数量、当前状态为工作的计算单元的哈希标记、当前状态为工作的计算单元的阻塞标记以及标识。

若多个计算单元中未存在当前状态为空闲的计算单元,则计算单元调度管理模块生成并向报文优先级类别模块发送第四通知消息,以告知报文优先级类别模块生成报文映射策略,并向报文调度触发模块发送报文映射策略,报文调度触发模块向报文收发模块发送报文映射策略。

在多个计算单元中未存在当前状态为空闲的计算单元,且整体使用率大于等于80%的场景下,报文优先级别模块生成的报文映射策略为:当接收到数据报文后,根据数据报文包括的五元组信息,将数据报文映射至与五元组信息对应的计算单元,并由计算单元根据数据报文的优先级,将数据报文再次映射至工作队列中与优先级匹配的工作子队列内。此时,尽管整体使用率大于等于80%,但通过将数据报文按照优先级分配至不同的工作子队列内,可优先保障对高优业务报文的处理。

可以理解的是,报文优先级类别模块可先向计算单元调度管理模块发送报文映射策略,由计算单元调度管理模块将报文映射策略携带在第三通知消息中,再通过报文调度触发模块发送至报文收发模块。

在另一种实现情况下,若整体使用率不大于20%,即整体使用率小于等于20%,则计算单元调度管理模块将当前使用率为最小的计算单元关闭(或称之为休眠),并对报文选择计算单元表中对应的表项更新。

计算单元调度管理模块可根据当前使用率对工作的计算单元进行从小到大的排序,并按序将当前使用率为最小的计算单元关闭。

在实际应用中,计算单元调度管理模块关闭当前使用率为最小的计算单元之前,还通过计算单元带宽统计模块探测当前使用率为最小的计算单元对应的工作队列中包括的数据报文是否均已处理完毕。在数据报文均已处理完毕后,计算单元调度管理模块将当前使用率为最小的计算单元关闭,然后,更新对应的报文选择计算单元表项。上述更新对应的报文选择计算单元表项具体是指:对表项中包括的计算单元的当前状态、当前使用率进行更新。

例如,将工作状态的计算单元关闭后,计算单元调度管理模块确定该计算单元对应的工作队列中包括的数据报文均已处理完毕。计算单元调度管理模块根据该计算单元的标识,从报文选择计算单元表获取与计算单元的标识对应的表项。计算单元调度管理模块将该表项中的当前状态设置为空闲并将当前使用率设置为0%。

计算单元调度管理模块可生成并向报文调度触发模块发送第五通知消息,报文调度触发模块向报文收发模块发送第五通知消息,以告知报文收发模块本期调度结果中当前状态为工作的计算单元的数量、当前状态为工作的计算单元的哈希标记、当前状态为工作的计算单元的阻塞标记以及标识。

至此,完成一个调度周期内的计算单元的调度。

基于同一发明构思,本申请实施例还提供了网络设备功耗的处理方法对应的网络设备功耗的处理装置。参见图3,图3为本申请实施例提供的网络设备功耗的处理装置,所述装置应用于所述装置应用于网络设备,所述网络设备内包括多个计算单元,每个计算单元与一个工作队列对应,所述装置包括:

获取单元310,用于获取所述多个计算单元中每个计算单元的状态属性信息,所述状态属性信息包括所述计算单元的当前状态以及报文已处理个数;

计算单元320,用于根据每个计算单元的当前状态以及报文已处理个数,计算所述多个计算单元的整体使用率;

识别单元330,用于识别所述整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系;

调度单元340,用于根据识别结果,对所述当前状态为工作的计算单元的数量或者所述当前状态为空闲的计算单元的数量进行调度处理。

可选地,所述装置还包括:

探测单元(图中未示出),用于周期性探测所述每个计算单元对应的工作队列中是否存在待处理的业务报文;

确定单元(图中未示出),用于若存在,则确定所述计算单元的当前状态为工作;若未存在,则确定所述计算单元的当前状态为空闲;

所述获取单元310还用于,获取所述每个计算单元预配置的处理业务报文个数的最大值;

所述计算单元320还用于,根据所述报文已处理个数以及所述处理业务报文个数的最大值,计算所述每个计算单元的当前使用率。

可选地,所述调度单元340还具体用于,若所述整体使用率大于所述第一使用阈值且小于所述第二使用阈值,则保持所述当前状态为工作的计算单元的数量以及所述当前状态为空闲的计算单元的数量不变;

对所述当前使用率不小于所述第二使用阈值的计算单元设置阻塞标记,并对所述当前状态为工作的计算单元的哈希标记进行重分配,以使得接收到数据报文后,根据所述数据报文包括的五元组信息计算的哈希值,将数据报文映射至具有对应哈希标记且所述当前使用率小于所述第二使用阈值的计算单元;

更新本地记录的报文选择计算单元表,所述报文选择计算单元表包括与所述每个计算单元对应的表项,所述表项包括所述计算单元的哈希标记、当前状态、当前使用率、阻塞标记以及标识。

可选地,所述调度单元340还具体用于,若所述整体使用率不小于所述第二使用阈值,则判断所述多个计算单元中是否包括所述当前状态为空闲的计算单元;

若存在,则启动所述当前状态为空闲的计算单元,并对所述报文选择计算单元表中对应的表项更新;

若未存在,则当接收到所述数据报文后,根据所述数据报文包括的五元组信息,将所述数据报文映射至与所述五元组信息对应的计算单元,并由所述计算单元根据所述数据报文的优先级,将所述数据报文再次映射至工作队列中与所述优先级匹配的工作子队列内。

可选地,所述调度单元340还具体用于,若所述整体使用率不大于所述第一使用阈值,则将所述当前使用率为最小的计算单元关闭,并对所述报文选择计算单元表中对应的表项更新。

因此,应用本申请提供的网络设备功耗的处理装置,网络设备获取多个计算单元中每个计算单元的状态属性信息,该状态属性信息包括计算单元的当前状态以及报文已处理个数;根据每个计算单元的当前状态以及报文已处理个数,网络设备计算多个计算单元的整体使用率;网络设备识别整体使用率与预设的第一使用阈值、第二用阈值之间的大小关系;根据识别结果,网络设备对当前状态为工作的计算单元的数量或者当前状态为空闲的计算单元的数量进行调度处理。

如此,根据多个计算单元的整体使用率与第一使用阈值、第二使用阈值之间的大小关系,对工作、空闲的计算单元的数量进行动态调度。在保障数据报文处理可靠性以及处理效率的同时,有效降低网络设备整机功耗。解决了现有计算单元轮询接收队列过程中,仍按照自身最大处理能力轮询对应的接收队列并进行数据报文的处理,造成网络设备整机功耗较大的问题。

基于同一发明构思,本申请实施例还提供了一种网络设备,如图4所示,包括处理器410、收发器420和机器可读存储介质430,机器可读存储介质430存储有能够被处理器410执行的机器可执行指令,处理器410被机器可执行指令促使执行本申请实施例所提供的网络设备功耗的处理方法。前述图3所示的网络设备功耗的处理装置,可采用如图4所示的网络设备硬件结构实现。

上述计算机可读存储介质430可以包括随机存取存储器(英文:Random AccessMemory,简称:RAM),也可以包括非易失性存储器(英文:Non-volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,计算机可读存储介质430还可以是至少一个位于远离前述处理器410的存储装置。

上述处理器410可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例中,处理器410通过读取机器可读存储介质430中存储的机器可执行指令,被机器可执行指令促使能够实现处理器410自身以及调用收发器420执行前述本申请实施例描述的网络设备功耗的处理方法。

另外,本申请实施例提供了一种机器可读存储介质430,机器可读存储介质430存储有机器可执行指令,在被处理器410调用和执行时,机器可执行指令促使处理器410自身以及调用收发器420执行前述本申请实施例描述的网络设备功耗的处理方法。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

对于网络设备功耗的处理装置以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

相关技术
  • 一种报文处理方法、装置及网络设备
  • 多核处理器的故障处理方法、装置及网络设备
  • 业务处理方法、装置及网络设备
  • 启动装置、网络设备的单板及网络设备
  • 网络设备功耗优化方法、装置、网络设备和存储介质
  • 第一网络设备和终端的业务处理方法及装置、网络设备、终端
技术分类

06120116509613