CN104753711B - 调整网络设备资源配置的方法及装置 - Google Patents

调整网络设备资源配置的方法及装置 Download PDF

Info

Publication number
CN104753711B
CN104753711B CN201310751072.5A CN201310751072A CN104753711B CN 104753711 B CN104753711 B CN 104753711B CN 201310751072 A CN201310751072 A CN 201310751072A CN 104753711 B CN104753711 B CN 104753711B
Authority
CN
China
Prior art keywords
message receiving
receiving thread
operating system
count value
thread
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.)
Active
Application number
CN201310751072.5A
Other languages
English (en)
Other versions
CN104753711A (zh
Inventor
黎莉
张宏斌
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.)
Zheng Xuejing
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310751072.5A priority Critical patent/CN104753711B/zh
Publication of CN104753711A publication Critical patent/CN104753711A/zh
Application granted granted Critical
Publication of CN104753711B publication Critical patent/CN104753711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种调整网络设备资源配置的方法及装置。该方法包括:网络设备在操作系统初始化时,网络设备的操作系统内核将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,在检测周期内,操作系统内核统计所有非休眠状态的报文接收线程的空闲计数值的总和,空闲计数值是指一个非休眠状态的报文接收线程在一个检测周期内未接收到数据包的次数。最后操作系统内核根据空闲计数值的总和调整报文接收线程的工作状态。本发明实施例提供的调整网络设备资源配置的方法及装置,可根据流量大小调整网络设备资源配置的方法的数量,释放掉的CPU资源可以用于业务处理线程,提高了CPU资源的利用率。

Description

调整网络设备资源配置的方法及装置
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种调整网络设备资源配置的方法及装置。
背景技术
网络设备对报文的处理,一般分为报文接收线程、业务处理线程和报文发送线程,首先报文接收线程将报文从硬件接收过来,转交给业务处理线程处理,然后再通过报文发送线程发送出去。其中,报文接收线程是整个设备流量的入口,对实时性要求很高,通常作为单独的线程运行,而业务处理线程对报文的处理可能比较耗时,不同的业务运行在不同的业务处理线程上。由于报文接收线程和业务处理线程共享CPU资源,资源在报文接收线程和业务处理线程上的分配对设备的处理能力影响很大,若报文接收线程数量过少,会造成收包不及时,CPU就会反压到硬件设备导致丢包;若报文接收线程数量过多,占用了业务处理线程的资源,会导致业务处理不及时,未被处理的报文在CPU内部积累超过预定阈值后将被直接转发,从而导致网络设备无法对业务进行有效处理。
现有的一种为报文接收线程和业务处理线程分配CPU资源的方法如下:由于报文接收线程的实时性要求较高,在多核CPU上,将报文接收线程绑定在一部分独立的内核(core)上,以便独占一部分CPU资源,业务处理线程则分布在其余的core上,这样业务处理线程与报文接收线程互不干涉,保证报文能够及时接收。
但是,上述分配方法需要预先根据实际的业务负载状况进行试验,寻找出一个合适的报文接收和业务线程占用CPU的比例,然后固化到软件中,一旦业务负载和规格发生变化,就要重新调整。而且在CPU的core比较少的时候,报文接收线程和业务线程之间的比例就更为重要,很难找到一个合适的平衡点,即使根据经验值得到一个合适的比例,在流量很小的时候,报文接收线程仍然处于空转状态参与调度,会造成CPU资源的浪费。
发明内容
本发明实施例提供一种调整网络设备资源配置的方法及装置,以解决报文接收线程和业务处理线程之间的CPU资源占用问题,减少CPU资源的浪费。
第一方面,本发明实施例提供一种调整网络设备资源配置的方法,包括:
网络设备在操作系统初始化时,所述网络设备的操作系统内核将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,M和N均为自然数,M大于N,M与N的和是一固定值;
在检测周期内,所述操作系统内核统计所有非休眠状态的报文接收线程的空闲计数值的总和,所述空闲计数值是指一个非休眠状态的报文接收线程在一个所述检测周期内未接收到数据包的次数;
所述操作系统内核根据所述空闲计数值的总和,调整报文接收线程的工作状态。
结合第一方面,在第一方面的第一种可能的实现方式中,所述网络设备的操作系统内核将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,包括:
所述操作系统内核分别为所述M个报文接收线程中的每个报文接收线程创建对应的信号量和休眠标识,所述休眠标识用于指示报文接收线程处于休眠状态,并获取所述操作系统内核创建的信号量,陷入内核;
所述操作系统内核分别为所述N个报文接收线程中的每个报文接收线程创建信号量和非休眠标识,所述非休眠标识用于指示报文接收线程处于非休眠状态,并在有数据包到来时接收所述数据包,无数据包到来时将所述报文接收线程的空闲计数值进行加一操作。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述操作系统内核根据所述空闲计数值的总和,调整报文接收线程的工作状态,包括:
所述操作系统内核在一个处理器核心的所述检测周期内根据所述空闲计数值的总和,调整报文接收线程的工作状态。
结合第一方面、第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述检测周期为所述操作系统的一个时隙中断时间的整数倍。
结合第一方面至第一方面的第三种可能的实现方式中任一项所述的方法,在第一方面的第四种可能的实现方式中,所述操作系统内核根据所述空闲计数值的总和,调整报文接收线程的工作状态,包括:
如果所述空闲计数值的总和大于第一门限,所述操作系统内核在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理;
如果所述空闲计数值的总和小于第二门限,所述操作系统内核在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理;
将所有非休眠状态的报文接收线程的空闲计数值清零。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述操作系统内核在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理,包括:
所述操作系统内核获取所述被选择的报文接收线程的信号量,并将所述被选择的报文接收线程的非休眠标识改为休眠标识;
所述操作系统内核在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理,包括:
所述操作系统内核将所述被选择的报文接收线程的休眠标识改为非休眠标识,并将所述被选择的报文接收线程的信号量释放。
第二方面,本发明实施例提供一种调整网络设备资源配置的装置,包括:
设置模块,用于在网络设备操作系统初始化时,将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,M和N均为自然数,M大于N,M与N的和是一固定值;
统计模块,用于在检测周期内,统计所有非休眠状态的报文接收线程的空闲计数值的总和,所述空闲计数值是指一个非休眠状态的报文接收线程在一个所述检测周期内未接收到数据包的次数;
调整模块,用于根据所述统计模块得到的所述空闲计数值的总和,调整报文接收线程的工作状态。
结合第二方面,在第二方面的第一种可能的实现方式中,所述设置模块用于:
分别为所述M个报文接收线程中的每个报文接收线程创建对应的信号量和休眠标识,所述休眠标识用于指示报文接收线程处于休眠状态,并获取所述操作系统内核创建的信号量,陷入内核;
分别为所述N个报文接收线程中的每个报文接收线程创建信号量和非休眠标识,所述非休眠标识用于指示报文接收线程处于非休眠状态,并在有数据包到来时接收所述数据包,无数据包到来时将所述报文接收线程的空闲计数值进行加一操作。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述调整模块用于:
在一个处理器核心的所述检测周期内根据所述空闲计数值的总和,调整报文接收线程的工作状态。
结合第二方面、第二方面的第一种或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述检测周期为所述操作系统的一个时隙中断时间的整数倍。
结合第二方面至第二方面的第三种可能的实现方式中任一项所述的装置,在第二方面的第四种可能的实现方式中,所述调整模块用于:
如果所述空闲计数值的总和大于第一门限,在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理;
如果所述空闲计数值的总和小于第二门限,在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理;
将所有非休眠状态的报文接收线程的空闲计数值清零。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述调整模块还用于:
获取所述被选择的报文接收线程的信号量,并将所述被选择的报文接收线程的非休眠标识改为休眠标识;
所述调整模块还用于:
将所述被选择的报文接收线程的休眠标识改为非休眠标识,并将所述被选择的报文接收线程的信号量释放。
本发明实施例提供的调整网络设备资源配置的方法及装置,利用报文接收线程在一个检测周期内没有报文接收的次数反映报文接收线程的空闲程度,进而反映流量的大小,通过操作系统内核在一个检测周期内统计运行状态的报文接收线程的空闲计数值的总和,在达到休眠门限或唤醒门限时进行报文接收线程的工作状态调整,从而可根据流量大小动态调整报文接收线程的数量,释放掉的CPU资源可以用于业务处理线程,提高了CPU资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明调整网络设备资源配置的方法实施例一的流程图;
图2为本发明调整网络设备资源配置的方法实施例一中的硬件结构示意图;
图3为本发明调整网络设备资源配置的方法实施例一中报文接收线程的循环流程图;
图4为本发明调整网络设备资源配置的方法实施例一中内核处理流程的流程图;
图5为本发明调整网络设备资源配置的装置实施例一的结构示意图;
图6为本发明调整网络设备资源配置的装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明调整网络设备资源配置的方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
S101、网络设备操作系统初始化时,网络设备的操作系统内核将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,M和N均为自然数,M大于N,M与N的和是一固定值。
具体来说,S101具体为:操作系统内核根据预先设置的M和N,分别为M个报文接收线程中的每个报文接收线程创建对应的信号量和休眠标识,休眠标识用于指示报文接收线程处于休眠状态,并获取操作系统内核创建的信号量,陷入内核;操作系统内核分别为N个报文接收线程中的每个报文接收线程创建信号量和非休眠标识,非休眠标识用于指示报文接收线程处于非休眠状态,并在有数据包到来时接收数据包,无数据包到来时将报文接收线程的空闲计数值进行加一操作。例如,一个多核CPU的所有处理器核心(core)上都绑定报文接收线程,设置其中3个core上的报文接收线程处于非休眠状态,其余的core上的报文接收线程都处于休眠状态,具体设置是例如非休眠标识为“0”指示非休眠状态,休眠标识为“1”指示休眠状态,操作系统初始化时,为其中3个core上的报文接收线程创建信号量和非休眠标识为“0”,非休眠标识为“0”的报文接收线程的信号量为释放状态,为其余的core上的报文接收线程创建信号量和休眠标识为“1”,休眠标识为“1”的报文接收线程的信号量为占用状态。
每个报文接收线程在接收数据包之前,根据操作系统内核创建的休眠标识(例如为“1”)判断报文接收线程处于休眠状态时,获取操作系统内核创建的信号量,陷入内核;在判断报文接收线程处于非休眠状态(例如为“0”)时,则通过查询硬件状态进行收包处理,比如查询CPU的硬件接收队列中报文个数,在有数据包到来时接收数据包,无数据包到来时将报文接收线程的空闲计数值进行加一操作。
S102、在检测周期内,操作系统内核统计所有非休眠状态的报文接收线程的空闲计数值的总和,空闲计数值是指一个非休眠状态的报文接收线程在一个检测周期内未接收到数据包的次数。
S103、操作系统内核根据空闲计数值的总和,调整报文接收线程的工作状态。
具体来说,在多核CPU中,每个core要处理一次时隙中断,可以是操作系统内核在一个core的检测周期内根据空闲计数值的总和调整报文接收线程的工作状态。不用在每一个core的检测周期内都进行处理,这样处理效率较高。其中,检测周期例如可以为操作系统的一个时隙中断时间整数倍。
S103具体可以为:
S103a、空闲计数值的总和大于第一门限时,操作系统内核在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理。选择的依据可以是随机选择,也可以是根据core标识选择。操作系统内核对被选择的报文接收线程进行休眠处理可以为:操作系统内核获取被选择的报文接收线程的信号量,并将被选择的报文接收线程的非休眠标识改为休眠标识,例如将非休眠标识“0”置为“1”。
S103b、空闲计数值的总和小于第二门限时,操作系统内核在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理。选择的依据可以是随机选择,也可以是根据core标识选择。操作系统内核对选择的报文接收线程进行唤醒处理可以为:操作系统内核将被选择的报文接收线程的休眠标识改为非休眠标识,例如将休眠标识“1”置为“0”,并将被选择的报文接收线程的信号量释放。
其中,第一门限或第二门限可以通过实际测试得到一个合适的值。比如在一个检测周期内,将所有报文接收线程设置为全部运行状态,流量最大时统计到所有报文接收线程的空闲计数值为A,流量最小时统计到所有报文接收线程的空闲计数值为B,那么第一门限可以设置为B*80%,第二门限可以设置为2*A,具体的比例可以根据硬件的缓存能力、单个报文接收线程的处理能力以及检测周期的长短进行调整。
S103c、将所有非休眠状态的报文接收线程的空闲计数值清零。下一个检测周期重新计算。
举例说明,报文接收线程和内核之间直接共享数据,共享数据所在的内存,映射为相同的物理地址,报文接收线程运行在用户态,只能访问用户空间的虚拟内存地址,内核运行在内核态,访问的是内核空间的虚拟内存地址,休眠标识和空闲计数值需要报文接收线程和内核共享,需要按下面的方法进行物理地址映射:
报文接收线程访问休眠标识和空闲计数值虚拟内存地址为A,对应的物理内存地址(实际的内存颗粒)为C,内核访问休眠标识和空闲计数值的虚拟内存为B,对应的物理内存地址为C。
图2为本发明调整网络设备资源配置的方法实施例一中的硬件结构示意图,本实施例的方法运行在CPU上,进行报文接收线程的动态调整。
还需说明的是,在一个检测周期内,如果有流量的突发,没有新的报文接收线程被唤醒,需要硬件缓存足够缓存突发的报文,当硬件缓存有限时,可以调整处于非休眠状态(运行状态)的报文接收线程的个数,也可以调整休眠唤醒的策略,如在一个时隙中断时间唤醒多个报文接收线程。
本实施例提供的调整网络设备资源配置的方法,利用报文接收线程在一个检测周期内没有报文接收的次数反映报文接收线程的空闲程度,进而反映流量的大小,通过操作系统内核在一个检测周期内统计运行状态的报文接收线程的空闲计数值的总和,在达到休眠门限或唤醒门限时进行报文接收线程的工作状态调整,从而可根据流量大小动态调整报文接收线程的数量,释放掉的CPU资源可以用于业务处理线程,提高了CPU资源的利用率。
下面结合图3和图4来详细说明报文接收线程的循环流程以及内核的处理流程,图3为本发明调整网络设备资源配置的方法实施例一中报文接收线程的循环流程图,如图3所示,其中,休眠标识以“0”和“1”为例,包括:
S201、线程循环开始。
S202、判断休眠标识是否等于“1”。若是执行S203,若否执行S204。
S203、获取操作系统内核创建的信号量,陷入内核。
S204、通过查询硬件状态进行收包处理。
S205、有数据包到来时接收数据包。
S206、无数据包到来时将报文接收线程的空闲计数值进行加一操作。
在一个检测周期内,线程循环执行S204~S206。每执行一次,如果没有接收报文,则将计数值增1。例如一个检测周期可以执行多次循环,假设1个检测周期内,报文接收线程执行了10次循环,其中2次接收到了报文,8次未接收到报文,则该报文接收线程的空闲计数值为8。
图4为本发明调整网络设备资源配置的方法实施例一中内核处理流程的流程图,以一个检测周期为例,检测周期为一个时隙(tick)中断时间,如图4所示,包括:
S301、时隙中断时间到来时,操作系统内核统计所有非休眠状态的报文接收线程的空闲计数值的总和。
S302、判断空闲计数值的总和是否小于唤醒门限(第二门限),若小于,则执行S303,若大于则执行S304。
S303、操作系统内核在所有处于休眠状态的报文接收线程中选择一报文接收线程,对选择的报文接收线程进行唤醒处理,接着执行S306。
S304、判断空闲计数值的总和是否大于休眠门限(第一门限),若大于,则执行S305,若小于则执行S306。
S305、操作系统内核在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对选择的报文接收线程进行休眠处理。
S306、将所有非休眠状态的报文接收线程的空闲计数值清零。
图5为本发明调整网络设备资源配置的装置实施例一的结构示意图,如图5所示,本实施例的装置可以包括:设置模块11、统计模块12和调整模块13,其中,设置模块11用于在网络设备操作系统初始化时,将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,M和N均为自然数,M大于N,M与N的和是一固定值。具体地,设置模块11用于:分别为M个报文接收线程中的每个报文接收线程创建对应的信号量和休眠标识,休眠标识用于指示报文接收线程处于休眠状态,并获取操作系统内核创建的信号量,陷入内核;分别为N个报文接收线程中的每个报文接收线程创建信号量和非休眠标识,非休眠标识用于指示报文接收线程处于非休眠状态,并在有数据包到来时接收数据包,无数据包到来时将报文接收线程的空闲计数值进行加一操作。统计模块12用于在检测周期内,统计所有非休眠状态的报文接收线程的空闲计数值的总和。调整模块13用于根据统计模块12得到的空闲计数值的总和,调整报文接收线程的工作状态。
调整模块13用于在一个处理器核心的检测周期内根据空闲计数值的总和调整报文接收线程的工作状态。其中,检测周期可以为操作系统的一个时隙中断时间的整数倍。
进一步地,调整模块13用于:
空闲计数值的总和大于第一门限时,在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理;
空闲计数值的总和小于第二门限时,在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理;
将所有非休眠状态的报文接收线程的空闲计数值清零。
具体地,调整模块13还用于:获取被选择的报文接收线程的信号量,并将被选择的报文接收线程的非休眠标识改为休眠标识;
调整模块13还用于:将选择的报文接收线程的休眠标识改为非休眠标识,并将被选择的报文接收线程的信号量释放。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本实施例提供的调整网络设备资源配置的装置,利用报文接收线程在一个检测周期内没有报文接收的次数反映报文接收线程的空闲程度,进而反映流量的大小,通过操作系统内核在一个检测周期内统计运行状态的报文接收线程的空闲计数值的总和,在达到休眠门限或唤醒门限时进行报文接收线程的休眠状态调整,从而可根据流量大小动态调整报文接收线程的数量,释放掉的CPU资源可以用于业务处理线程,提高了CPU资源的利用率。
图6为本发明调整网络设备资源配置的装置实施例二的结构示意图,如图6所示,本实施例的装置可以包括:处理器21、存储器22和总线23,其中,存储器22用于存储程序代码,
处理器21用于读取存储器22存储的程序代码,执行:
在网络设备操作系统初始化时,将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,M和N均为自然数,M大于N,M与N的和是一固定值。具体地,处理器21用于:分别为M个报文接收线程中的每个报文接收线程创建对应的信号量和休眠标识,休眠标识用于指示报文接收线程处于休眠状态,并获取操作系统内核创建的信号量,陷入内核;分别为N个报文接收线程中的每个报文接收线程创建信号量和非休眠标识,非休眠标识用于指示报文接收线程处于非休眠状态,并在有数据包到来时接收数据包,无数据包到来时将报文接收线程的空闲计数值进行加一操作。在检测周期内,接收所有非休眠状态的报文接收线程的空闲计数值,并统计所有非休眠状态的报文接收线程的空闲计数值的总和。处理器21还用于根据空闲计数值的总和,调整报文接收线程的工作状态。
进一步地,处理器21用于在一个处理器核心的检测周期内根据空闲计数值的总和调整报文接收线程的工作状态。其中,检测周期可以为操作系统的一个时隙中断时间的整数倍。
进一步地,处理器21用于:
空闲计数值的总和大于第一门限时,在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理;
空闲计数值的总和小于第二门限时,在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理;
将所有非休眠状态的报文接收线程的空闲计数值清零。
具体地,处理器21还用于:获取被选择的报文接收线程的信号量,并将被选择的报文接收线程的非休眠标识改为休眠标识;
处理器21还用于:将选择的报文接收线程的休眠标识改为非休眠标识,并将被选择的报文接收线程的信号量释放。
其中,处理器21可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。这些指令可以通过其中的处理器以配合实现及控制,用于执行本发明实施例揭示的方法。上述处理器还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(application specific integrated circuit)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
其中,上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
其中,总线23除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起,在图6中将各种总线都标为总线23。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本实施例提供的调整网络设备资源配置的装置,利用报文接收线程在一个检测周期内没有报文接收的次数反映报文接收线程的空闲程度,进而反映流量的大小,通过操作系统内核在一个检测周期内统计运行状态的报文接收线程的空闲计数值的总和,在达到休眠门限或唤醒门限时进行报文接收线程的休眠状态调整,从而可根据流量大小动态调整报文接收线程的数量,释放掉的CPU资源可以用于业务处理线程,提高了CPU资源的利用率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种调整网络设备资源配置的方法,其特征在于,包括:
网络设备在操作系统初始化时,所述网络设备的操作系统内核将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,M和N均为自然数,M大于N,M与N的和是一固定值;
在检测周期内,所述操作系统内核统计所有非休眠状态的报文接收线程的空闲计数值的总和,所述空闲计数值是指一个非休眠状态的报文接收线程在一个所述检测周期内未接收到数据包的次数;
所述操作系统内核根据所述空闲计数值的总和,调整报文接收线程的工作状态;
所述网络设备的操作系统内核将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,包括:
所述操作系统内核分别为所述M个报文接收线程中的每个报文接收线程创建对应的信号量和休眠标识,所述休眠标识用于指示报文接收线程处于休眠状态,并获取所述操作系统内核创建的信号量,陷入内核;
所述操作系统内核分别为所述N个报文接收线程中的每个报文接收线程创建信号量和非休眠标识,所述非休眠标识用于指示报文接收线程处于非休眠状态,并在有数据包到来时接收所述数据包,无数据包到来时将所述报文接收线程的空闲计数值进行加一操作。
2.根据权利要求1所述的方法,其特征在于,所述操作系统内核根据所述空闲计数值的总和,调整报文接收线程的工作状态,包括:
所述操作系统内核在一个处理器核心的所述检测周期内根据所述空闲计数值的总和,调整报文接收线程的工作状态。
3.根据权利要求1所述的方法,其特征在于,所述检测周期为所述操作系统的一个时隙中断时间的整数倍。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述操作系统内核根据所述空闲计数值的总和,调整报文接收线程的工作状态,包括:
如果所述空闲计数值的总和大于第一门限,所述操作系统内核在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理;
如果所述空闲计数值的总和小于第二门限,所述操作系统内核在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理;
将所有非休眠状态的报文接收线程的空闲计数值清零。
5.根据权利要求4所述的方法,其特征在于,所述操作系统内核在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理,包括:
所述操作系统内核获取所述被选择的报文接收线程的信号量,并将所述被选择的报文接收线程的非休眠标识改为休眠标识;
所述操作系统内核在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理,包括:
所述操作系统内核将所述被选择的报文接收线程的休眠标识改为非休眠标识,并将所述被选择的报文接收线程的信号量释放。
6.一种调整网络设备资源配置的装置,其特征在于,包括:
设置模块,用于在网络设备操作系统初始化时,将M个报文接收线程的工作状态设置为休眠状态、将N个报文接收线程的工作状态设置为非休眠状态,M和N均为自然数,M大于N,M与N的和是一固定值;
统计模块,用于在检测周期内,统计所有非休眠状态的报文接收线程的空闲计数值的总和,所述空闲计数值是指一个非休眠状态的报文接收线程在一个所述检测周期内未接收到数据包的次数;
调整模块,用于根据所述统计模块得到的所述空闲计数值的总和,调整报文接收线程的工作状态;
所述设置模块用于:
分别为所述M个报文接收线程中的每个报文接收线程创建对应的信号量和休眠标识,所述休眠标识用于指示报文接收线程处于休眠状态,并获取所述操作系统内核创建的信号量,陷入内核;
分别为所述N个报文接收线程中的每个报文接收线程创建信号量和非休眠标识,所述非休眠标识用于指示报文接收线程处于非休眠状态,并在有数据包到来时接收所述数据包,无数据包到来时将所述报文接收线程的空闲计数值进行加一操作。
7.根据权利要求6所述的装置,其特征在于,所述调整模块用于:
在一个处理器核心的所述检测周期内根据所述空闲计数值的总和,调整报文接收线程的工作状态。
8.根据权利要求6所述的装置,其特征在于,所述检测周期为所述操作系统的一个时隙中断时间的整数倍。
9.根据权利要求6~8任一项所述的装置,其特征在于,所述调整模块用于:
如果所述空闲计数值的总和大于第一门限,在所有处于非休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行休眠处理;
如果所述空闲计数值的总和小于第二门限,在所有处于休眠状态的报文接收线程中选择一报文接收线程,对被选择的报文接收线程进行唤醒处理;
将所有非休眠状态的报文接收线程的空闲计数值清零。
10.根据权利要求9所述的装置,其特征在于,所述调整模块还用于:
获取所述被选择的报文接收线程的信号量,并将所述被选择的报文接收线程的非休眠标识改为休眠标识;
所述调整模块还用于:
将所述被选择的报文接收线程的休眠标识改为非休眠标识,并将所述被选择的报文接收线程的信号量释放。
CN201310751072.5A 2013-12-31 2013-12-31 调整网络设备资源配置的方法及装置 Active CN104753711B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310751072.5A CN104753711B (zh) 2013-12-31 2013-12-31 调整网络设备资源配置的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310751072.5A CN104753711B (zh) 2013-12-31 2013-12-31 调整网络设备资源配置的方法及装置

