CN101459605B - 一种流量控制方法和设备 - Google Patents

一种流量控制方法和设备 Download PDF

Info

Publication number
CN101459605B
CN101459605B CN2008101917578A CN200810191757A CN101459605B CN 101459605 B CN101459605 B CN 101459605B CN 2008101917578 A CN2008101917578 A CN 2008101917578A CN 200810191757 A CN200810191757 A CN 200810191757A CN 101459605 B CN101459605 B CN 101459605B
Authority
CN
China
Prior art keywords
cpu
pairing
service channel
threshold condition
preset threshold
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
CN2008101917578A
Other languages
English (en)
Other versions
CN101459605A (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.)
Huawei Digital Technologies Chengdu Co Ltd
Original Assignee
Huawei Symantec 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 Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN2008101917578A priority Critical patent/CN101459605B/zh
Publication of CN101459605A publication Critical patent/CN101459605A/zh
Application granted granted Critical
Publication of CN101459605B publication Critical patent/CN101459605B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例公开了一种流量控制方法和设备,所述方法包括以下步骤:第一CPU检测第二CPU所对应的当前运行参数是否达到预设的门限条件;当所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,所述第一CPU关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能。通过应用本发明实施例所提出的技术方案,可以在不带来额外负载的情况下针对具体业务进行精细流量控制,达到了在流量损失最小的情况下避免CPU占用率过高,以及在流量过大超过业务处理能力时减少丢弃报文的效果。

Description

