CN107977269B - 一种报文转发系统中的超时事件处理方法、装置及设备 - Google Patents
一种报文转发系统中的超时事件处理方法、装置及设备 Download PDFInfo
- Publication number
- CN107977269B CN107977269B CN201711080170.5A CN201711080170A CN107977269B CN 107977269 B CN107977269 B CN 107977269B CN 201711080170 A CN201711080170 A CN 201711080170A CN 107977269 B CN107977269 B CN 107977269B
- Authority
- CN
- China
- Prior art keywords
- event
- overtime
- timeout
- timer
- cpu
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种报文转发系统中的超时事件处理方法、装置及设备,该报文转发系统应用于多核系统,该多核系统包括第一CPU,第一CPU中设置有定时器,定时器中同时达到超时时间的超时事件的权重值之和未超出预设最大权重值,预设最大权重值用于表征处理同时达到超时时间的超时事件的最大处理时长;该方法包括:当达到预设轮询周期,第一CPU判断定时器中是否存在已达到超时时间的超时事件;如果存在,则对已达到超时时间的超时事件进行处理。本发明基于轮询机制对定时器中的超时事件进行处理,能够降低对报文转发系统的收发包性能的影响,另外,本发明能够避免长时间对超时事件进行处理而导致的收发包不及时,从而保证了报文转发系统的高性能和高健壮性。
Description
技术领域
本申请涉及数据处理领域,具体涉及一种报文转发系统中的超时事件处理方法、装置及设备。
背景技术
超时事件,是指需要预先加入到定时器,且通过定时器计时,在超时后执行的事件。在报文转发系统中,必然会涉及的超时事件包括超时删除会话表事件、超时删除分片重组报文事件、超时删除ARP表事件等。
现有的报文转发系统的超时事件处理方法中,定时器是全局资源,一旦达到定时器中的超时事件的超时时间,则通过信号通知报文转发系统中正在执行的程序均暂停,然后开始处理超时事件。显然,这种实现方式会频繁的打断正在执行的程序,影响报文转发系统的整体性能。
由于报文转发系统需要保证正常执行收发包操作,而上述超时事件处理方法可能会频繁的打断正在执行的收发包操作,导致收发包处理不及时,严重的可能产生丢包现象,降低报文转发系统的收发包性能。
发明内容
本发明提供了一种报文转发系统中的超时事件处理方法、装置及设备,基于轮询机制对加入定时器的超时事件进行处理,能够保证报文转发系统的整体性能。
第一方面,本发明提供了一种报文转发系统中的超时事件处理方法,所述报文转发系统应用于多核系统,所述多核系统包括第一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-A为本申请实施例提供的一种报文转发系统的架构示意图;
图1-B为本申请实施例提供的一种报文转发系统中的超时事件处理方法流程图;
图2为本申请实施例提供的另一种报文转发系统中的超时事件处理方法流程图;
图3为本申请实施例提供的一种采用时间轮机制实现的定时器的示意图;
图4为本申请实施例提供的另一种报文转发系统中的超时事件处理方法流程图;
图5为本申请实施例提供的一种报文转发系统中的超时事件处理装置的结构示意图;
图6为本申请实施例提供的一种报文转发系统中的超时事件处理设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
由于高性能和高健壮性的报文转发系统是各个网络厂商的设计目标,所以,报文转发系统中各个功能的设计均要以报文转发系统的高性能和高健壮性为前提。为此,本发明在多核报文转发系统中,将定时器设计为每核机制,即多核系统中的每个CPU具有独立的定时器,如图1-A所示,为本发明提供的一种报文转发系统的架构示意图,其中,报文转发系统100为多核系统,包括第一CPU、第二CPU等转发核,其中,每个CPU中设置有独立的定时器。本发明通过将定时器设置为每核独立资源,使得多核系统中多核之间定时器的处理是完全无需加锁的,避免了多核资源竞争的问题,保证了报文转发系统的高性能和高健壮性。
另外,由于现有的报文转发系统中定时器的设计是基于信号通知的方式实现的,即一旦达到定时器中的超时事件的超时时间,则通过信号通知的方式通知当前正在执行的收发包操作暂停,优先处理到期的超时事件,显然这种设计影响了报文转发系统中对报文的转发性能。为此,本发明提出了基于每核轮询处理机制设计的定时器,即每个CPU定时轮询的判断自身的定时器是否存在已达到超时时间的超时事件,如果存在,则对该超时事件进行处理,基于轮询机制设计的定时器一定程度上能够降低对报文转发系统的收发包性能的影响,保证了报文转发系统的高性能和高健壮性。
但是,由于基于每核轮询机制设计的定时器需要与报文转发(收发包)逻辑共享同一时间片,即报文转发系统中的每个CPU需要处理的工作包括收包、发包和定时器,收包、发包和定时器的处理需要共享同一时间片。可以理解的是,这三个处理流程中一旦某个处理流程占用的时间片过多,则会导致其他处理流程的执行不及时。众所周知,报文转发系统的收包和发包的处理流程的优先级应该最高,如果定时器的处理流程占用过多的时间片,则会导致报文转发系统的收发包逻辑处理不及时,严重的可能造成丢包现象,影响报文转发系统的整体性能。
为了避免定时器的处理流程占用时间片过长,导致收发包逻辑处理不及时的问题,本发明提出了通过控制定时器的处理流程所占用的时间片,避免报文转发系统的收发包逻辑处理不及时。具体的,本发明基于权重值控制加入到定时器的同时达到超时时间的超时事件的处理时长,使得处理超时事件不会占用过多时间片,避免影响收发包逻辑的正常处理,保证了报文转发系统的高性能和高健壮性。
基于上述定时器的设计,本发明实施例提供了一种报文转发系统中的超时事件处理方法,参考图1-B,为本发明实施例提供的一种报文转发系统中的超时事件处理方法流程图,其中,该报文转发系统应用于多核系统,该多核系统包括第一CPU,其中,第一CPU可以为该报文转发系统中的任意一个CPU(转发核),该第一CPU中设置有定时器,该定时器中同时达到超时时间的超时事件的权重值之和未超出预设最大权重值,其中,该预设最大权重值用于表征同时达到超时时间的超时事件的最大处理时长。
具体的,该报文转发系统中的超时事件处理方法可以包括:
S101:当达到预设轮询周期时,所述第一CPU判断所述定时器中是否存在已达到超时时间的超时事件。
S102:如果所述第一CPU确定所述定时器中存在已达到超时时间的超时事件,则对所述超时事件进行处理。
超时事件,是指需要加入到定时器,且通过定时器计时,在超时后执行的事件。在报文转发系统中,必然会涉及的超时事件包括超时删除会话表事件、超时删除分片重组报文事件、超时删除ARP表事件等等。
本发明实施例中,超时事件的权重值可以用于表征该超时事件的处理时长,例如,假设时间单位为1,对于超时删除会话表事件,通过大量测试确定其处理时长平均为35,因此可以将超时删除会话表事件的权重值设置为35;对于超时删除分片重组报文事件,通过大量测试确定其处理时长平均为7,则可以将超时删除分片重组报文事件的权重值设置为7。
本发明实施例中,加入到定时器中的超时事件均具有对应的超时时间,例如,假设超时删除会话表事件的超时时间为3ms,可以理解为,在将该超时删除会话表事件加入定时器3ms后达到该超时删除会话表事件的超时时间。超时事件对应的超时时间一旦达到,则说明该超时事件当前需要被处理,可以理解的是,对于同时达到超时时间的超时事件是需要在一次轮询中被处理的事件,而一次轮循中定时器的超时事件的处理时间过长会影响收发包逻辑的正常处理,所以,本发明实施例需要对定时器中同时达到超时时间的超时事件的处理时长进行控制。
为了控制定时器中同时达到超时时间的超时事件总的处理时长,本发明实施例控制加入到定时器中同时达到超时时间的超时事件的权重值之和不超出预设最大权重值,以避免处理定时器中超时事件的时间过长而影响收发包逻辑的正常处理。其中,预设最大权重值用于表征同时达到超时时间的超时事件的最大处理时长。
轮询,是指CPU以一定的周期处理目标对象,本发明实施例中定时器是基于轮询机制设计的,第一CPU以预设轮询周期对定时器进行处理,即在达到预设轮询周期后,判断定时器中是否存在已达到超时时间的超时事件,如果存在,则对已达到超时时间的超时事件进行处理,如果不存在,则无需对定时器中的超时事件进行处理,等待下一轮达到预设轮询周期后再继续处理该定时器。
本发明实施例提供的报文转发系统中的超时事件处理方法中,应用于多核报文转发系统中的第一CPU设置有独立的定时器,当达到预设轮询周期时,第一CPU对该定时器中已达到超时时间的超时事件进行处理,本发明基于轮询机制对定时器中的超时事件进行处理,能够降低对报文转发系统的收发包性能的影响。另外,本发明通过控制定时器中同时达到超时时间的超时事件的权重值之和不超过最大权重值,对加入到定时器中同时达到超时时间的超时事件的处理时长进行控制,避免长时间对超时事件进行处理而导致的收发包不及时,从而保证了报文转发系统的高性能和高健壮性。
另外,本发明实施例还提供了一种报文转发系统中的超时事件处理方法,参考图2,为本发明实施例提供的另一种报文转发系统中的超时事件处理方法的流程图。其中,该报文转发系统应用于多核系统,该多核系统包括第一CPU,该第一CPU中设置有定时器,该定时器中同时达到超时时间的超时事件的权重值之和未超出预设最大权重值,该预设最大权重值用于表征同时达到超时时间的超时事件的最大处理时长。
具体的,该报文转发系统中的超时事件处理方法包括:
S201:第一CPU基于超时事件的权重系数和处理时长,预先确定各个超时事件的权重值。
为了避免报文转发系统中对超时事件的处理时间过长,影响报文转发系统中报文的正常转发性能,本发明实施例为各个超时事件设置权重值,并通过权重值控制加入定时器的同时达到超时时间的超时事件,避免第一CPU处理超时事件的时间过长而影响正常转发性能,保证了报文转发系统的整体性能。
一种实现方式中,各个超时事件的权重值可以根据该超时事件的处理时长直接确定,参考上述实施例中的介绍。为了保证报文转发系统中相对重要的超时事件能够尽量被及时加入到定时器中,本发明实施例在确定超时事件的权重值时,不仅考虑超时事件的处理时长,还可以结合超时事件的重要程度,本发明实施例可以以超时事件的优先级体现超时事件的重要程度。
为此,另一种实现方式中,第一CPU还可以根据超时事件的处理时长以及基于该超时事件的优先级确定的权重系数,设置该超时事件的权重值。具体的,第一CPU预先获取该超时事件的优先级,并根据优先级确定该超时事件的权重系数,其中,超时事件的权重系数与该超时事件的优先级呈反比,也就是说,超时事件的优先级越高,重要程度越高,其权重系数越小,其中,权重系数为小于1的正数。另外,各个超时事件的优先级可以是根据报文转发系统的功能需求预先设置的。
实际应用中,第一CPU可以将超时事件的权重系数与处理时长的乘积确定为该超时事件的权重值,可以理解的是,在超时事件的处理时长确定的情况下,权重系数越小,该超时事件的权重值越小。由于定时器中同时达到超时时间的超时事件的权重值之和不能超出预设最大权重值,所以,在将任一超时事件加入定时器时,该超时事件的权重值越小,则成功加入定时器的几率越大,通过上述方式,本发明实施例能够保证报文转发系统中相对重要的超时事件最大几率的被及时加入到定时器中。
举例说明,假如根据系统的功能需求,预先为超时删除会话表事件设置较高的优先级,则超时删除会话表事件的权重系数则相对较低,相比仅由处理时长确定的权重值而言,该超时删除会话表事件的权重值变小,进而提高该超时删除会话表事件成功加入定时器的几率。
S202:当第一CPU接收到待加入定时器的超时事件后,获取定时器中与该超时事件同时达到超时时间的超时事件的当前权重总值。
由于报文转发系统中报文的接收和转发操作与定时器的处理操作共享同一时间片,本发明实施例中可以根据报文的接收和转发操作的处理需求,确定基于轮询机制设计的定时器的一次轮询的最大处理时长,以避免影响报文的接收和转发操作。
本发明实施例中,将定时器一次轮询的最大处理时长以预设最大权重值体现,控制同时达到超时时间的超时事件的权重值之和不超出预设最大权重值。
举例说明,假设根据报文转发系统中报文的接收和转发操作的处理需求,将第一CPU的定时器的一次轮询的最大处理时长确定为40000,也就是说,第一CPU的定时器的预设最大权重值为40000。为了避免对报文转发系统中超时事件的处理占用过多的时间片,当加入到定时器的同时达到超时时间的超时事件的权重值之和达到40000后,控制再次加入到该定时器的与上述超时事件同时达到超时时间的超时事件添加失败。
定时器的一种实现方式中,每核定时器可以采用时间轮机制实现,如图3 所示,为一种采用时间轮机制实现的定时器的示意图。其中,定时器的时间轮包括N个齿轮,每个齿轮都是以时间为单位设置的,例如,假设第1个齿轮表示2ns,则第2个齿轮表示2个2ns,即4ns,依此类推;或者,假设第1个齿轮表示1ns,则第2个齿轮表示2个1ns,即2ns,依此类推;具体时间轮中各个齿轮对应的时间可以根据需求设置,在此不做限定。
另外,时间轮的每个齿轮上都保存有一个链表,每个链表用于存储同时达到超时时间的超时事件,值得注意的是,为了避免超时事件处理时间过长,在每个链表中存储的超时事件的权重值之和不超出预设最大权重值。
实际应用中,第一CPU在接收到待加入定时器的超时事件后,首先获取定时器中与该超时事件同时达到超时时间的超时事件的当前权重总值。
S203:第一CPU判断当前权重总值与超时事件的权重值之和是否超出预设最大权重值,如果否,则执行S204。
本发明实施例中,第一CPU在获取定时器中与接收到的超时事件同时达到超时时间的超时事件的当前权重总值后,判断该当前权重总值与接收到的超时事件的权重值之和是否超出预设最大权重值,如果没有超出预设最大权重值,则将接收到的超时事件成功加入定时器。
为了避免报文转发系统中超时事件的处理占用过多的时间片,如果该当前权重总值与该超时事件对应的权重值之和超出预设最大权重值,则控制该超时事件添加到定时器失败。
对于添加失败的超时事件,一种实现方式中,第一CPU可以将添加失败的超时事件直接丢弃。但是,对于报文转发系统中相对重要的超时事件,如果采用直接丢弃的方式显然是不恰当的,所以,本发明实施例还提供了一种处理添加失败的超时事件的方式,具体方式在后续进行介绍。
S204:将该超时事件加入定时器。
本发明实施例中,第一CPU确定接收到的超时事件与定时器中同时达到超时时间的超时事件的权重值之和未超出预设最大权重值时,将该超时事件成功加入定时器。
S205:当达到预设轮询周期时,第一CPU判断定时器中是否存在已达到超时时间的超时事件,如果是,则执行S206。
S206:对已达到超时时间的超时事件进行处理。
其中,S205和S206与上述实施例中的S101和S102相同,可参照理解,在此不再赘述。
值得注意的是,上述实施例并未限制S205必须在S204之后执行,事实上只要预设轮询周期达到,则可以执行S205。
为了避免通过信号通知的方式频繁中断报文转发系统中的报文接收和转发操作,本发明实施例采用轮询机制处理定时器中的超时事件。而报文转发系统中报文的接收、转发和定时器的处理需要共享同一时间片,可以预先设置用于处理报文的接收、转发的时间与用于处理定时器的时间的比例,由于定时器的预设最大权重值用于表征处理同时达到超时时间的超时事件的最大处理时长,所以可以根据预先设置的比例以及定时器的最大处理时长确定用于处理报文的接收、转发的时间,最终可以将用于处理报文的接收、转发的时间与定时器的最大处理时长之和确定为定时器的预设轮询周期。
实际应用中,可以对预先设置的用于处理报文的接收、转发的时间与用于处理定时器的时间的比例进行不断的优化,以使得报文转发系统中的收发包性能最佳,实现报文转发系统中用于处理报文的接收、转发的时间与用于处理定时器的时间片分配比例最佳,最终提高报文转发系统的整体性能。
本发明实施例提供的报文转发系统中的超时事件处理方法中,应用于多核报文转发系统中的第一CPU设置有独立的定时器,当达到预设轮询周期时,第一CPU对该定时器中已达到超时时间的超时事件进行处理,本发明基于轮询机制对定时器中的超时事件进行处理,能够降低对报文转发系统的收发包性能的影响。另外,本发明通过控制定时器中同时达到超时时间的超时事件的权重值之和不超过最大权重值,对加入到定时器中同时达到超时时间的超时事件的处理时长进行控制,避免长时间对超时事件进行处理而导致的收发包不及时,从而保证了报文转发系统的高性能和高健壮性。
由于在添加超时事件失败后将该超时事件直接丢弃的处理方式,可能会造成相对重要的超时事件被遗漏处理等情况的发生,为了避免上述情况的发生,本发明实施例提供了一种报文转发系统中的超时事件处理方法,参考图4,为本发明实施例提供的另一种报文转发系统中的超时事件处理方法的流程图。所述方法包括:
S401:第一CPU基于超时事件的权重系数和处理时长,预先确定各个超时事件的权重值。
S402:当所述第一CPU接收到待加入所述定时器的超时事件后,获取所述定时器中与所述超时事件同时达到超时时间的超时事件的当前权重总值。
S403:第一CPU判断当前权重总值与超时事件的权重值之和是否超出预设最大权重值,如果否,则执行S404;如果是,则执行S407。
S404:将该超时事件加入定时器。
S405:当达到预设轮询周期时,所述第一CPU判断定时器中是否存在已达到超时时间的超时事件,如果是,则执行S406。
S406:对已达到超时时间的超时事件进行处理。
S401-S406与S201-S206相同,可以参考理解,在此不再赘述。
S407:确定是否存在第二CPU,如果是,执行S408,否则执行S409;其中,第二CPU的定时器中与该超时事件同时达到超时时间的超时事件的当前权重总值与该超时事件的权重值之和小于预设最大权重值。
S408:将该超时事件转移至第二CPU。
本发明实施例中,为了避免相对重要的超时事件被遗漏处理,第一CPU 在确定当前权重总值与接收到的超时事件的权重值之和超出预设最大权重值后,确定是否存在第二CPU,其中,第二CPU的定时器中与该超时事件同时达到超时时间的超时事件的当前权重总值与该超时事件的权重值之和小于预设最大权重值。也就是说,第一CPU可以确定其他能够处理该超时事件的 CPU,即第二CPU,并将该超时事件转移至该第二CPU进行处理。
另外,第一CPU在超时事件添加失败后,将其转移至其他CPU进行处理,可以实现报文转发系统的多核之间的负载均衡。
实际应用中,由于定时器是每核独立资源,对于多核系统中的每个CPU,定时器中超时事件的添加、删除操作只能由本CPU处理,其他CPU无权进行任何写操作,但是可以进行读操作,具体的,每个CPU可以查询其他CPU的当前权重总值。
实际应用中,第一CPU在确定超时事件添加失败后,查询报文转发系统中其他CPU的定时器中与该超时事件同时达到超时时间的超时事件的当前权重总值,并确定是否存在当前权重总值与该超时事件的权重值之和未超过预设最大权重值的CPU,如果存在,则将该超时事件转移到其中一个CPU中进行处理,从而实现报文转发系统整体的负载均衡,提升多核系统性能,同时,也可以尽量避免超时事件的丢弃。
可选的,当存在多个当前权重总值与该超时事件的权重值之和未超过预设最大权重值的CPU时,可以将该超时事件转移到当前权重总值最小的CPU中进行处理,以最大程度的实现报文转发系统的负载均衡。
S409:根据该超时事件的优先级,确定对该超时事件的处理方式;其中,处理方式包括:将该超时事件的超时时间进行微调后加入定时器。
本发明实施例中,如果报文转发系统中不存在第二CPU,则第一CPU无法将该超时事件转移至其他CPU进行处理,此时,为了避免对超时事件的丢弃,还可以重新确定对该超时事件的处理方式。
实际应用中,可以根据该超时事件的优先级确定处理方式,如果优先级较高,可以将该超时事件的超时时间进行微调后加入定时器。例如,超时删除会话表事件的优先级较高,如果达到超时事件未及时处理该超时事件,则可能造成内存泄漏等严重后果,为此,本发明实施例可以在超时删除会话表事件添加失败后,将该超时删除会话表事件的超时时间进行微调,如将超时时间从3ms 调整到2ms,即在达到2ms后即处理该超时删除会话表事件,也可以避免造成内存泄漏等严重后果。
由于超时事件的超时时间的精度一般不是很高,所以在超时事件添加失败后,可以通过对该超时事件的超时时间进行微调,将该超时事件成功加入定时器。具体的,可以将超时事件的超时时间向前微调或者向后微调,以便将该超时事件成功加入定时器。
本发明实施例提供的报文转发系统中的超时事件处理方法中,在超时事件添加失败后,通过将该超时事件转移到其他CPU进行处理,有效避免超时事件被丢弃。另外,通过对超时事件的超时时间进行微调,确保将超时事件成功加入定时器,最终保证相对重要的超时事件能够及时被处理。
另外,本发明还提供了一种报文转发系统中的超时事件处理装置,参考图 5,为本发明实施例提供的一种报文转发系统中的超时事件处理装置的结构示意图,其中,所述报文转发系统应用于多核系统,所述多核系统包括第一CPU,所述第一CPU中设置有定时器,所述装置应用于所述第一CPU,所述定时器中同时达到超时时间的超时事件的权重值之和未超出预设最大权重值,所述预设最大权重值用于表征同时达到超时时间的超时事件的最大处理时长;所述装置包括:
第一判断模块501,用于当达到预设轮询周期时,判断所述定时器中是否存在已达到超时时间的超时事件;
处理模块502,用于在所述第一判断模块的结果为是时,对所述超时事件进行处理。
一种实现方式中,所述装置还可以包括:
获取模块,用于在接收到待加入所述定时器的超时事件后,获取所述定时器中与所述超时事件同时达到超时时间的超时事件的当前权重总值;
第二判断模块,用于判断所述当前权重总值与所述超时事件的权重值之和是否超出所述预设最大权重值;
加入模块,用于在所述第二判断模块的结果为否时,将所述超时事件加入所述定时器。
其中,所述超时事件的权重值由所述超时事件的权重系数和所述超时事件的处理时长确定,所述超时事件的权重系数与所述超时事件的优先级呈反比。
为了避免超时事件的丢弃,所述装置还可以包括:
第一确定模块,用于在所述第二判断模块的结果为是时,确定是否存在所述第二CPU,所述第二CPU的定时器中与所述超时事件具有同一超时时间的超时事件的当前权重总值小于所述预设最大权重值;
转移模块,用于在所述第一确定模块确定存在所述第二CPU时,将所述超时事件转移至所述第二CPU。
另外,所述装置还可以包括:
第二确定模块,用于在所述第一确定模块确定不存在所述第二CPU时,根据所述超时事件的优先级,确定对所述超时事件的处理方式;其中,所述处理方式包括:将所述超时事件的超时时间进行微调后加入所述定时器。
本发明实施例提供的报文转发系统中的超时事件处理装置能够应用于报文转发系统的任意一个CPU中,该CPU设置有独立的定时器,当达到预设轮询周期时,对该定时器中已达到超时时间的超时事件进行处理,本发明基于轮询机制对定时器中的超时事件进行处理,能够降低对报文转发系统的收发包性能的影响。另外,本发明通过控制定时器中同时达到超时时间的超时事件的权重值之和不超过最大权重值,对加入到定时器中同时达到超时时间的超时事件的处理时长进行控制,避免长时间对超时事件进行处理而导致的收发包不及时,从而保证了报文转发系统的高性能和高健壮性。
相应的,本发明实施例还提供一种报文转发系统中的超时事件处理设备,参见图6所示,可以包括:
处理器601、存储器602、输入装置603和输出装置604。不兼容对象之间的通信设备中的处理器601 的数量可以一个或多个,图6中以一个处理器为例。在本发明的一些实施例中,处理器601、存储器602、输入装置603和输出装置604可通过总线或其它方式连接,其中,图6中以通过总线连接为例。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行报文转发系统中的超时事件处理设备的各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置603可用于接收输入的数字或字符信息,以及产生与报文转发系统中的超时事件处理设备的用户设置以及功能控制有关的信号输入。
具体在本实施例中,处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现上述报文转发系统中的超时事件处理方法中的各种功能。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请实施例所提供的一种报文转发系统中的超时事件处理方法、装置及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种报文转发系统中的超时事件处理方法,其特征在于,所述报文转发系统应用于多核系统,所述多核系统包括第一CPU,所述第一CPU中设置有定时器,所述定时器中同时达到超时时间的超时事件的权重值之和未超出预设最大权重值,所述超时事件的权重值用于表征所述超时事件的处理时长,所述预设最大权重值用于表征处理同时达到超时时间的超时事件的最大处理时长;所述方法包括:
当达到预设轮询周期时,所述第一CPU判断所述定时器中是否存在已达到超时时间的超时事件;
如果所述第一CPU确定所述定时器中存在已达到超时时间的超时事件,则对所述超时事件进行处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一CPU接收到待加入所述定时器的超时事件后,获取所述定时器中与所述超时事件同时达到超时时间的超时事件的当前权重总值;
所述第一CPU判断所述当前权重总值与所述超时事件的权重值之和是否超出所述预设最大权重值;如果否,则将所述超时事件加入所述定时器。
3.根据权利要求1或2所述的方法,其特征在于,
所述超时事件的权重值由所述超时事件的权重系数和所述超时事件的处理时长确定,所述超时事件的权重系数与所述超时事件的优先级呈反比。
4.根据权利要求2所述的方法,其特征在于,所述多核系统还包括第二CPU;所述方法还包括:
当所述第一CPU确定所述当前权重总值与所述超时事件的权重值之和超出所述预设最大权重值时,确定是否存在第二CPU,所述第二CPU的定时器中与所述超时事件同时达到超时时间的超时事件的当前权重总值与该超时事件的权重值之和小于所述预设最大权重值;
如果存在所述第二CPU,则将所述超时事件转移至所述第二CPU。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述第一CPU确定不存在所述第二CPU时,根据所述超时事件的优先级,确定对所述超时事件的处理方式;
其中,所述处理方式包括:将所述超时事件的超时时间进行微调后加入所述定时器。
6.一种报文转发系统中的超时事件处理装置,其特征在于,所述报文转发系统应用于多核系统,所述多核系统包括第一CPU,所述第一CPU中设置有定时器,所述装置应用于所述第一CPU,所述定时器中同时达到超时时间的超时事件的权重值之和未超出预设最大权重值,所述超时事件的权重值用于表征所述超时事件的处理时长,所述预设最大权重值用于表征同时达到超时时间的超时事件的最大处理时长;所述装置包括:
第一判断模块,用于当达到预设轮询周期时,判断所述定时器中是否存在已达到超时时间的超时事件;
处理模块,用于在所述第一判断模块的结果为是时,对所述超时事件进行处理。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
获取模块,用于在接收到待加入所述定时器的超时事件后,获取所述定时器中与所述超时事件同时达到超时时间的超时事件的当前权重总值;
第二判断模块,用于判断所述当前权重总值与所述超时事件的权重值之和是否超出所述预设最大权重值;
加入模块,用于在所述第二判断模块的结果为否时,将所述超时事件加入所述定时器。
8.根据权利要求7所述的装置,其特征在于,所述多核系统还包括第二CPU;所述装置还包括:
第一确定模块,用于在所述第二判断模块的结果为是时,确定是否存在所述第二CPU,所述第二CPU的定时器中与所述超时事件同时达到超时时间的超时事件的当前权重总值与所述超时事件的权重值之和小于所述预设最大权重值;
转移模块,用于在所述第一确定模块确定存在所述第二CPU时,将所述超时事件转移至所述第二CPU。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于在所述第一确定模块确定不存在所述第二CPU时,根据所述超时事件的优先级,确定对所述超时事件的处理方式;其中,所述处理方式包括:将所述超时事件的超时时间进行微调后加入所述定时器。
10.一种报文转发系统中的超时事件处理设备,其特征在于,所述设备包括存储器和处理器,
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于运行所述程序代码,其中,所述程序代码运行时执行如权利要求1-5中任一项所述的报文转发系统中的超时事件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711080170.5A CN107977269B (zh) | 2017-11-06 | 2017-11-06 | 一种报文转发系统中的超时事件处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711080170.5A CN107977269B (zh) | 2017-11-06 | 2017-11-06 | 一种报文转发系统中的超时事件处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107977269A CN107977269A (zh) | 2018-05-01 |
CN107977269B true CN107977269B (zh) | 2020-12-01 |
Family
ID=62013113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711080170.5A Active CN107977269B (zh) | 2017-11-06 | 2017-11-06 | 一种报文转发系统中的超时事件处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107977269B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134537A (zh) * | 2019-05-05 | 2019-08-16 | 东软集团股份有限公司 | 多核系统中的会话表项超时处理方法、装置及多核系统 |
CN110138662B (zh) * | 2019-05-08 | 2021-09-14 | 东软集团股份有限公司 | 多核系统中的会话表项处理方法、装置及多核系统 |
CN110381032B (zh) * | 2019-06-24 | 2022-01-07 | 东软集团股份有限公司 | 一种多核系统中的会话表项处理方法、装置及相关产品 |
CN111949391A (zh) * | 2020-08-25 | 2020-11-17 | 北京天融信网络安全技术有限公司 | 基于多核架构的定时器实现方法、装置、设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719080B (zh) * | 2009-12-25 | 2014-03-26 | 北京网御星云信息技术有限公司 | 多核定时器实现方法及系统 |
KR101770587B1 (ko) * | 2011-02-21 | 2017-08-24 | 삼성전자주식회사 | 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템 |
CN102368736B (zh) * | 2011-11-10 | 2014-12-10 | 华为技术有限公司 | 一种报文发送方法和设备 |
CN102882810B (zh) * | 2012-10-26 | 2016-02-10 | 杭州迪普科技有限公司 | 一种报文快速转发方法及装置 |
CN103677976B (zh) * | 2013-12-09 | 2017-12-05 | 大唐移动通信设备有限公司 | 一种基于时间轮定时器的事件处理方法及装置 |
CN104219690B (zh) * | 2014-09-25 | 2017-12-12 | 北京北方烽火科技有限公司 | 一种异系统邻区关系的测量控制方法及基站 |
CN104468381B (zh) * | 2014-12-01 | 2017-05-10 | 国家计算机网络与信息安全管理中心 | 一种多域流规则匹配的实现方法 |
CN104618429B (zh) * | 2014-12-23 | 2018-07-20 | 华为技术有限公司 | 一种信息交互的方法及装置 |
CN104901898B (zh) * | 2015-06-08 | 2018-08-03 | 东软集团股份有限公司 | 一种负载均衡方法及装置 |
US10277477B2 (en) * | 2015-09-25 | 2019-04-30 | Vmware, Inc. | Load response performance counters |
CN106020333B (zh) * | 2016-05-20 | 2019-03-05 | 京信通信系统(中国)有限公司 | 多核定时器实现方法和多核系统 |
-
2017
- 2017-11-06 CN CN201711080170.5A patent/CN107977269B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107977269A (zh) | 2018-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977269B (zh) | 一种报文转发系统中的超时事件处理方法、装置及设备 | |
EP2701074B1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
KR101651246B1 (ko) | 멀티-코어 아키텍처들을 위한 사용자-레벨 인터럽트 메커니즘 | |
EP0617361B1 (en) | Scheduling method and apparatus for a communication network | |
US6633942B1 (en) | Distributed real-time operating system providing integrated interrupt management | |
EP3534255A1 (en) | I/o request scheduling method and device | |
CN111045810B (zh) | 一种任务调度处理方法及装置 | |
CN110858843B (zh) | 业务请求处理方法、装置及计算机可读存储介质 | |
WO2022068697A1 (zh) | 任务调度方法及装置 | |
CN107797848B (zh) | 进程调度方法、装置和主机设备 | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN111104227A (zh) | 一种K8s平台的资源控制方法、装置及相关组件 | |
CN112383585A (zh) | 消息处理系统、方法及电子设备 | |
JP2020080059A (ja) | 評価装置、評価方法および評価プログラム | |
CN111538572A (zh) | 任务处理方法、装置、调度服务器及介质 | |
CN116414534A (zh) | 任务调度方法、装置、集成电路、网络设备及存储介质 | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN111427673B (zh) | 一种负载均衡方法、装置及设备 | |
CN110912949B (zh) | 位点提交方法和装置 | |
CN116048756A (zh) | 一种队列调度方法、装置及相关设备 | |
CN108718285B (zh) | 云计算集群的流量控制方法、装置及服务器 | |
CN111796949A (zh) | 通讯任务处理方法、装置、设备及存储介质 | |
CN111258757A (zh) | 任务自动编排方法、装置、计算机设备以及存储介质 | |
CN115174689A (zh) | 边缘节点的访问处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |