一种异常处理方法及装置与流程

文档序号:20917171发布日期:2020-05-29 13:41阅读:176来源:国知局
一种异常处理方法及装置与流程

本申请涉及计算机网络领域,尤其涉及一种异常处理方法及装置。



背景技术:

计算机网络中,网络设备通常可以提供路由、链路聚合、会话管理等多种业务功能,为了保证上述多种业务功能在异常状态下能够及时恢复正常,网络设备中通常对应提供各种异常处理功能。

在实际应用中,在多处理器的网络设备环境下,上述多种自检功能由于各自独立调用处理器,往往出现个别处理器被重复调用、负载过重的问题,进而导致异常处理过程受阻,业务功能受到影响。



技术实现要素:

有鉴于此,本申请公开了一种异常处理方法和装置。

根据本申请实施例的第一方面,公开了一种异常处理方法,应用于包含多个处理器的网络设备,所述多个处理器被分别分配了对应的任务队列;其中,不同的任务队列分别对应不同的任务特性;所述方法包括:

确定待执行的异常处理任务的任务特性;

根据待执行的异常处理任务的任务特性,确定与所述待执行的异常处理任务对应的目标任务队列;

将所述待执行的异常处理任务添加至对应的目标任务队列,以由所述目标任务队列对应的处理器执行所述异常处理任务。

根据本申请实施例的第二方面,公开了一种异常处理装置,应用于包含多个处理器的网络设备,所述多个处理器被分别分配了对应的任务队列;其中,不同的任务队列分别对应不同的任务特性;所述装置包括:

任务特性确定模块,确定待执行的异常处理任务的任务特性;

目标任务队列确定模块,根据待执行的异常处理任务的任务特性,确定与所述待执行的异常处理任务对应的目标任务队列;

异常处理任务调度模块,将所述待执行的异常处理任务添加至对应的目标任务队列,以由所述目标任务队列对应的处理器执行所述异常处理任务。

在以上技术方案中,由于将任务特性不同的异常处理任务分配到了不同任务队列中,进而可以由对应的处理器执行任务队列中的异常处理任务,保证了处理器的合理调度,减少了个别处理器被重复调用导致的处理器负载过重问题,避免了异常处理过程受阻、业务功能受影响的状况。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。

图1是本说明书示出的一种异常处理方法的流程示意图;

图2是本说明书示出的一种对业务模块的工作状态进行检测的示意图;

图3是本说明书示出的一种多任务队列处理的示意图;

图4是本说明书示出的一种异常处理装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的系统和方法的例子。

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

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

在计算机网络中,一些网络设备通常可以提供路由、链路聚合、会话管理等多种业务功能,为了保证上述多种业务功能在异常状态下能够及时恢复正常,网络设备中通常对应提供各种异常处理功能。

然而在实际应用中,在多处理器的网络设备环境下,由于上述多种自检功能通常缺少规范、统一的管理,会各自独立调用处理器,因此往往出现个别处理器被重复调用、负载过重的问题,进而导致异常处理的过程受阻,业务功能也会因此受到影响。

例如,需要长时间处理器计算资源的异常处理功能a当前占用cpu0进行处理工作,此时假设急需执行的异常处理功能b也调用了cpu0,在此种情况下,异常处理功能b则会由于cpu0被占用而被迫等待,导致与之对应的、出现异常的业务模块无法及时恢复正常,业务功能也就无法正常提供。

基于此,本说明书提出一种为网络设备中的多处理器分配对应的任务队列,并将具有不同任务特性的异常处理任务分配至不同的任务队列中,以由对应的处理器执行的技术方案。

在实现时,首先可以确定各处理器、各任务队列以及各种任务特性之间的对应关系;在此基础上,再确定待执行的异常处理任务的任务特性;之后,即可根据任务特性此为该待执行的异常处理任务分配目标任务队列;将该待执行的异常处理任务添加至上述目标任务队列中后,即可由对应的处理器执行。

在以上技术方案中,一方面,由于待执行的异常处理任务都被分配了目标任务队列,并由对应的处理器执行;因此,异常处理任务最终可以完成,解决网络设备的业务功能异常问题。

另一方面,由于将任务特性不同的异常处理任务分配到了不同任务队列中,进而可以由对应的处理器执行任务队列中的异常处理任务,保证了处理器的合理调度,减少了个别处理器被重复调用导致的处理器负载过重问题,避免了异常处理过程由于处理器负载过重而受阻、业务功能受影响的状况。

下面通过具体实施例并结合具体的应用场景对本申请进行描述。

请参考图1,图1是本说明书示出的一种异常处理方法的流程示意图;该方法应用于包含多个处理器的网络设备,所述多个处理器被分别分配了对应的任务队列;其中,不同的任务队列分别对应不同的任务特性;该方法包括以下步骤:

s101,确定待执行的异常处理任务的任务特性;