一种流量控制方法和设备
技术领域
本发明涉及通信技术领域,特别是涉及一种流量控制方法和设备。 
背景技术
在使用硬件消息队列的多核处理器系统中,一个处理器核心可以使用多个硬件消息队列,其他CPU核心或网络接口发来的消息将被放到本CPU核心的硬件消息队列中,驱动模块通过中断、轮询等方式接收消息,并将收到的消息分发给相应的应用程序或者处理模块进行处理。 
包含多核处理器的设备应用于网络中作为网络设备时,往往要面对很大的报文流量,当网络接口接到报文后会把报文信息封装到消息环中,发送给CPU核心进行处理。在报文很多时,就会导致消息环上有很大的消息流量,大量的报文加入CPU核心的硬件消息队列中,由驱动程序转交给相应的应用程序或者处理模块处理。 
现有技术中,采用的是限流方式,即对报文流量进行定量限制,限定通过设备的流量不得超过一个固定值。限流可以通过硬件手段,如限定设备只能通过多少流量;也可以通过软件手段,例如相应的软件在一定时间内只分发一定数量的报文,多于该数量的报文将全部丢弃。 
在实现本发明的过程中,发明人发现现有技术至少存在以下问题: 
采用定量流控方法,不能区分业务类型,不能做到紧急业务优先,有可能会因为流量控制需求,而在保留非紧急业务的情况下放弃紧急业务,大量丢弃重要报文,这样会浪费宝贵的系统资源在非紧急业务的处理上,大大降低了紧急业务的响应速度。 
发明内容
本发明实施例提供一种流量控制方法和设备,根据当前业务情况进行精细流量控制,减少了系统资源的浪费和对重要报文的大量丢弃。 
为达到上述目的,本发明实施例一方面提出一种流量控制方法,包括以下步骤: 
第一CPU检测第二CPU所对应的当前运行参数是否达到预设的门限条件; 
当所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,所述第一CPU关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能; 
当所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,所述第一CPU关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能,具体为: 
当所述业务通道支持中断参数配置时,所述第一CPU配置所述当前运行的所述第二CPU所对应的最低优先级的业务通道的中断参数,以使所述业务通道在接收到报文时不向所述第二CPU上送中断。另一方面,本发明实施例还提出一种CPU,包括: 
检测模块,用于检测第二CPU所对应的当前运行参数是否达到预设的门限条件; 
控制模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能; 
其中,所述控制模块,包括: 
其中,所述控制模块,包括: 
配置子模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,配置所述业务通道的中断参数,使所述业务通道在接收到报文时不向所述第二CPU上送中断。 
另一方面,本发明实施例还提出一种包含多核处理器的流量控制设备, 
所述多核处理器至少包括第一CPU和第二CPU,所述第二CPU对应一个或多个业务通道,所述第二CPU用于处理各业务通道上送的报文; 
所述第一CPU,用于检测第二CPU所对应的当前运行参数是否达到预设的门限条件,并当所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能; 
所述第一CPU包括:检测模块,用于检测第二CPU所对应的当前运行参数是否达到预设的门限条件; 
控制模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能; 
其中,所述控制模块,包括: 
配置子模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,配置所述业务通道的中断参数,使所述业务通道在接收到报文时不向所述第二CPU上送中断。 
本发明实施例的技术方案具有以下优点,因为采用了检测当前系统运行状态并根据状态控制流量的技术方案,从而,可以不带来额外负载的情况下针对具体业务进行精细流量控制,达到了在流量损失最小的情况下避免CPU占用率过高,以及在流量过大超过业务处理能力时减少丢弃报文的效果。 
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 
图1为本发明实施例一中的一种流量控制方法的结构示意图; 
图2为本发明实施例二中的一种包含多核处理器的流量控制设备的结构示意图; 
图3为本发明实施例三中的业务通道划分示意图。 
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 
如图1所示,为本发明实施例一所提供的一种流量控制方法的结构示意图,该方法包括以下步骤: 
步骤S101、第一CPU检测第二CPU所对应的当前运行参数是否达到预设的门限条件。 
当第二CPU所对应的当前运行参数达到预设的门限条件时,转入步骤S102; 
当第二CPU所对应的当前运行参数未达到预设的门限条件时,转入步骤S103。 
需要特别指出的是,由于本发明实施例所提出的技术方案适应用在多核处理器的系统环境中,所以,可能存在一个第一CPU检测多个第二CPU的当前运行参数的情况,但是,这种情况需要建立相应的检测规则,否则,可能会导致各CPU之间循环检测,并可能导致一个业务通道被多个CPU共同控制。 
基于上述情况,在实际应用中,一个第一CPU同时检测多个第二CPU的当前运行参数的情况很少得到应用,但此情况也应属于本发明的保护范围。 
进一步的,在第一CPU检测第二CPU所对应的当前运行参数是否达到预设 的门限条件之前,还包括: 
为每个业务设立一个业务通道,或,根据业务种类将同种业务划分为一个业务通道;根据业务所对应的紧急程度,为业务所对应的业务通道设置优先级。 
在本步骤中,第一CPU检测第二CPU所对应的当前运行参数是否达到预设的门限条件具体采用以下几种方式: 
方式一、第一CPU根据第二CPU的当前占用率统计信息检测第二CPU的当前占用率是否高于预设的占用率门限值。 
在本方式中,占用率门限值通常是在保证系统正常运行的情况下,CPU占用率所能达到的最大值,由系统预先设定。该占用率门限值的具体取值的大小可以根据系统运行的需要设置,以使各CPU的不会因为当前占用率过高而影响处理性能。 
方式二、第一CPU检测预设的第二CPU所对应的额外低优先级任务是否在预设的响应时间内未发生调度。 
即,第一CPU通过定时器检测在第二CPU下预设的额外低优先级任务的调用情况。 
在本方式中,额外低优先级任务是系统为了检测CPU运行情况而单独创建的一个低优先级的任务,并检测该任务的调用情况,在一定的时间内,如果该任务没有发生任何调用,则认为系统繁忙,没有空余资源来调用该任务,因此,需要降低系统的繁忙程度,降低该业务所对应的CPU的占用率,其中,上述一定的时间即为响应时间,响应时间通过定时器来设定,该响应时间的具体取值大小根据系统需求或具体应用场景的需要而设定。 
方式三、第一CPU检测第二CPU所对应的一个或多个业务处理模块所对应的内存队列是否被写满。 
在包含多核的设备中,可以根据具体应用需要,设置一个或多个业务处理模块,分别处理一种或多种的业务,如:请求处理模块、响应处理模块等,这些业务处理模块可以分别对应不同的CPU核心,具体的对应规则根据具体场景进行设置。 
其中,在具体的处理过程中,各业务处理模块所接收到的报文可以是由驱动模块进行分配或转发的,这些报文在被业务处理模块接收到以后,可能会因为该业务处理模块被占用等原因,而不能立即被处理,因此,可以在内存中创建与该业务处理模块相对应的内存队列,将接收到的报文按照一定规则进行排列,业务处理模块按照相应的顺序进行处理。但是,由于内存空间的限制,分配给各业务处理模块的内存队列空间也是有限的,如果在内存队列已被写满的情况下,继续有报文发送过来,将不再加入内存队列,而是被直接丢弃。 
步骤S102、第一CPU关闭当前运行的第二CPU所对应的最低优先级的业务通道的中断上送功能。 
通过关闭最低优先级的业务通道的中断上送功能,使得该业务通道中即使再收到报文,也不会向对应的第二CPU上送中断,即不再通知第二CPU对报文进行接收,直至中断上送功能重新开放。这样的设置使得相应的CPU不会再处理被关闭中断上送功能的业务通道的报文,相当于关闭了CPU通过该业务通道接收报文的功能,在CPU业务处理量比较大的时候,优先处理高优先级业务,减少了因为低优先级业务占用CPU资源所导致的资源浪费。 
本步骤可以具体包括: 
当业务通道支持中断参数配置时,即该业务通道可以通过参数调整实现中断上送功能的开启或关闭,第一CPU配置当前运行的第二CPU所对应的最低优先级的业务通道的中断参数,通过更新该业务通道中的中断参数值,关闭该业务通道的中断上送功能,以使该业务通道在接收到报文时不向第二CPU上送中断,即不通知第二CPU接收该报文; 
当业务通道不支持中断参数配置时,第一CPU忽略当前运行的第二CPU所对应的最低优先级的业务通道接收到报文的情况,从而,在该业务通道接收到报文时,不向第二CPU触发中断。 
步骤S103、第一CPU打开当前关闭的第CPU所对应的最高优先级的业务通道的中断上送功能。 
对于第二CPU来讲,当前可能存在多个被关闭的业务通道,而这些业务 通道也都被标识了各自的优先级,当步骤S101中判断第二CPU所对应的当前运行参数未达到预设的门限条件时,可以认为第二CPU还有资源可以处理其他业务,因此,可以在保持当前业务的基础上,开始其他业务,即开启其他被关闭的业务通道。出于避免同时打开多个业务通道导致业务处理量激增的情况的考虑,每次可以只打开一个业务通道,具体打开对象的选择是按照当前被关闭业务通道的优先级高低来进行选择的,本发明实施例中选择优先级最高的被关闭业务通道,为该业务通道打开中断上送功能,使得第二CPU可以处理该业务通道接收的报文。 
本发明实施例的技术方案具有以下优点,因为采用了检测当前系统运行状态并根据状态控制流量的技术方案,从而,可以在不带来额外负载的情况下针对具体业务进行精细流量控制,达到了在流量损失最小的情况下避免CPU占用率过高,以及在流量过大超过业务处理能力时减少丢弃报文的效果。 
对应上述的本发明实施例一所提出的方法,本发明实施例二提出了一种包含多核处理器的流量控制设备,其结构示意图如图2所示,该多核处理器至少包括第一CPU 1和第二CPU 2,其中,第二CPU 2对应一个或多个业务通道3,具体说明如下: 
第一CPU 1,用于检测第二CPU 2所对应的当前运行参数是否达到预设的门限条件,并当第二CPU 2所对应的当前运行参数达到预设的门限条件时,关闭当前运行的第二CPU 2所对应的最低优先级的业务通道3的中断上送功能。 
进一步的,第一CPU 1,还用于当第二CPU 2所对应的当前运行参数未达到预设的门限条件时,第一CPU 1打开当前关闭的第二CPU 2所对应的最高优先级的业务通道3的中断上送功能。 
第二CPU 2,用于处理业务通道3上送的报文。 
需要特别指出的是,由于本发明实施例所提出的技术方案适应用在多核处理器的系统环境中,所以,可能存在一个第一CPU1检测多个第二CPU2的当前运行参数的情况,但是,这种情况需要建立相应的检测规则,否则,可能会导致各CPU之间循环检测,并可能导致一个业务通道被多个CPU共同控制。 
基于上述情况,在实际应用中,一个第一CPU1同时检测多个第二CPU2的当前运行参数的情况很少得到应用,但此情况也应属于本发明的保护范围。 
具体的,第一CPU 1包括以下结构: 
检测模块11,用于检测第二CPU 2所对应的当前运行参数是否达到预设的门限条件,具体包括一下子模块中的一种或多种: 
第一检测子模块111,用于根据第二CPU 2的当前占用率统计信息检测第二CPU 2的当前占用率是否高于预设的占用率门限值; 
第二检测子模块112,用于检测预设的第二CPU 2所对应的额外低优先级任务是否在预设的响应时间内未发生调度; 
第三检测子模块113,用于检测第二CPU 2所对应的一个或多个业务处理模块所对应的内存队列是否被写满。 
控制模块12,用于当检测模块11检测到第二CPU 2所对应的当前运行参数达到预设的门限条件时,关闭当前运行的第二CPU 2所对应的最低优先级的业务通道3的中断上送功能。 
进一步的,控制模块12,还用于当检测模块11检测第二CPU2所对应的当前运行参数未达到预设的门限条件时,打开当前关闭的第二CPU 2所对应的最高优先级的业务通道3的中断上送功能。 
并且,当检测模块11中包括第二检测子模块112时,检测模块11还包括: 
定时器114,用于预设响应时间,以使第二检测模块112根据定时器114中预设的响应时间检测在第二CPU2下预设的额外低优先级任务的调用情况。 
其中,额外低优先级任务是系统为了检测CPU运行情况而单独创建的一个低优先级的任务,并检测该任务的调用情况,在定时器114中预设的响应时间内,如果该任务没有发生任何调用,则认为系统繁忙,没有空余资源来调用该任务,因此,需要降低系统的繁忙程度,降低该业务所对应的CPU的占用率,其中,上述响应时间的具体取值大小根据系统需求或具体应用场景的需要而设定。 
具体的,需要进一步指出的是,上述各子模块可以根据具体的实施场景需要而进行调整,这样的变化并不会影响本发明的保护范围。 
对于第二CPU 2来讲,当前可能存在多个被关闭的业务通道3,而这些业务通道3也都被标识了各自的优先级,当第一CPU 1中的检测模块11判断第二CPU 2所对应的当前运行参数未达到预设的门限条件时,可以认为第二CPU 2还有资源可以处理其他业务,因此,可以在保持当前业务的基础上,开始其他业务,即开启其他被关闭的业务通道3。 
出于避免同时打开多个业务通道3导致业务处理量激增的情况的考虑,每次可以只打开一个业务通道,具体打开对象的选择是按照当前被关闭业务通道3的优先级高低来进行选择的,本发明实施例中选择优先级最高的被关闭业务通道3,为该业务通道3打开中断上送功能,使得第二CPU 2可以处理该业务通道3接收的报文。 
具体的,控制模块12具体包括以下模块中的一个或多个: 
配置子模块121,用于当检测模块11检测到第二CPU 2所对应的当前运行参数达到预设的门限条件时,配置业务通道3的中断参数,使业务通道3在接收到报文时不向第二CPU 2上送中断;当检测模块11检测到第二CPU 2所对应的当前运行参数未达到预设的门限条件时,配置业务通道3的中断参数,使业务通道3在接收到报文时向第二CPU 2上送中断; 
触发子模块122,用于当检测模块11检测到第二CPU 2所对应的当前运行参数达到预设的门限条件时,忽略业务通道3接收到报文的情况,不向第二CPU 2触发中断;当检测模块11检测到第二CPU 2所对应的当前运行参数未达到预设的门限条件时,在业务通道3接收到报文时,向第二CPU 2触发中断。 
再进一步的,该多核处理器还包括: 
业务通道建立单元4,用于为每个业务设立一个业务通道3,或,根据业务种类将同种业务划分为一个业务通道3,并根据业务所对应的紧急程度,为业务所对应的业务通道3设置优先级。 
本发明实施例的技术方案具有以下优点,因为采用了检测当前系统运行状态并根据状态控制流量的设备,从而,可以在不带来额外负载的情况下针对具体业务进行精细流量控制,达到了在流量损失最小的情况下避免CPU占用率过高,以及在流量过大超过业务处理能力时减少丢弃报文的效果。 
为了更清楚的描述本发明实施例所提出的技术方案,本发明实施例三结合具体的实施场景,提出了一种流量控制方法,检测当前系统运行状态并根据状态控制流量。 
首先,本发明实施例所提出的是一种实时控制手段,基于业务通道的划分、控制技术实现对流量的控制。 
进一步的,需要明确的是,上述的本发明实施例所提出的技术方案是基于多核处理器环境下的。多核处理器是指在一片处理器芯片中集成多个处理器核心。每个处理器核心都能单独地运行程序,使程序认为自己运行在一个独立的处理器上。与多台计算机不同,多核处理器的所有处理器核心可以使用同一条总线访问存储器,因此它们可以共用同一片内存;它们也可能共同享用该多核处理器所对应的所有硬件设备。这里讨论的多核处理器也包括超线程处理器的情况。 
此外,需要假设该多核处理器具有内部通讯机制,各CPU之间可以互相通知事件、传递数据。并且,硬件设备(例如网络接口设备)接收到报文也可以通过消息方式上送,在本发明实施例中,这样的上送过程以通过业务通道向相应的CPU发送消息的方式来实现。 
市场上各种嵌入式多核处理器,硬件的功能、可配置性不尽相同,例如核间通讯机制可能具有良好的可配置性和智能性,便于实现本发明实施例所提出的技术方案。但是本发明实施例所提出的技术方案不依赖于这些功能。只要是具有消息通讯机制的多核处理器,均可实现本发明所述的方案,只不过是软件硬件功能的划分界线略有差异、实现出来的性能有所不同而已。 
具体的,上述的消息通讯机制具体为:面向嵌入式应用的多核处理器往往有核间消息通讯机制。其中一种典型的实现方法是每个处理器核管理若干个消息队列,处理器核之间可以发送消息。硬件设备(如网络接口、DMA等)也可以通过发送消息与处理器核心之间进行通信。例如,网络接口在接到业务报文后,发送一个消息通知相应的CPU核心进行业务接收。该CPU核心所对应的处理模块或应用软件可以用中断或轮询等方式使用消息队列,一般有 操作系统的情况下会通过中断方式。 
基于上述的应用环境,可以实现本发明前述实施例所提出的技术方案,具体的实现流程如下: 
进行核间的业务通道状态检测,并根据检测结果进行流量控制。 
在本步骤之前,需要进行以下准备工作:设立业务通道,并为各业务通道设置相应的优先级。 
在本发明实施例所提出的技术方案中,使用的流量控制手段是面向业务的,对不同的业务流量可以单独进行流量控制。为实现这一功能,首先要把业务划分成不同的业务通道。可以给每个业务设置一个通道,也可以根据报文的紧急程度不同,把多个业务划分到一个通道。具体如图3所示。 
不同的通道可以指定不同的优先级,例如系统消息最高,关键业务其次,普通业务第三,进行流量控制时优先关闭低优先级通道。 
其中,需要指出的是,图3中所示的业务通道划分只是本发明的一种优选实施例,在具体的应用中,可以根据需要增加业务通道的种类和数量,并更改相应的优先级设置,这样的变化并不影响本发明的保护范围。 
基于上述设置,本步骤的实现需要基于业务通道上送中断的可配置性。当业务通道收到消息后,利用中断通知CPU收取。假设某一业务模块的接收能力已达到饱和,该内存队列再上送任何中断都只能浪费处理器的时间。 
此时,可以单独移除一个通道,使这个通道有消息到来时不产生中断,不带来任何系统运行开销,从而消除该通道为CPU带来的资源负担,降低CPU负载。因此,本发明实施例所提出的技术方案需要中断上送功能具有可配置性,即可以指定某个业务通道在有消息到来时是否上送中断。 
在大多数情况下,系统是通过具有中断上送功能的硬件向CPU上报中断,但在实际应用中,并不是每一种多核处理器架构的消息中断硬件都具有可选择性,即不是每一种多核处理器架构中都包含具有中断上送功能的硬件,因此,可以使用软件模拟的方法来实现本发明实施例所提出的技术方案,方法如下: 
使用一个CPU检查另一个CPU的业务通道状态,如果有报文到达业务通 道,则通过中断模拟软件向该CPU触发一个中断操作,即通知该CPU接收该报文。从而,实现利用中断模拟软件触发的中断操作,向相应的CPU报告报文的到来。假如该业务通道被配置成关闭状态则中断模拟软件忽略该业务通道中报文到来的情况,在此种情况下,即使该业务通道中接收到报文,中断模拟软件也不会向CPU触发中断操作。 
因检测业务通道、上送中断的处理耗时较少,所以一个CPU可以为多个CPU同时服务。这样上送中断会比通过具有中断上送功能的硬件直接上送中断的实现方法要慢一些。但它只会带来非常短暂的处理延时,而不会带来流量下降。。 
假定硬件支持关闭单独业务通道的中断,则本发明实施例的流量控制方案不会带来额外的系统资源消耗,直接停止需要关闭的业务通道的中断上送功能即可。当硬件不提供这一功能支持时,可以通过软件方法来模拟。通过软件方法实现的情况下,可以通过其他CPU对本CPU的业务通道进行相关检测和终端上送功能的开启或关闭处理,把流量控制的开销从执行业务处理的本CPU转嫁给业务不繁忙的其他CPU,同样可以降低流量控制带来的性能损失。 
进一步的,有了中断可配置性的基础,就可以针对不同的业务通道进行流量控制,不同的业务通道分别用于不同的消息类型,利用这种方法就可以实现针对不同消息的流量控制。 
实时控制与定量控制不同,需要检测系统运行情况参数作为输入,把流量控制手段(移除中断上送能力)作为输出。因此不同的控制目的要检测不同的参数。下面根据具体的情况给出不同参数的测定示例,具体如下: 
1、防止处理器占用率过高的基本的流量控制: 
在网络设备中,CPU大部份时间是用来处理报文的。流量过大会造成CPU占用率过高,这种问题的基本特征是低优先级任务难以得到调度,因此可以将低优先级任务的调度情况作为控制的检测参数。具体通过以下方式实现: 
对应需要进行流量控制的CPU,开启一个低优先级的任务; 
利用定时器设置响应时间,在该响应时间内检查该任务的调度次数; 
如果在该响应时间内该任务没有发生调度,则判断当前CPU业务处理繁忙,需要减少业务流量,因此,移除该CPU所对应的当前最低优先级业务通道的中断上送功能。 
这样处理器占用率便会自然下降。当检测到该任务调度执行后,判断CPU业务处理不再繁忙,可以提高业务流量,从而,打开与该CPU对应的当前关闭的最高优先级的业务通道中断上送功能。 
通过调整参数,如,如果对CPU业务处理量判断要求比较紧,可以将定时器所设置的响应时间设置的比较短,从而,在比较短的时间内,如果没有检测到该任务被调用,即可判断CPU业务繁忙,反之,则将将定时器所设置的响应时间设置的比较长,从而,只有在比较长的时间内,如果没有检测到该任务被调用,才会判断CPU业务繁忙。即可用极简单的软件机制将CPU占用率控制在可按受的范围。而且可以尽量减少流量控制对关键消息的影响。一般情况下,只需偶尔移除普通业务通道即可实现CPU占用率的控制。 
当然,上述根据CPU业务繁忙程度进行流量控制的方案,也可利用操作系统的CPU占用率统计信息作为判断依据进行相应的流量控制,这样的变化并不影响本发明的保护范围。 
这种控制是基于运行时CPU使用率的限流,可以将CPU占用率刚好保持在一个范围。不同于定量限流,不需要事先计算安全裕量,因此不至于丢弃过多的报文。 
2、面向业务处理能力的控制: 
CPU所对应的驱动程序接收到消息后送给业务处理模块进行处理。当某一种业务的瞬时流量非常大时会超过业务处理模块的处理能力,如果此时,再向该业务处理模块发送报文,该业务处理模块也会因为无法处理而将这些报文丢弃,因此,这时的报文收取操作将是无效操作,白白浪费了处理器的宝贵资源。而且流量超过业务处理模块的处理能力越多,这种资源浪费就越大。为控制这种情况,需要检测业务处理模块的处理能力状态。 
例如,某一个业务处理模块用内存队列来缓存收到的消息进行处理,当消息瞬时流量过大时,驱动模块接收报文的速度远大于业务处理模块的处理 速度,内存队列会被写满。流量控制软件可以把内存队列的使用情况作为控制输入参数。当检查到内存队列被存满时,可暂时将该内存队列所对应的通道的中断上送功能关闭,当业务处理模块处理掉当前队列中的消息,释放了足够的内存队列空间来接纳新消息时,可马上打开该内存队列所对应的通道的中断上送功能,后面的消息可以立即被收取。这样的控制可以恰好使业务处理模块发挥到最大处理执行效能,最大程度地减少了处理器因丢弃报文而浪费宝贵的系统资源。 
本发明实施例的技术方案具有以下优点,因为采用了检测当前系统运行状态并根据状态控制流量的技术方案,从而,可以在不带来额外负载的情况下针对具体业务进行精细流量控制,达到了在流量损失最小的情况下避免CPU占用率过高,以及在流量过大超过业务处理能力时减少丢弃报文的效果。 
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。 
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。 