Publications (2)

Publication Number Publication Date
CN104753711A CN104753711A (zh) 2015-07-01
CN104753711B true CN104753711B (zh) 2018-03-09

Family

ID=53592863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310751072.5A Active CN104753711B (zh) 2013-12-31 2013-12-31 调整网络设备资源配置的方法及装置

Country Status (1)

Country Link
CN (1) CN104753711B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117277A (zh) * 2015-08-26 2015-12-02 深圳市华验防伪科技有限公司 一种任务循环实现方法及系统
CN107680144B (zh) * 2017-10-16 2021-06-29 郑州云海信息技术有限公司 一种WebP文件转换的方法及装置
CN108345502A (zh) * 2018-01-15 2018-07-31 中兴飞流信息科技有限公司 基于dpdk的资源调度方法、装置、终端设备及可读存储介质
CN108600403B (zh) * 2018-01-24 2021-06-22 北京奇艺世纪科技有限公司 一种dns线程管理方法、装置和服务器
CN108521351B (zh) * 2018-03-21 2021-02-05 东软集团股份有限公司 会话流量统计方法、处理器核心、存储介质、电子设备
CN110417609B (zh) * 2018-04-26 2021-02-09 中移(苏州)软件技术有限公司 一种网络流量的统计方法、装置、电子设备及存储介质
CN110769046B (zh) * 2019-10-17 2022-11-18 新华三信息安全技术有限公司 一种报文获取方法、装置、电子设备及机器可读存储介质
CN114764346A (zh) * 2021-01-14 2022-07-19 华为技术有限公司 一种数据传输方法、系统以及计算节点
CN114900805A (zh) * 2022-05-07 2022-08-12 武汉星辰北斗科技有限公司 一种高并发北斗三号短报文收发方法、系统和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167423A (en) * 1997-04-03 2000-12-26 Microsoft Corporation Concurrency control of state machines in a computer system using cliques
CN101193114A (zh) * 2006-12-01 2008-06-04 英业达股份有限公司 数据传输方法
CN101834890A (zh) * 2010-04-02 2010-09-15 浪潮(北京)电子信息产业有限公司 一种分布式系统的智能化管理系统及方法
CN102307198A (zh) * 2011-08-30 2012-01-04 苏州阔地网络科技有限公司 一种音视频数据的传输方法
CN102333226A (zh) * 2011-09-01 2012-01-25 苏州阔地网络科技有限公司 一种音视频数据传输方法
CN102662908A (zh) * 2012-04-23 2012-09-12 西安电子科技大学 对片上多核系统中的高速接口进行控制的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167423A (en) * 1997-04-03 2000-12-26 Microsoft Corporation Concurrency control of state machines in a computer system using cliques
CN101193114A (zh) * 2006-12-01 2008-06-04 英业达股份有限公司 数据传输方法
CN101834890A (zh) * 2010-04-02 2010-09-15 浪潮(北京)电子信息产业有限公司 一种分布式系统的智能化管理系统及方法
CN102307198A (zh) * 2011-08-30 2012-01-04 苏州阔地网络科技有限公司 一种音视频数据的传输方法
CN102333226A (zh) * 2011-09-01 2012-01-25 苏州阔地网络科技有限公司 一种音视频数据传输方法
CN102662908A (zh) * 2012-04-23 2012-09-12 西安电子科技大学 对片上多核系统中的高速接口进行控制的方法及系统