s102,根据待执行的异常处理任务的任务特性,确定与所述待执行的异常处理任务对应的目标任务队列;

s103,将所述待执行的异常处理任务添加至对应的目标任务队列,以由所述目标任务队列对应的处理器执行所述异常处理任务。

上述网络设备,可以是路由器、防火墙等专用网络设备,也可以是由具有网卡的用户终端(如pc等)配合相关软件执行功能的兼容网络设备;例如,上述网络设备既可以是诸如框式交换机的大型专用网络设备,也可以是开启网络共享热点功能的智能手机。

上述处理器,可以是通用的中央处理器cpu,也可以是其他具有对网络信息进行处理功能的处理器例如被编程的fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列)等等;在一些情况下,网络设备的处理器也可以同时具有上述cpu和fpga。

上述任务队列,被分配至上述多处理器中的多于一个的处理器,即,各任务队列中的任务,将由对应的处理器执行;例如,cpu0被分配到了任务队列a,则任务队列a中的任务a1、a2、a3均将由cpu0执行。

上述任务特性,指待执行的异常处理任务与处理器调度相关的特性;例如,某异常处理任务对处理器算力的预计消耗为x,则“对处理器算力的预计消耗为x”即可记为该异常处理任务的特性;类似的,在多种异常处理任务之中的优先级,可以容忍的等待时间等等,都可以作为刻画异常处理任务的任务特性的因素。在本技术方案中,将任务特性与任务队列进行对应,保证被分配到同一任务队列中的异常处理任务,都具有相同的任务特性,因此有利于处理器进行针对性的优化。

在本说明书中,用于确定异常处理任务的任务特性的评价因素可以视具体需求和情况而定;例如,对于多线程要求较高的任务而言,所需的线程数量即可以作为上述评价因素;而对于时延要求较高的任务而言,对于延时的容忍时长则可以作为上述评价因素。

在示出的一种实施方式中,上述异常处理任务的任务特性的评价因素可以包括下列任意一种或者多种的组合:对应的业务模块;优先级;处理器消耗量;所需线程数。

例如,对于路由设备而言,有必要特别指定一个处理器专用于处理路由表相关的异常处理任务,因此,以对应的业务模块即可以作为重要的评价因素,以筛选出对应于路由表业务的异常处理任务。

在本说明书中,异常处理任务可以来自于设备的自我检测结果;针对于该网络设备中运行的业务模块,上述自我检测过程可以针对性确定这些业务模块的工作状态,并以此确定是否需要发起异常处理任务。

在示出的一种实施方式中,针对于上述网络设备中运行的若干待检测的业务模块,可以确定其中的业务模块的工作状态是否处于异常状态;如果确认某业务模块的工作状态异常,则可以对应该业务模块确定异常处理任务;例如,如果检测到诸多业务模块中的会话表业务模块的工作状态出现异常,则即可对应会话表业务模块确定会话表恢复这一异常处理任务。

在本说明书中,上述检测某业务模块的工作状态这一过程,可以以多线程形式并行运行;具体而言,可以由多个处理器并行处理,也可以由单个处理器以多线程模式进行处理;而相关技术人员可以依据实际情况决定采用何种运行方式;例如,在检测过程对计算性能要求不高的情况下,上述针对多个业务模块的并行检测过程,可以指派单个处理器以多线程模式进行处理,以达到充分利用单处理器计算能力,并减少对其他处理器占用的效果。

在本说明书中,上述检测某业务模块的工作状态的过程,可以由处理器循环执行;具体而言,可以指定循环时间间隔,也可以根据工作状态异常的发生频度等信息,自动调整循环检测时间间隔,对于频繁出现异常的模块,采取较为激进的高频检测,而对于较为稳定、长时间未出现异常的模块,可以适当降低对应的检测频率;具体采用何种持续性检测策略,技术人员可以根据具体需求确定,本说明书无需进行具体限定。

在本说明书中,对于循环检测业务模块的工作状态,可以设立时间阈值和/或次数阈值等等各种判断逻辑,以期减少异常误报的情况;例如,可以指定检测到某业务模块工作状态异常的持续时间超过预设的时间阈值后,确定该业务模块的工作状态确实处于异常状态,需要对应执行异常处理任务。

在示出的一种实施方式中,可以以多线程的方式,对若干待检测的业务模块分别进行工作状态循环检测;如果检测到任一所述待检测的业务模块的工作状态处于异常的次数,大于预设的次数阈值,即可确定该待检测的业务模块工作状态异常。

请参见图2,图2为本说明书示出的一种对业务模块的工作状态进行检测的示意图;在图2所示的例子中,对于路由表业务模块、链路聚合业务模块、会话管理业务模块等诸多模块的工作状态检测以多线程形式执行,并只有在检测到异常的次数达到两次时,才会确定对应的业务模块处于异常状态,并进一步确定对应的异常处理任务;采用此种方案,一方面,可以充分利用硬件的多线程处理能力,提高运行效率,另一方面,双重检查能够较大程度上避免误报异常状态的问题。