Claims (14)

1.一种流量控制方法,其特征在于,包括以下步骤:
第一CPU检测第二CPU所对应的当前运行参数是否达到预设的门限条件;
当所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,所述第一CPU关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能;
当所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,所述第一CPU关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能,具体为:
当所述业务通道支持中断参数配置时,所述第一CPU配置所述当前运行的所述第二CPU所对应的最低优先级的业务通道的中断参数,以使所述业务通道在接收到报文时不向所述第二CPU上送中断。
2.如权利要求1所述方法,其特征在于,在所述第一CPU检测第二CPU所对应的当前运行参数是否达到预设的门限条件之前,还包括:
为每个业务设立一个业务通道,或,根据业务种类将同种业务划分为一个业务通道;
根据所述业务所对应的紧急程度,为所述业务所对应的业务通道设置优先级。
3.如权利要求1所述方法,其特征在于,所述第一CPU检测第二CPU所对应的当前运行参数是否达到预设的门限条件,具体包括:
所述第一CPU根据所述第二CPU的当前占用率统计信息检测所述第二CPU的当前占用率是否高于预设的占用率门限值;或,
所述第一CPU检测预设的所述第二CPU所对应的额外低优先级任务是否在预设的响应时间内未发生调度;或,
所述第一CPU检测所述第二CPU所对应的一个或多个业务处理模块所对应的内存队列是否被写满。
4.如权利要求3所述方法,其特征在于,所述第一CPU检测预设的所 述第二CPU所对应的额外低优先级任务是否在预设的响应时间内未发生调度,具体为:
所述第一CPU通过定时器检测在所述第二CPU下预设的额外低优先级任务的调用情况,所述定时器中预设了所述响应时间。
5.如权利要求1所述方法,其特征在于,当所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,所述第一CPU关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能,具体为:
当所述业务通道不支持中断参数配置时,所述第一CPU忽略所述当前运行的所述第二CPU所对应的最低优先级的业务通道接收到报文的情况,在所述业务通道接收到报文时,不向所述第二CPU触发中断。
6.如权利要求1所述方法,其特征在于,还包括:
当所述第二CPU所对应的当前运行参数未达到所述预设的门限条件时,所述第一CPU打开当前关闭的所述第二CPU所对应的最高优先级的业务通道的中断上送功能。
7.一种CPU,其特征在于,包括:
检测模块,用于检测第二CPU所对应的当前运行参数是否达到预设的门限条件;
控制模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能;
其中,所述控制模块,包括:
配置子模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,配置所述业务通道的中断参数,使所述业务通道在接收到报文时不向所述第二CPU上送中断。
8.如权利要求7所述CPU,其特征在于,所述检测模块,具体包括以下子模块中的一种或多种:
第一检测子模块,用于根据所述第二CPU的当前占用率统计信息检测所述第二CPU的当前占用率是否高于预设的占用率门限值; 
第二检测子模块,用于检测预设的所述第二CPU所对应的额外低优先级任务是否在预设的响应时间内未发生调度;
第三检测子模块,用于检测所述第二CPU所对应的一个或多个业务处理模块所对应的内存队列是否被写满。
9.如权利要求8所述CPU,其特征在于,当所述检测模块中包括所述第二检测子模块时,所述检测模块还包括:
定时器,用于预设响应时间,以使所述第二检测模块根据所述计时器中预设的响应时间检测在所述第二CPU下预设的额外低优先级任务的调用情况。
10.如权利要求7所述CPU,其特征在于,
所述控制模块,还用于当所述检测模块检测所述第二CPU所对应的当前运行参数未达到所述预设的门限条件时,打开当前关闭的所述第二CPU所对应的最高优先级的业务通道的中断上送功能。
11.如权利要求7或10所述CPU,其特征在于,所述控制模块,具体包括以下模块中的一个或多个:
配置子模块,还用于当所述检测模块检测到所述第二CPU所对应的当前运行参数未达到所述预设的门限条件时,配置所述业务通道的中断参数,使所述业务通道在接收到报文时向所述第二CPU上送中断;
触发子模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,忽略所述业务通道接收到报文的情况,不向所述第二CPU触发中断;当所述检测模块检测到所述第二CPU所对应的当前运行参数未达到所述预设的门限条件时,在所述业务通道接收到报文时,向所述第二CPU触发中断。
12.一种包含多核处理器的流量控制设备,其特征在于,
所述多核处理器至少包括第一CPU和第二CPU,所述第二CPU对应一个或多个业务通道,所述第二CPU用于处理各业务通道上送的报文;
所述第一CPU,用于检测第二CPU所对应的当前运行参数是否达到预设的门限条件,并当所述第二CPU所对应的当前运行参数达到所述预设的门限 条件时,关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能;
所述第一CPU包括:检测模块,用于检测第二CPU所对应的当前运行参数是否达到预设的门限条件;
控制模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,关闭当前运行的所述第二CPU所对应的最低优先级的业务通道的中断上送功能;
其中,所述控制模块,包括:
配置子模块,用于当所述检测模块检测到所述第二CPU所对应的当前运行参数达到所述预设的门限条件时,配置所述业务通道的中断参数,使所述业务通道在接收到报文时不向所述第二CPU上送中断。
13.如权利要求12所述设备,其特征在于,
所述第一CPU,还用于当所述第二CPU所对应的当前运行参数未达到所述预设的门限条件时,所述第一CPU打开当前关闭的所述第二CPU所对应的最高优先级的业务通道的中断上送功能。
14.如权利要求12所述设备,其特征在于,还包括:
业务通道建立单元,用于为每个业务设立一个业务通道,或,根据业务种类将同种业务划分为一个业务通道,并根据所述业务所对应的紧急程度,为所述业务所对应的业务通道设置优先级。 
CN2008101917578A 2008-12-31 2008-12-31 一种流量控制方法和设备 Expired - Fee Related CN101459605B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101917578A CN101459605B (zh) 2008-12-31 2008-12-31 一种流量控制方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101917578A CN101459605B (zh) 2008-12-31 2008-12-31 一种流量控制方法和设备