Also Published As

Publication number Publication date
CN104753711A (zh) 2015-07-01

Similar Documents

Publication Publication Date Title
CN104753711B (zh) 调整网络设备资源配置的方法及装置
CN103200128B (zh) 一种网络包处理的方法、装置和系统
US20160179582A1 (en) Techniques to dynamically allocate resources for local service chains of configurable computing resources
US20190042331A1 (en) Power aware load balancing using a hardware queue manager
CN100508499C (zh) 实现自适应调度的多内核处理器及多内核处理方法
CN102282543B (zh) 信息处理装置和信息处理方法
JP6580307B2 (ja) マルチコア装置及びマルチコア装置のジョブスケジューリング方法
CN101403982A (zh) 一种多核处理器的任务分配方法、系统及设备
CN107046508A (zh) 报文接收方法及网络设备
CN103902364B (zh) 一种物理资源管理方法、装置及智能终端设备
CN106489132B (zh) 读写数据的方法、装置、存储设备和计算机系统
JP2018512648A (ja) ネットワーク負荷に基づいてプロセッサ電力使用を調整する装置及び方法
KR20160055220A (ko) 프로세서의 코어 처리 방법, 장치 및 단말
CN110221914B (zh) 文件处理方法及装置
CN108037898A (zh) 一种基于Ceph的dpdk通讯的方法、系统及装置
CN104462006B (zh) 系统级芯片中的多个处理器核间配置同步方法和设备
CN102520916B (zh) 在mvp处理器中消除纹理延迟和寄存器管理的方法
CN103870331B (zh) 一种动态分配处理器内核的方法及电子设备
EP3516515A1 (en) Scheduling of tasks in a multiprocessor device
CN110716805A (zh) 图形处理器的任务分配方法、装置、电子设备及存储介质
CN103823712A (zh) 一种多cpu虚拟机系统的数据流处理方法和装置
CN109002381A (zh) 进程通信监控方法、电子装置及计算机可读存储介质
CN108710538A (zh) 一种线程配置方法、计算机可读存储介质及终端设备
EP4163795A1 (en) Techniques for core-specific metrics collection
CN207424866U (zh) 一种基于异构多核处理器的内核之间的数据通讯系统

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220414

Address after: 215010 room 704, building 5, No. 556, Changjiang Road, high tech Zone, Suzhou, Jiangsu

Patentee after: SUZHOU YUDESHUI ELECTRICAL TECHNOLOGY Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220429

Address after: 300041 No. 17, Qingyun lane, Macao Road, Heping District, Tianjin

Patentee after: Zheng Xuejing

Address before: 215010 room 704, building 5, No. 556, Changjiang Road, high tech Zone, Suzhou, Jiangsu

Patentee before: SUZHOU YUDESHUI ELECTRICAL TECHNOLOGY Co.,Ltd.