可以理解的是,根据所确定的业务模块异常信息,确定对应的异常处理任务的过程,可以通过查询预设的对应关系表,也可以向维护人员发出告警,并接受用于指示对应的异常处理任务的指令,又或者根据历史记录,自动分析可能有效的解决方案,确定对应的异常处理任务;具体如何确定对应的异常处理任务,本说明书无需进行具体限定。

在本说明书中,可以进行工作状态检测、并确定对应的异常处理任务的业务模块可以根据网络设备的硬件条件以及功能需求确定,本领域技术人员可以参考相关技术以确定业务模块的工作状态检测方法,以及确定其工作状态出现异常时对应确定的异常处理任务。

在示出的一种实施方式中,可以对生成树业务模块进行工作状态检测,并在其工作状态异常时确定对应的异常处理任务;具体而言,当组网中存在环路时,生成树协议依据网络拓扑协商得到各个端口的角色,并根据端口的角色为其赋予阻塞(blocking)或转发(forwarding)链路状态,并将该状态下发给端口的底层芯片,以解决组网环路问题;因此,对应该业务模块,可以通过检验协商出的各角色和底层的链路状态是否匹配的方式,确定其工作状态是否存在异常;如果存在异常,则可以确定对应的异常处理任务为初始化生成树状态机,并重新协商下发各个端口的角色。

在示出的一种实施方式中,可以对链路聚合业务模块进行工作状态检测,并在其工作状态异常时确定对应的异常处理任务;具体而言,由于链路聚合是将多个链路聚合在一起形成一个逻辑上的聚合组,使用链路聚合服务的上层实体将同一聚合组内的多条物理链路视为一条逻辑链路,对流量进行分流以增加可用带宽;因此,链路聚合业务模块正常工作时会选举出活跃口,活跃口列表参与流量转发分流,而此活跃口列表可以作用在cpu、网络芯片、硬件fpga;因此,链路聚合业务模块可以通过校验cpu、网络芯片、fpga三方的活跃口表是否一致,确定其工作状态是否异常;如果存在异常,则可以确定对应的异常处理任务为根据cpu的端口活跃表重新更新网络芯片和fpga的端口活跃表。

在示出的一种实施方式中,可以对特征库业务模块进行工作状态检测,并在其工作状态异常时确定对应的异常处理任务;具体而言,网络设备中的许多报文识别功能依赖于特征库编译出的识别引擎,其正常工作时,编译出的识别引擎与特征库应保持一致;因此,可以通过校验编译出的识别引擎与特征库应是否保持一致,确定特征库业务模块的工作状态是否存在异常;如果存在异常,则可以确定对应的异常处理任务为,由特征库重新编译识别引擎,并下发至报文识别功能。

在本说明书中,可以针对待执行的异常处理任务,确定其任务特性;具体而言,上述确定待执行的异常处理任务的任务特性的方式,可以是通过对异常处理任务即将进行的操作进行分析和预测而确定任务特性,也可以是通过分析同类异常处理任务被执行的历史记录,确定其任务特性;本说明书无需进行具体限定。

在示出的一种实施方式中,可以通过查询包含着异常处理任务与其任务特性的对应关系的映射表,以确定该待执行的异常处理任务的任务特性;具体而言,可以通过对异常处理任务编码的形式以便查表,也可以通过特定的特征提取算法,以从该待执行的异常处理任务中提取的特征,查询到其任务特性。

例如,系统中预设如下表所示的对应关系表,编码为“0x01”的、关于下发路由表的异常处理任务被确定后,在包含异常处理任务编号和异常处理任务的任务特性的对应关系表中,即可查询到其任务特性“对cpu消耗较大”。

在本说明书中,在确定待执行的异常处理任务的任务特性后,即可根据该待执行的异常处理任务的任务特性,确定与该待执行的异常处理任务对应的目标任务队列;依前文所述,任务特性与任务队列之间可以存在对应关系,因此,可以将与待执行的异常处理任务的任务特性相对应的任务队列,确定为目标任务队列。

如前所述,异常处理任务的任务特性的评价因素可以包括多种,对于不同异常处理任务而言,其评价的角度也可能不同,但依然可以确定目标任务队列;例如,前述的生成树业务模块对应的异常处理任务,与链路聚合业务模块对应的异常处理任务,对任务的即时性有较高要求,因而上述两者可以将高实时性任务队列作为其目标任务队列;又例如,上述特征库业务模块对应的异常处理任务,由于需要进行编译,因此会大量消耗cpu算力,故可以将高cpu消耗任务队列确定为其目标工作队列。