Publications (2)

Publication Number Publication Date
CN101459605A CN101459605A (zh) 2009-06-17
CN101459605B true CN101459605B (zh) 2012-03-21

Family

ID=40770242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101917578A Expired - Fee Related CN101459605B (zh) 2008-12-31 2008-12-31 一种流量控制方法和设备

Country Status (1)

Country Link
CN (1) CN101459605B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615135B (zh) * 2009-07-23 2015-08-12 中兴通讯股份有限公司 一种平滑数据处理的方法和装置
CN102006615A (zh) * 2010-11-25 2011-04-06 中兴通讯股份有限公司 报文处理方法及装置
CN102780563A (zh) * 2011-05-12 2012-11-14 国基电子(上海)有限公司 多核网络设备及其省电方法
CN103729313B (zh) * 2012-10-11 2016-08-17 苏州傲科创信息技术有限公司 Ssd缓存的输入输出流量控制方法及装置
CN103415043B (zh) * 2013-07-15 2016-02-03 阔地教育科技有限公司 一种信息处理方法及系统
CN103414652B (zh) * 2013-07-15 2016-03-30 阔地教育科技有限公司 一种通信信息处理方法及系统
CN103825782B (zh) * 2014-03-07 2017-08-22 新华三技术有限公司 一种利用核间中断定位不合理任务的方法和设备
CN104980360B (zh) * 2014-04-11 2018-11-30 华为技术有限公司 带宽控制方法和相关设备
CN104022971B (zh) * 2014-05-26 2018-04-06 上海斐讯数据通信技术有限公司 优化交换机报文上送方法及其系统
CN105743679B (zh) * 2014-12-11 2020-06-26 中兴通讯股份有限公司 一种多核网络设备中cpu保护方法和装置
CN104410586B (zh) * 2014-12-11 2018-08-07 福建星网锐捷网络有限公司 一种vsu环境下的报文处理方法和装置
CN106569893B (zh) * 2015-10-09 2021-02-05 阿里巴巴集团控股有限公司 流量控制方法及设备
CN109189580B (zh) * 2018-09-17 2021-06-29 武汉虹旭信息技术有限责任公司 一种基于多核平台的多任务开发模型及其方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859209A (zh) * 2006-04-04 2006-11-08 华为技术有限公司 一种数字用户线路接入复用器的安全防护方法
CN1878131A (zh) * 2005-06-10 2006-12-13 华为技术有限公司 进行流量控制的方法和系统
CN101217574A (zh) * 2008-01-17 2008-07-09 中兴通讯股份有限公司 动态调整网络地址转换策略的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878131A (zh) * 2005-06-10 2006-12-13 华为技术有限公司 进行流量控制的方法和系统
CN1859209A (zh) * 2006-04-04 2006-11-08 华为技术有限公司 一种数字用户线路接入复用器的安全防护方法
CN101217574A (zh) * 2008-01-17 2008-07-09 中兴通讯股份有限公司 动态调整网络地址转换策略的方法及系统

Also Published As

Publication number Publication date
CN101459605A (zh) 2009-06-17

Similar Documents

Publication Publication Date Title
CN101459605B (zh) 一种流量控制方法和设备
US10628216B2 (en) I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status
US9727372B2 (en) Scheduling computer jobs for execution
RU2577476C2 (ru) Способ, устройство и система для диспетчеризации ядра процессора в системе ядра мультипроцессора
CN104081736B (zh) 客户端设备上调度分组传输的系统和方法
US6757897B1 (en) Apparatus and methods for scheduling and performing tasks
JPH117429A (ja) 共有バス型マルチプロセッサシステムの割り込み負荷分散システム
CN103019835A (zh) 一种多核处理器中断资源优化处理系统和方法
WO2022068697A1 (zh) 任务调度方法及装置
CN105337896A (zh) 报文处理方法和装置
CN102521057A (zh) 资源调度方法和装置
CN111200541B (zh) 网络数据处理方法和装置
CN102323895A (zh) 一种基于机顶盒嵌入式操作系统实时调度方法
CN111897637B (zh) 作业调度方法、装置、主机及存储介质
CN102811176A (zh) 一种数据流量控制方法和装置
Mehra et al. Resource management for real-time communication: Making theory meet practice
KR101073273B1 (ko) 네트워크의 장치들을 위한 데이터 채널 자원 최적화
CN103686956A (zh) 移动终端及其数据网络通信方法和数据网络请求代理装置
CN114138506A (zh) 消息队列调度方法及其装置、设备、介质、产品
CN101272334B (zh) 使用多核CPU处理QoS业务的方法、装置和设备
CN115437755A (zh) 中断调度方法、电子设备及存储介质
CN100476774C (zh) 一种限制基板管理控制器命令的方法及装置
Rizzo et al. A study of speed mismatches between communicating virtual machines
Sugaya et al. Accounting system: A fine-grained cpu resource protection mechanism for embedded system
WO2002023329A2 (en) Processor resource scheduler and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: Huawei Symantec Technologies Co., Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: Chengdu Huawei Symantec Technologies Co., Ltd.

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

Granted publication date: 20120321

Termination date: 20171231

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