在本说明书中,在确定与待执行的异常处理任务相对应的目标任务队列后,可以将该待执行的异常处理任务添加至该目标任务队列,如前所述,该目标任务队列中的所有任务将会由对应的处理器执行,因此,至此实现了根据待执行的异常处理任务的任务特性,调度所使用的处理器的目标。可以理解的是,上述任务队列并不一定与处理器绝对一一对应,可以将一个队列中的任务分配给多个处理器执行,也可以由支持多线程处理的处理器接收多个队列的任务,具体如何对应可以根据具体需求具体设置,本说明书无需具体限定;

例如,一个对应于“需要两个线程并行处理”这一任务特性的任务队列,对应的处理器就可以是两个处理器;而两个对应于“可以运行在逻辑核心中”这一任务特性的任务队列,则可以对应于一个物理处理器中的两个逻辑核心。

请参见图3,图3是本说明书示出的一种多任务队列处理的示意图;在本例中,有三个异常处理任务,其任务特性分别被确定为“路由表相关”、“高优先级”和“高cpu消耗”,因此,三者分别被添加至与其任务特性相对应的“路由表相关”、“高优先级”和“高cpu消耗”三个任务队列中,并分别由对应的cpu0、cpu1、cpu2执行;此外,可以理解的,三个任务队列既可以是空队列,也可以存在通过相同方式(即,任务特性相对应,如任务特性均为“路由表相关”)添加至对应任务队列中的其他的异常处理任务。

本说明书实施例还提供了一种异常处理装置,应用于包含多个处理器的网络设备,所述多个处理器被分别分配了对应的任务队列;其中,不同的任务队列分别对应不同的任务特性。

请参见图4,图4为本说明书示出的一种异常处理装置的结构示意图,该装置包括:

任务特性确定模块401,确定待执行的异常处理任务的任务特性;

目标任务队列确定模块402,根据待执行的异常处理任务的任务特性,确定与所述待执行的异常处理任务对应的目标任务队列;

异常处理任务调度模块403,将所述待执行的异常处理任务添加至对应的目标任务队列,以由所述目标任务队列对应的处理器执行所述异常处理任务。

在本说明书中,该装置还可以包括异常处理任务确定模块,以针对上述网络设备中运行的工作状态异常的业务模块,确定对应的异常处理任务;例如,针对于路由表业务模块异常的情况,可以确定对应的异常处理任务为重新下发路由表。

在示出的一种实施方式中,针对上述网络设备中运行的若干待检测业务模块,该异常处理任务确定模块可以确定任一所述业务模块的工作状态是否处于异常状态,并在确定其处于异常状态的情况下,进一步确定对应的异常处理任务。

在本说明书中,上述异常处理任务确定模块可以通过并行、循环的方式针对多个待检测业务模块确定对应的异常处理任务;其中,确定待检测业务模块的工作状态是否存在异常的逻辑可以根据具体需求进一步设定,本说明书不作具体限定。

在示出的一种实施方式中,上述异常处理任务确定模块可以进一步以多线程方式,对若干待检测的业务模块分别进行工作状态循环检测;若检测到任一待检测的业务模块的工作状态处于异常的次数,大于预设的次数阈值,则可以确定该待检测的业务模块工作状态异常。

在本说明书中,任务特性确定模块401可以针对待执行的异常处理任务,确定其任务特性;具体而言,上述确定待执行的异常处理任务的任务特性的方式,可以是通过对异常处理任务即将进行的操作进行分析和预测而确定任务特性,也可以是通过分析同类异常处理任务被执行的历史记录,确定其任务特性;本说明书无需进行具体限定。

在示出的一种实施方式中,任务特性确定模块401可以通过查询包含异常处理任务与任务特性对应关系的映射表的方式,确定待执行的异常处理任务的任务特性。

在本说明书中,用于确定异常处理任务的任务特性的评价因素可以视具体需求和情况而定;本说明书无需进行具体限定。

在示出的一种实施方式中,对于上述异常处理装置而言,上述异常处理任务的任务特性的评价因素可以包括下列任意一种或者多种的组合:对应的业务模块;优先级;处理器消耗量;所需线程数。

在本说明书中,在确定待执行的异常处理任务的任务特性后,目标任务队列确定模块402即可根据该待执行的异常处理任务的任务特性,确定与该待执行的异常处理任务对应的目标任务队列;依前文所述,任务特性与任务队列之间可以存在对应关系,因此,可以将与待执行的异常处理任务的任务特性相对应的任务队列,确定为目标任务队列。

在本说明书中,在确定与待执行的异常处理任务相对应的目标任务队列后,异常处理任务调度模块403可以将该待执行的异常处理任务添加至该目标任务队列,如前所述,该目标任务队列中的所有任务将会由对应的处理器执行,因此,至此实现了根据待执行的异常处理任务的任务特性,调度所使用的处理器的目标。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

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