CN109144736A - 一种输出警告消息的方法及装置 - Google Patents
一种输出警告消息的方法及装置 Download PDFInfo
- Publication number
- CN109144736A CN109144736A CN201811159499.5A CN201811159499A CN109144736A CN 109144736 A CN109144736 A CN 109144736A CN 201811159499 A CN201811159499 A CN 201811159499A CN 109144736 A CN109144736 A CN 109144736A
- Authority
- CN
- China
- Prior art keywords
- message
- processing
- hardware buffer
- buffer
- processor
- 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.)
- Pending
Links
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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
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
本申请实施例提供了一种输出警告消息的方法及装置,属于计算机技术领域。所述方法应用于处理器,所述处理器包括多个硬件缓冲区buffer,所述硬件buffer中设置有报文标记字段,所述方法包括:接收待处理的第一报文,将所述第一报文存储在第一硬件buffer中;当按照预设的第一报文处理流程,对所述第一报文进行第一目标处理动作之后,在所述报文标记字段中,记录所述第一目标处理动作对应的标识字符;当检测到所述第一硬件buffer在预设时长内未被释放时,根据所述第一硬件buffer当前的报文标记字段,输出警告消息。采用本申请,能够定位出造成硬件buffer释放不及时的原因。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种输出警告消息的方法及装置。
背景技术
目前,网络设备接收到报文后,网络设备会按照预设的报文处理流程,对报文进行业务处理。具体的处理过程为:当网络设备接收到报文后,网络设备的业务应用会向处理器传输该报文对应的硬件buffer(缓冲区)请求指令。处理器的缓存资源可以预先划分为多个硬件buffer,处理器在接收到硬件buffer请求指令后,可以为该报文分配一个未使用的硬件buffer,并将接收到的报文存储到该硬件buffer中。之后,处理器还会向业务应用传输响应消息,该响应消息中携带有该硬件buffer的地址信息。业务应用中的各业务模块可以根据该硬件buffer的地址信息,从该硬件buffer中读取该报文,并按照报文处理流程,依次对该报文进行业务处理(比如安全分析等)。业务应用对该报文进行业务处理后,会向处理器传输资源回收指令,该资源回收指令中携带有该硬件buffer的地址信息。处理器接收到该资源回收指令后,释放该地址信息对应的硬件buffer。
然而,有时硬件buffer未能及时释放,导致存储资源不足,而技术人员无法定位造成硬件buffer释放不及时的原因,从而无法解决该问题。
发明内容
本申请实施例的目的在于提供一种输出警告消息的方法及装置,以实现在硬件buffer释放不及时,自动定位造成硬件buffer释放不及时的原因。具体技术方案如下:
第一方面,提供了一种输出警告消息的方法,所述方法应用于处理器,所述处理器包括多个硬件缓冲区buffer,所述硬件buffer中设置有报文标记字段,所述方法包括:
接收待处理的第一报文,将所述第一报文存储在第一硬件buffer中;
当按照预设的第一报文处理流程,对所述第一报文进行第一目标处理动作之后,在所述报文标记字段中,记录所述第一目标处理动作对应的标识字符;
当检测到所述第一硬件buffer在预设时长内未被释放时,根据所述第一硬件buffer当前的报文标记字段,输出警告消息。
可选的,所述在所述报文标记字段中,记录所述第一目标处理动作对应的标识字符,包括:
根据预设的处理动作和处理标识位的对应关系,确定所述第一目标处理动作对应的第一处理标识位;
在所述报文标记字段的所述第一处理标识位中,记录所述第一目标处理动作对应的标识字符。
可选的,所述根据当前的报文标记字段,输出警告消息,包括:
在当前的报文标记字段中记录的标识字符中,确定记录时间与当前时间最接近的表示处理动作完成的目标标识字符,并确定所述目标标识字符所属的第二处理标识位;
根据预设的处理标识位和错误提示信息对应关系,确定所述第二处理标识位对应的错误提示信息;
输出携带有所述错误提示信息的警告消息。
可选的,所述根据当前的报文标记字段,输出警告消息,包括:
获取当前的报文标记字段;
输出警告消息,所述警告消息包含所述当前的报文标记字段。
可选的,所述方法还包括:
当按照所述预设的第一报文处理流程,完成对所述第一报文的全部处理动作之后,向业务进程传输报文处理请求,所述报文处理请求中携带有所述第一硬件buffer的标识。
可选的,所述报文标记字段中还包括释放标识位;
所述方法还包括:
接收业务进程传输的释放指令,所述释放指令中携带有所述第一硬件buffer的标识;
判断所述释放标识位中的标识字符是否为第一预设标识字符,所述第一预设标识字符表示所述第一硬件buffer未被释放;
如果所述释放标识位中的标识字符不为所述第一预设标识字符,则丢弃所述释放指令;
如果所述释放标识位中的标识字符为所述第一预设标识字符,则释放所述第一硬件buffer,并将所述第一预设标识字符修改为第二预设标识字符,所述第二预设标识字符表示所述第一硬件buffer已被释放。
可选的,所述方法还包括:
向业务进程传输查询消息;
接收所述业务进程传输的响应消息,所述响应消息中携带有所述业务进程中当前使用的第二硬件buffer的标识;
在本地未被释放的硬件buffer中,确定除所述第二硬件buffer以外的第三硬件buffer,释放所述第三硬件buffer。
可选的,所述方法包括:
当检测所述处理器的缓存利用率超过预设阈值时,将本地的存储资源池中预设大小的未使用的存储空间设置为备用存储空间;
当接收到待处理的第二报文时,将所述第二报文存储在所述备用存储空间中。
第二方面,提供了一种输出警告消息的方法,所述方法包括:
接收处理器传输的报文处理请求,所述报文处理请求中携带有第一硬件buffer的标识,所述第一硬件buffer中设置有报文标记字段;
根据所述第一硬件buffer的标识,读取所述第一硬件buffer中存储的第一报文;
当按照预设的第二报文处理流程,对所述第一报文进行第二目标处理动作之后,在所述报文标记字段中,记录所述第二目标处理动作对应的标识字符。
可选的,所述在所述报文标记字段中,记录所述第二目标处理动作对应的标识字符,包括:
根据预设的处理动作和处理标识位的对应关系,确定所述第二目标处理动作对应的第三处理标识位;
在所述报文标记字段的所述第三处理标识位中,记录所述第二目标处理动作对应的标识字符。
可选的,所述方法还包括:
接收处理器传输的查询消息;
确定当前使用的第二硬件buffer的标识,并向所述处理器传输的响应消息,所述响应消息中携带有所述第二硬件buffer的标识。
第三方面,提供了一种输出警告消息的装置,所述装置应用于处理器,所述处理器包括多个硬件缓冲区buffer,所述硬件buffer中设置有报文标记字段,所述装置包括:
第一存储模块,用于接收待处理的第一报文,将所述第一报文存储在第一硬件buffer中;
记录模块,用于当按照预设的第一报文处理流程,对所述第一报文进行第一目标处理动作之后,在所述报文标记字段中,记录所述第一目标处理动作对应的标识字符;
输出模块,用于当检测到所述第一硬件buffer在预设时长内未被释放时,根据所述第一硬件buffer当前的报文标记字段,输出警告消息。
可选的,所述记录模块,具体用于:
根据预设的处理动作和处理标识位的对应关系,确定所述第一目标处理动作对应的第一处理标识位;
在所述报文标记字段的所述第一处理标识位中,记录所述第一目标处理动作对应的标识字符。
可选的,所述输出模块,具体用于:
在当前的报文标记字段中记录的标识字符中,确定记录时间与当前时间最接近的表示处理动作完成的目标标识字符,并确定所述目标标识字符所属的第二处理标识位;
根据预设的处理标识位和错误提示信息对应关系,确定所述第二处理标识位对应的错误提示信息;
输出携带有所述错误提示信息的警告消息。
可选的,所述输出模块,具体用于:
获取当前的报文标记字段;
输出警告消息,所述警告消息包含所述当前的报文标记字段。
可选的,所述装置还包括:
第一传输模块,用于当按照所述预设的第一报文处理流程,完成对所述第一报文的全部处理动作之后,向业务进程传输报文处理请求,所述报文处理请求中携带有所述第一硬件buffer的标识。
可选的,所述报文标记字段中还包括释放标识位;
所述装置还包括:
接收模块,用于接收业务进程传输的释放指令,所述释放指令中携带有所述第一硬件buffer的标识;
判断模块,用于判断所述释放标识位中的标识字符是否为第一预设标识字符,所述第一预设标识字符表示所述第一硬件buffer未被释放;
丢弃模块,用于如果所述释放标识位中的标识字符不为所述第一预设标识字符,则丢弃所述释放指令;
释放模块,用于如果所述释放标识位中的标识字符为所述第一预设标识字符,则释放所述第一硬件buffer,并将所述第一预设标识字符修改为第二预设标识字符,所述第二预设标识字符表示所述第一硬件buffer已被释放。
可选的,所述装置还包括:
第二传输模块,用于向业务进程传输查询消息;
第二接收模块,用于接收所述业务进程传输的响应消息,所述响应消息中携带有所述业务进程中当前使用的第二硬件buffer的标识;
确定模块,用于在本地未被释放的硬件buffer中,确定除所述第二硬件buffer以外的第三硬件buffer,释放所述第三硬件buffer。
可选的,所述装置包括:
设置模块,用于当检测所述处理器的缓存利用率超过预设阈值时,将本地的存储资源池中预设大小的未使用的存储空间设置为备用存储空间;
第二存储模块,用于当接收到待处理的第二报文时,将所述第二报文存储在所述备用存储空间中。
第四方面,提供了一种输出警告消息的装置,其特征在于,所述装置包括:
第一接收模块,用于接收处理器传输的报文处理请求,所述报文处理请求中携带有所述第一硬件buffer的标识,所述第一硬件buffer中设置有报文标记字段;
读取模块,用于根据所述第一硬件buffer的标识,读取所述第一硬件buffer中存储的第一报文;
记录模块,用于当按照预设的第二报文处理流程,对所述第一报文进行第二目标处理动作之后,在所述报文标记字段中,记录所述第二目标处理动作对应的标识字符。
可选的,所述记录模块,具体用于:
根据预设的处理动作和处理标识位的对应关系,确定所述第二目标处理动作对应的第三处理标识位;
在所述报文标记字段的所述第三处理标识位中,记录所述第二目标处理动作对应的标识字符。
可选的,所述装置还包括:
第二接收模块,用于接收处理器传输的查询消息;
传输模块,用于确定当前使用的第二硬件buffer的标识,并向所述处理器传输的响应消息,所述响应消息中携带有所述第二硬件buffer的标识。
第五方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面或第二方面的方法步骤。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面的方法步骤。
第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面的方法步骤。
本申请实施例提供的一种输出警告消息的方法及装置,该方法可以应用于处理器,处理器可以包括多个硬件缓冲区buffer,各硬件buffer中设置有报文标记字段。当处理器接收到待处理的第一报文后,将第一报文存储在第一硬件buffer中。当处理器按照预设的第一报文处理流程,对第一报文进行第一目标处理动作之后,在报文标记字段中,记录第一目标处理动作对应的标识字符;当检测到第一硬件buffer在预设时长内未被释放时,根据第一硬件buffer当前的报文标记字段,输出警告消息。这样,当第一硬件buffer未能及时释放时,处理器可以自动定位造成释放不及时的原因,并输出警告消息。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种输出警告消息的方法的流程图;
图2为本申请实施例提供的一种输出警告消息的方法的流程图;
图3为本申请实施例提供的一种释放硬件buffer的方法的流程图;
图4为本申请实施例提供的一种释放硬件buffer的方法的流程图;
图5为本申请实施例提供的一种输出警告消息的方法示例的流程图;
图6为本申请实施例提供的一种输释放硬件buffer的方法示例的流程图;
图7为本申请实施例提供的一种硬件buffer容错机制的方法示例的流程图;
图8为本申请实施例提供的一种输出警告消息的装置的结构示意图;
图9为本申请实施例提供的一种输出警告消息的装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种输出警告消息的方法,该方法可以应用于网络设备,该网络设备可以是安全设备(比如防火墙设备)、也可以是路由设备、交换机或负载均衡设备等。网络设备的处理器中可以安装有驱动程序,该处理器还可以安装有业务应用,故本申请中所说的驱动程序和业务应用为安装在处理器中的程序,为内核态的程序。当处理器上电运行后,该处理器载入驱动程序和业务应用,分别通过驱动进程和业务进程执行处理流程。
通常情况下,业务应用具有多个业务模块,每个业务模块可以有对应的子业务进程,各业务模块可以通过对应的子业务进程执行处理动作。例如:业务应用包括ACL(AccessControl List,访问控制列表)业务模块和ROUTE(路径)业务模块,则业务进程可以包括ACL子业务进程和ROUTE子业务进程。ACL业务模块可以用于报文执行过滤匹配和QOS(Qualityof Service,服务质量)处理等处理动作,可以通过ACL子业务进程执行处理动作。ROUTE业务模块可以用于对报文执行路径规划和生成路由表项等处理动作,可以通过ROUTE子业务进程执行处理动作。
该处理器具有预先分配的存储资源(可称为存储资源池),存储资源池中可以设置有多个AURA,AURA可以认为是存储块,例如内存中的一个存储块。每个AURA包含多个硬件buffer(缓冲区)。其中,不同的AURA可以对应不同类型的处理功能,例如,可以设置有用于接收报文的AURA,该AURA中可以存储接收到的报文;还可以设置有用于调度报文的AURA,该AURA可以用于存储网络设备中需要被调度的报文,还可以设置有用于发送报文的AURA,该AURA用于为报文发送提供存储资源。本申请实施例中的硬件buffer,可以是指用于接收报文的AURA中的硬件buffer。
本申请实施例中,每个硬件buffer中设置有报文标记字段,处理器接收到待处理的第一报文后,将第一报文存储在第一硬件buffer中,当按照预设的第一报文处理流程,对第一报文进行第一目标处理动作之后,在报文标记字段中,记录第一目标处理动作对应的标识字符,从而对报文流转路径进行标记。当检测到第一硬件buffer在预设时长内未被释放时,可以根据第一硬件buffer当前的报文标记字段,输出警告消息,以便技术人员快速定位导致硬件buffer未能及时释放的原因,从而解决该问题。
如图1所示,本申请实施例提供了一种处理器执行上述输出警告消息的方法时的处理流程图,该方法具体可以由处理器中的驱动进程执行,具体可以包括以下步骤。
步骤101,接收待处理的第一报文,将第一报文存储在第一硬件buffer中。
本申请实施例中,网络设备可以接收终端或其他网络设备发送的报文(即待处理的第一报文),网络设备可以确定当前未使用的硬件buffer,并在未使用的硬件buffer中,确定用于存储第一报文的硬件buffer。例如,网络设备可以按照硬件buffer的地址顺序,依次选择硬件buffer存储报文,或者,网络设备也可以在未使用的硬件buffer中,随机选择一个硬件buffer存储报文。其中,一个硬件buffer可以用于存储一个报文。
可选的,当处理器的驱动进程从硬件接口接收到第一报文、并确定用于存储第一报文的硬件buffer后,处理器的驱动进程可以将该硬件buffer中的报文标记字段置为初始值(比如可以设置为全零)。
步骤102,当按照预设的第一报文处理流程,对第一报文进行第一目标处理动作之后,在报文标记字段中,记录第一目标处理动作对应的标识字符。
本申请实施例中,每个硬件buffer中可以设置有报文标记字段,在一种可能的实现方式中,可以在每个硬件buffer的前部预留一定的存储空间,用于存放报文标记字段。报文标记字段可以称为Tag Route。如表一所示,为一种硬件buffer的结构示例。
表一
报文标记字段 | 报文的数据 |
其中,报文标记字段所在的地址不参与报文业务处理,在整个报文处理流程中,报文标记字段不会被报文处理流程中的处理动作修改,只用作标记。报文的数据字段用于存储接收到的报文。
为了便于区分,驱动进程执行的报文处理流程称为第一报文处理流程,业务进程执行的报文处理流程称为第二报文处理流程。通常情况下,处理器先通过驱动进程执行第一报文处理流程,然后再由业务进程执行第二报文处理流程。具体的处理过程后续会进行详细说明。
报文标记字段的结构可以如表二所示。
表二
N | m+1 | m | m-1 | …… | 2 | 1 | 0 |
如表二所示,报文标记字段一共有N位,N的取值可以为32或者64。其中,每一位对应不同的处理动作,并且,处理标识位的排列与处理动作的先后顺序一致。例如根据报文处理流程,第一个处理动作为A,则A对应处理标识位0,第二个处理动作为B,则B对应处理标识位1….以此类推。N的取值可以根据处理动作的数量确定,N的取值通常大于处理动作的总数目。第一目标处理动作可以是需要被标记的处理动作,比如,可以是报文处理流程中的任一处理动作,也即,对报文的每个处理动作都需要进行标记;或者,也可以是报文处理流程中的预设处理动作,也即,仅对重要的处理动作进行标记,在此情况下,第一目标处理动作可以由技术人员进行设置,本申请实施例不做限定。
处理器的驱动进程接收到第一报文后,可以按照预设的第一报文处理流程,对第一报文进行处理。第一报文处理流程可以而包含多个处理动作,其中,处理动作可以包括存储报文和对报文进行分类等。相应的,处理器的驱动进程在存储第一报文之后,还可以对第一报文进行分类处理。
每当处理器的驱动进程按照预设的第一报文处理流程,对第一报文进行一个第一目标处理动作之后,处理器的驱动进程可以在报文标记字段中,记录该第一目标处理动作对应的标识字符。例如,可以在报文标记字段中添加第一目标处理动作的动作标识,或者,可以将报文标记字段中第一目标处理动作对应的标识位置为1。示例性的,处理器的驱动进程对第一报文执行“接收→解析→转发”的处理流程,报文标记字段的最后三位为111。或者,报文标记字段中表示“接收”的为第1位,表示“解析”的为第2位,表示“转发”的为第4位,则报文标记字段的用于记录该处理流程的标识位置置为1011。
处理器的驱动进程按照预设的第一报文处理流程,完成对第一报文的全部处理后,可以向业务进程传输报文处理请求,该报文处理请求中携带有第一硬件buffer的标识,以便业务进程对第一报文进行处理。业务进程的处理过程后续会进行详细说明。其中,硬件buffer的标识可以为硬件buffer的地址信息,该地址信息可以包括硬件buffer的标识在内存中的起始地址和偏移量。其中,该偏移量对应的存储空间即报文标记字段的存储空间。
可选的,报文标记字段中的每一位可以对应不同的处理动作,相应的,在报文标记字段中,记录第一目标处理动作对应的标识字符可以包括:根据预设的处理动作和处理标识位的对应关系,确定第一目标处理动作对应的第一处理标识位;在报文标记字段的第一处理标识位中,记录第一目标处理动作对应的标识字符。
本申请实施例中,网络设备中可以预先存储有处理动作和处理标识位的对应关系,每当处理器的驱动进程完成一个第一目标处理动作后,处理器的驱动进程可以根据该对应关系,确定第一目标处理动作对应的第一处理标识位,然后,在报文标记字段的第一处理标识位中,记录第一目标处理动作对应的标识字符。例如,处理动作为存储报文,对应处理标识位0,则处理器的驱动进程存储第一报文后,可以将处理标识位0的值置为1。
步骤103,当检测到第一硬件buffer在预设时长内未被释放时,根据当前的报文标记字段,输出警告消息。
本申请实施例中,处理器的驱动进程将第一报文存储在第一硬件buffer中之后,可以启动计时器开始计时,如果在达到预设时长时,第一硬件buffer未被释放,则说明第一硬件buffer释放不及时,可能存在异常。此时,处理器的驱动进程可以获取第一硬件buffer当前的报文标记字段,并根据获取到的报文标记字段,生成警告消息,然后输出该警告消息。
可选的,根据报文标记字段生成警告消息的方式可以是多种多样的,本申请实施例提供了两种可行的处理方式,具体如下。
方式一、获取当前的报文标记字段,输出警告消息。
本申请实施例中,处理器的驱动进程可以生成包含当前的报文标记字段的警告消息,然后输出该警告消息。在一种可能的实现方式中,处理器的驱动进程可以向网络设备的显示部件发送该警告消息,以显示包含有该报文标记字段的警告消息,技术人员则可以根据显示的标识字符,确定当前第一报文执行到了哪个处理动作,从而定位出第一硬件buffer未能及时释放的原因。例如,处理动作包括A、B、C、D,分别对应处理标识位0、处理标识位1、处理标识位2和处理标识位3,如果输出的报文标记字段中,处理标识位0、处理标识位1和处理标识位2的值均为1,处理标识位3的值为0,则说明是在执行处理动作D时发生了异常,导致第一硬件buffer未能及时释放。在另一可能的实现方式中,处理器的驱动进程可以向与本地网络设备连接的监控设备发送该警告消息。
方式二、在当前的报文标记字段中记录的标识字符中,确定记录时间与当前时间最接近的表示处理动作完成的目标标识字符,并确定目标标识字符所属的第二处理标识位;根据预设的处理标识位和错误提示信息对应关系,确定第二处理标识位对应的错误提示信息;输出携带有错误提示信息的警告消息。
本申请实施例中,网络设备中也可以预先存储有标识字符和错误提示信息对应关系。当处理器的驱动进程检测到第一硬件buffer未被及时释放时,处理器的驱动进程可以在当前该报文标记字段中记录的标识字符中,确定记录时间与当前时间最接近的表示处理动作完成的第二标识字符,然后确定第二标识字符所属的处理标识位(即第二处理标识位)。处理器的驱动进程可以从该对应关系中,获取第二处理标识位对应的错误提示信息,进而输出携带有错误提示信息的警告消息。其中,该错误提示信息可以根据第二处理标识位之后的处理标识位确定。
例如,处理动作包括A、B、C、D,分别对应处理标识位0、处理标识位1、处理标识位2和处理标识位3,每当执行完一个处理动作后,将该处理动作对应的处理标识位中记录标识字符1,未记录的缺省字符为默认值0,如果当前报文标记字段中的标识字符为0111,则可以确定记录时间与当前时间最接近的表示处理动作完成的目标标识字符——0111中从左向右数第一个1,然后确定目标标识字符所属的第二处理标识位为2,然后可以获取处理标识位2对应的错误提示信息。由于确定出的目标标识字符所属的第二处理标识位为2,说明处理标识位2对应的处理动作(即处理动作C)已完成,而处理标识位3对应的处理动作(即处理动作D)未执行或执行失败,则根据预设的处理标识位和错误提示信息对应关系,可以确定包含处理动作D的标识的错误提示信息,比如“处理动作D发生异常”。
又如,在第一报文处理流程中,第一个处理动作为存储报文,存储报文对应的处理标识位为处理标识位0,如果当前报文标记字段中记录的标识字符中,仅处理标识位0中的标识字符为1其余处理标识位中的标识字符均为0,则说明处理器的驱动进程在存储报文后,未执行后续处理,驱动进程发生异常,可以获取处理标识位0对应的错误提示信息,比如“处理器的驱动进程异常”。
又如,第二处理标识位为第一报文处理流程中最后一个处理动作对应的处理标识位,则说明可能是驱动进程执行的最后一个处理动作和业务进程执行的第一个处理动作之间用于释放硬件buffer的接口出现故障,对应的错误提示信息可以是“内存释放接口异常”。
处理器的驱动进程确定错误提示信息后,可以输出携带有错误提示信息的警告消息。这样,技术人员通过查看错误提示信息,可以直接获知是哪个处理环节出现问题。这样,通过在硬件buffer的头部填充标记,记录报文都经过了哪些处理动作,能够实现跟踪报文的流转路径,从而解决无法快速定位异常位置的问题。
可选的,除了通过计时器计时的方式确定未被及时释放的硬件buffer之外,还可以由人工确定未被及时释放的硬件buffer,具体的处理过程可以为:技术人员在网络设备中输入硬件buffer的查看指令,网络设备则可以显示当前未被释放的硬件buffer,技术人员可以多次输入查看指令,如果某硬件buffer在技术人员查看的过程中始终都未被释放,或者,在达到预设时长时,该硬件buffer仍未被释放,则确定该硬件buffer未被及时释放。然后,技术人员可以在网络设备中输入针对该硬件buffer的报文标记字段的查看指令,网络设备则会显示该硬件buffer的报文标记字段,技术人员通过查看该硬件buffer的报文标记字段,以确定该硬件buffer未被及时释放的原因。
可选的,报文标记字段中还可以包括释放标识位,相应的,还可以对报文的释放情况进行标记,具体的处理过程可以为:接收业务进程传输的释放指令,释放指令中携带有第一硬件buffer的标识;判断释放标识位中的标识字符是否为第一预设标识字符,第一预设标识字符表示第一硬件buffer未被释放;如果释放标识位中的标识字符不为第一预设标识字符,则丢弃释放指令;如果释放标识位中的标识字符为第一预设标识字符,则释放第一硬件buffer,并将第一预设标识字符修改为第二预设标识字符,第二预设标识字符表示第一硬件buffer已被释放。
本申请实施例中,报文标记字段中还可以包括释放标识位,如上述表二所示,整个报文处理流程中可以包括m个处理动作,则可以将0~m-1作为处理标识位,将m和m+1作为释放标识位。
在第一种可能的实现方式中,释放标识位可以包含两个标识位,用于记录接收到对应硬件buffer的释放指令的次数。例如,该释放标识位中的标识字符的初始值为0,当接收到对应第一硬件buffer的释放指令后,处理器的驱动进程释放第一硬件buffer,并将该释放标识位的标识字符置为1,后续再次接收到对应第一硬件buffer的释放指令时,将该标识字符的值加1。
在第二种可能的实现方式中,释放标识位可以仅包含一个标识位,用于记录该报文是否被释放。例如,该释放标识位中的标识字符的初始值为0,当处理器的驱动进程释放第一硬件buffer后,并将该释放标识位的标识字符置为1。
当业务进程的各子业务进程对第一报文处理完成后,最后一个子业务进程可以向处理器的驱动进程传输的释放指令,该释放指令中携带有第一硬件buffer的标识。处理器的驱动进程接收到释放指令后,可以判断释放标识位中的标识字符是否为第一预设标识字符。其中,第一预设标识字符表示第一硬件buffer未被释放。例如,可以判断释放标识位中的标识字符是否为0。
如果释放标识位中的标识字符不为第一预设标识字符,则说明第一硬件buffer已被释放,处理器的驱动进程可以丢弃该释放指令,不再进行释放操作,以避免重复释放第一硬件buffer。并且,处理器的驱动进程还可以记录一条重复释放日志。针对第一种可能的实现方式,处理器的驱动进程还可以将释放标识位的标识字符的值加1,针对第二种可能的实现方式,处理器的驱动进程不修改释放标识位的标识字符。
如果释放标识位中的标识字符为第一预设标识字符,则说明第一硬件buffer未被释放,处理器的驱动进程可以释放第一硬件buffer,并将第一预设标识字符修改为第二预设标识字符,第二预设标识字符表示第一硬件buffer已被释放。例如,可以将释放标识位中的标识字符由0修改为1。
现有技术中,业务进程在对硬件buffer进行释放后,有时会重复释放该buffer,这样可能会导致处理器的驱动进程运行出现错误。而本申请实施例中,在硬件buffer中预留了释放标识位,处理器的驱动进程接收到业务进程的释放指令后,通过释放标识位判断是否已释放该硬件buffer,如果是,则不释放该硬件buffer,如果未释放该buffer,则执行该释放指令,这样,可以避免硬件buffer被重复释放。
可选的,当缓存利用率较高时,可以通过备用存储空间来存储报文,具体的处理过程可以为:当检测到处理器的缓存利用率超过预设阈值时,将本地的存储资源池中预设大小的未使用的存储空间设置为备用存储空间;当接收到待处理的第二报文时,将第二报文存储在备用存储空间中。
本申请实施例中,处理器的驱动进程可以周期性的检测当前的缓存利用率,该缓存利用率可以是接收报文对应的AURA模块(可称为目标AURA模块)的缓存利用率。例如,该AURA模块包含10个硬件buffer,当前已占用的硬件buffer为5个,则缓存利用率为50%。当处理器的驱动进程检测到缓存利用率超过预设阈值时,可以从存储资源池中获取未使用的未使用的存储资源,分配给备用AURA模块,比如将该存储资源的地址写入到该备用AURA模块中,得到备用存储空间。后续,当接收到待处理的第二报文时,处理器的驱动进程可以将第二报文存储在该备用存储空间中,也即,将业务流切到备用AURA模块中。
这样,通过增加备用存储空间,可以在当报文缓存不足时,通过备用存储空间来存储接收到的报文,避免因存储空间不足而导致报文泄露。
可选的,处理器的驱动进程可以周期性的检测当前的缓存利用率,比如可以在每达到1秒时,检测目标AURA模块的缓存利用率。当处理器的驱动进程检测到该缓存利用率低于预设阈值时,说明当前的存储空间比较充足,后续处理器的驱动进程接收到报文后,可以将到的报文存储到目标AURA模块中,也即,将业务流切回至原AURA。
可选的,当处理器的驱动进程检测到备用存储空间(即备用AURA模块)中的硬件buffer全部被释放后,处理器的驱动进程可以将备用AURA模块中的存储空间放回到存储资源池中,以提高回收存储资源的效率。
如图2所示,本申请实施例还提供了另一种输出警告消息的方法的处理流程,该方法具体可以由处理器中的业务进程执行,具体可以包括以下步骤。
步骤201,接收处理器的驱动进程传输的报文处理请求。
本申请实施例中,处理器的驱动进程对第一报文处理完成后,可以向业务进程传输报文处理请求,该报文处理请求中携带有第一硬件buffer的标识,以便业务进程对第一报文进行处理。其中,硬件buffer的标识可以为硬件buffer的地址信息,还可以是预设的硬件buffer的标识字符,该地址信息可以包括硬件buffer的标识在内存中的起始地址和偏移量,该偏移量对应的存储空间即报文标记字段的存储空间。
本申请实施例以硬件buffer的标识为硬件buffer的地址信息为例进行说明。
步骤202,根据第一硬件buffer的标识,读取第一硬件buffer中存储的第一报文。
本申请实施例中,业务进程接收到报文处理请求后,可以从报文处理请求中获取第一硬件buffer的地址信息,然后从该起始地址开始,偏移该偏移量个字节,得到第一报文对应的存储地址,然后从该存储地址开始,读取预设字节数的数据,得到第一报文的数据。
步骤203,当按照预设的第二报文处理流程,对第一报文进行第二目标处理动作之后,在报文标记字段中,记录第二目标处理动作对应的标识字符。
本申请实施例中,业务进程可以具有多个子业务进程,每个子业务进程可以用于执行至少一个处理动作。例如,业务进程可以包括ACL(Access Control List,访问控制列表)子业务进程,ACL子业务进程可以用于报文执行过滤匹配和QOS(Quality of Service,服务质量)处理等处理动作,业务进程还可以包括ROUTE(路径)子业务进程,ROUTE子业务进程用于对报文执行路径规划和生成路由表项等处理动作。第二目标处理动作可以是需要被标记的处理动作,比如,可以是报文处理流程中的任一处理动作,也即,对报文的每个处理动作都需要进行标记;或者,也可以是报文处理流程中的预设处理动作,即,仅对重要的处理动作进行标记,在此情况下,第二目标处理动作可以由技术人员进行设置,本申请实施例不做限定。
当业务进程读取到第一报文后,业务进程可以按照预设的第二报文处理流程,依次通过各子业务进程对第一报文进行处理。其中,第二报文处理流程可以包括各子业务进程的处理顺序。每当业务进程按照预设的第二报文处理流程,对第一报文进行第二目标处理动作之后,业务进程可以根据第一硬件buffer的地址信息,确定报文标记字段的位置,然后可以在报文标记字段中,记录第二目标处理动作对应的标识字符。
可选的,报文标记字段中的每一位可以对应不同的处理动作,相应的,在报文标记字段中,记录第二目标处理动作对应的标识字符可以包括:根据预设的处理动作和处理标识位的对应关系,确定第二目标处理动作对应的第三处理标识位;在报文标记字段的第三处理标识位中,记录第二目标处理动作对应的标识字符。
该步骤的具体处理过程可以参照上述步骤102中的相关说明,此处不再赘述。
另外,当业务进程按照预设的第二报文处理流程,完成对第一报文的全部处理动作之后,业务进程可以向处理器中的驱动进程传输释放指令,该释放指令中携带有第一硬件buffer的标识,以使驱动释放第一硬件buffer。
基于本申请提供的输出警告消息的方法,每个硬件buffer中设置有报文标记字段,处理器的驱动进程接收到待处理的第一报文后,将第一报文存储在第一硬件buffer中,当按照预设的第一报文处理流程,对第一报文进行第一目标处理动作之后,在报文标记字段中,记录第一目标处理动作对应的标识字符,同理,业务进程当按照预设的第二报文处理流程,对第一报文进行第二目标处理动作之后,也会在报文标记字段中记录第二目标处理动作对应的标识字符,这样,可以对报文流转路径进行标记。当检测到第一硬件buffer在预设时长内未被释放时,可以根据第一硬件buffer当前的报文标记字段,输出警告消息,以便技术人员快速定位导致硬件buffer未能及时释放的原因,从而解决该问题。
现有技术中,业务应用处理完报文后,有时未能及时释放该报文对应的硬件buffer,造成内存不足,甚至会丢弃未处理的报文,导致网络中的丢包率较高。因此,本方案中还提出了一种释放硬件buffer的方法,该方法可以应用于网络设备,该网络设备可以是安全设备(比如防火墙设备)、也可以是路由设备等。网络设备的处理器中可以安装有驱动程序,该处理器还可以安装有业务应用,故本申请中所说的驱动程序和业务应用为安装在处理器中的程序,为内核态的程序。当处理器上电运行后,该处理器载入驱动程序和业务应用,分别通过驱动进程和业务进程执行处理流程。通常情况下,业务应用具有多个业务模块,每个业务模块可以有对应的子业务进程,各业务模块可以通过对应的子业务进程执行处理动作。基于该方法,处理器的驱动进程通过查询业务进程中当前正在使用的硬件buffer,确定未及时释放的硬件buffer,然后释放这些硬件buffer,提高了释放硬件buffer的及时性。
如图3所示,本申请实施例提供了一种释放硬件buffer的方法时的处理流程图,该方法具体可以由处理器的驱动进程执行,具体可以包括以下步骤。
步骤301,向业务进程传输查询消息。
本申请实施例中,处理器的驱动进程可以向业务进程传输查询消息。例如,处理器的驱动进程可以在达到预设查询周期时,向业务进程传输查询消息;或者,处理器的驱动进程也可以在检测到处理器的缓存利用率超过预设阈值时,向业务进程传输查询消息。
在一种可能的实现方式中,处理器的驱动进程可以仅向业务进程传输一个查询消息。在另一种可能的实现方式中,针对业务进程的每个子业务进程,处理器的驱动进程可以分别向业务进程的每个子业务进程传输查询消息。
步骤302,接收业务进程传输的响应消息。
本申请实施例中,对于处理器的驱动进程仅向业务进程传输一个查询消息的情况,处理器的驱动进程可以接收到业务进程传输的响应消息,该响应消息中携带有业务进程中当前使用的全部硬件buffer(即第二硬件buffer)的标识。
对于处理器的驱动进程分别向业务进程的每个子业务进程传输查询消息的情况,处理器的驱动进程可以接收到每个子业务进程传输的响应消息,该响应消息中携带有该子业务进程当前使用的硬件buffer(即第二硬件buffer)的标识。此时,处理器可以确定各子业务进程传输的第二硬件buffer的标识的合集,得到业务进程当前使用的全部硬件buffer的标识。
步骤303,在本地未被释放的硬件buffer中,确定除第二硬件buffer以外的第三硬件buffer,释放第三硬件buffer。
本申请实施例中,处理器的驱动进程获得业务进程当前使用的第二硬件buffer的标识后,可以在本地未释放的各硬件buffer中,确定除第二硬件buffer以外的硬件buffer(即第三硬件buffer),该第三硬件buffer即为当前未及时释放的硬件buffer,处理器的驱动进程可以释放第三硬件buffer,以提高释放硬件buffer的及时性。
可选的,为了避免误释放有用的硬件buffer,处理器的驱动进程可以多次向业务进程传输查询消息,以获得多个当前使用的硬件buffer集合,然后确定多个当前使用的硬件buffer集合的交集,释放该交集中包含的硬件buffer。例如,处理器的驱动进程第一次向业务进程传输查询消息后,响应消息中携带的第二硬件buffer的标识为1、2、3、4、5;处理器的驱动进程第二次向业务进程传输查询消息后,响应消息中携带的第二硬件buffer的标识为3、4、5、6;处理器的驱动进程第三次向业务进程传输查询消息后,响应消息中携带的第二硬件buffer的标识为3、4、5、7、8;则说明硬件buffer3、硬件buffer 4、硬件buffer 5未及时释放,处理器的驱动进程释放硬件buffer3、硬件buffer 4、硬件+buffer 5。
如图4所示,本申请实施例提供了另一种处理器执行上述释放硬件buffer的方法时的处理流程图,该方法具体可以由处理器的业务进程执行,具体可以包括以下步骤。
步骤401,接收处理器传输的查询消息。
其中,该查询消息可以具体由处理器中的驱动进程传输。
步骤402,确定当前使用的第二硬件buffer的标识,并向处理器的驱动进程传输的响应消息,响应消息中携带有第二硬件buffer的标识,以使处理器的驱动进程释放除第二硬件buffer以外的第三硬件buffer。
本申请实施例中,业务进程可以具有多个子业务进程,每个子业务进程可以记录当前正在使用的硬件buffer(即第二硬件buffer)的标识。
对于处理器的驱动进程仅向业务进程传输一个查询消息的情况,业务进程可以分别获取每个子业务进程当前正在使用的第二硬件buffer的标识,然后将获取到的第二硬件buffer的标识添加到响应消息中,将该响应消息传输给处理器的驱动进程。
对于处理器的驱动进程分别向业务进程的每个子业务进程传输查询消息的情况,针对每个子业务进程,当该子业务进程接收到查询消息后,可以查询自身当前使用的第二硬件buffer的标识,然后将查询到的第二硬件buffer的标识添加到响应消息中,将该响应消息传输给处理器的驱动进程。
基于本申请实施例提供的释放硬件buffer的方法,处理器的驱动进程通过查询业务进程中当前正在使用的硬件buffer,确定未及时释放的硬件buffer,然后释放这些硬件buffer,提高了释放硬件buffer的及时性,能够避免因内存不足而丢弃未处理的报文,降低了网络中的丢包率。
本申请实施例还提供了一种输出警告消息的方法示例,该方法示例可以由处理器的驱动进程和业务进程共同实现。该处理器包括多个硬件缓冲区buffer,每个硬件buffer中设置有报文标记字段。如图5所示,该方法示例的处理流程包括如下步骤。
步骤501,处理器的驱动进程接收待处理的第一报文,将第一报文存储在第一硬件buffer中。
本步骤的具体处理过程可以参照步骤101的具体说明,此处不再赘述。
步骤502,处理器的驱动进程按照预设的第一报文处理流程,对第一报文进行第一目标处理动作,并根据预设的处理动作和处理标识位的对应关系,确定第一目标处理动作对应的第一处理标识位,在报文标记字段的第一处理标识位中,记录第一目标处理动作对应的标识字符。
本步骤的具体处理过程可以参照步骤102的具体说明,此处不再赘述。
步骤503,当处理器的驱动进程按照预设的第一报文处理流程,完成对第一报文的全部处理动作之后,处理器的驱动进程向业务进程传输报文处理请求。
其中,报文处理请求中携带有第一硬件buffer的标识。
本步骤的具体处理过程可以参照步骤102的具体说明,此处不再赘述。
步骤504,业务进程接收处理器的驱动进程传输的报文处理请求。
本步骤的具体处理过程可以参照步骤201的具体说明,此处不再赘述。
步骤505,业务进程根据第一硬件buffer的标识,读取第一硬件buffer中存储的第一报文.
本步骤的具体处理过程可以参照步骤202的具体说明,此处不再赘述。
步骤506,业务进程当按照预设的第二报文处理流程,对第一报文进行第二目标处理动作之后,根据预设的处理动作和处理标识位的对应关系,确定第二目标处理动作对应的第三处理标识位,在第一硬件buffer的报文标记字段的第三处理标识位中,记录第二目标处理动作对应的标识字符。
本步骤的具体处理过程可以参照步骤203的具体说明,此处不再赘述。
步骤507,当处理器的驱动进程检测到第一硬件buffer在预设时长内未被释放时,处理器的驱动进程根据第一硬件buffer当前的报文标记字段,输出警告消息。
本步骤的具体处理过程可以参照步骤103的具体说明,此处不再赘述。
步骤508,当处理器的业务进程按照预设的第二报文处理流程,完成对第一报文的全部处理动作之后,业务进程向驱动进程传输释放指令。
其中,释放指令中携带有第一硬件buffer的标识。
本步骤的具体处理过程可以参照步骤203的具体说明,此处不再赘述。
步骤509,处理器的驱动进程接收业务进程传输的释放指令,判断释放标识位中的标识字符是否为第一预设标识字符。
其中,第一预设标识字符表示第一硬件buffer未被释放。如果释放标识位中的标识字符不为第一预设标识字符,则执行步骤510;如果释放标识位中的标识字符为第一预设标识字符,则执行步骤511。
本步骤的具体处理过程可以参照步骤103的具体说明,此处不再赘述。
步骤510,处理器的驱动进程丢弃释放指令,并记录一条重复释放日志。
本步骤的具体处理过程可以参照步骤103的具体说明,此处不再赘述。
步骤511,处理器的驱动进程释放第一硬件buffer,并将第一预设标识字符修改为第二预设标识字符,第二预设标识字符表示第一硬件buffer已被释放。
本步骤的具体处理过程可以参照步骤103的具体说明,此处不再赘述。
其中,步骤507与步骤503~步骤506不区分先后顺序,步骤507与步骤508~步骤511不区分先后顺序。
本申请实施例还提供了一种释放硬件buffer的方法示例,该方法示例可以由处理器的驱动进程和业务进程共同实现。该处理器包括多个硬件缓冲区buffer,每个硬件buffer中设置有报文标记字段。如图6所示,该方法示例的处理流程包括如下步骤。
步骤601,处理器的驱动进程向业务进程传输查询消息。
本步骤的具体处理过程可以参照步骤301的具体说明,此处不再赘述。
步骤602,处理器的业务进程接收驱动进程传输的查询消息;
本步骤的具体处理过程可以参照步骤401的具体说明,此处不再赘述。
步骤603,处理器的业务进程确定当前使用的第二硬件buffer的标识。
本步骤的具体处理过程可以参照步骤402的具体说明,此处不再赘述。
步骤604,处理器的业务进程向驱动进程传输的响应消息。
其中,响应消息中携带有第二硬件buffer的标识,以使处理器的驱动进程释放除第二硬件buffer以外的第三硬件buffer。
本步骤的具体处理过程可以参照步骤402的具体说明,此处不再赘述。
步骤605,处理器的驱动进程接收业务进程传输的响应消息。
本步骤的具体处理过程可以参照步骤302的具体说明,此处不再赘述。
步骤606,处理器的驱动进程在本地未被释放的硬件buffer中,确定除第二硬件buffer以外的第三硬件buffer,释放第三硬件buffer。
本步骤的具体处理过程可以参照步骤303的具体说明,此处不再赘述。
本申请实施例还提供了一种硬件buffer容错机制的方法示例,该方法示例可以由处理器的驱动进程和业务进程共同实现。该处理器包括多个硬件buffer,每个硬件buffer中设置有报文标记字段。如图7所示,该方法示例的处理流程包括如下步骤。
步骤701,当处理器的驱动进程检测到目标AURA模块的缓存利用率超过预设阈值时,将本地的存储资源池中预设大小的未使用的存储空间设置为备用存储空间(即备用AURA模块)。
步骤702,处理器的驱动进程检测目标AURA模块当前的缓存利用率,判断该缓存利用率是否低于预设阈值。
如果该缓存利用率低于预设阈值,则执行步骤703;如果该缓存利用率不低于预设阈值,则执行步骤704。
步骤703,当处理器的驱动进程接收到待处理的报文时,将该报文存储在目标AURA模块中。
步骤704,当驱动模块接收到待处理的报文时,将该报文存储到备用AURA模块中。
步骤705,当处理器的驱动进程检测到备用AURA模块中的硬件buffer全部被释放后,处理器的驱动进程将备用AURA模块中的存储空间回收到存储资源池中。
基于相同的技术构思,本申请施例还提供了一种输出警告消息的装置,所述装置应用于处理器,所述处理器包括多个硬件缓冲区buffer,所述硬件buffer中设置有报文标记字段,如图8所示,所述装置包括:
第一存储模块810,用于接收待处理的第一报文,将所述第一报文存储在第一硬件buffer中;
记录模块820,用于当按照预设的第一报文处理流程,对所述第一报文进行第一目标处理动作之后,在所述报文标记字段中,记录所述第一目标处理动作对应的标识字符;
输出模块830,用于当检测到所述第一硬件buffer在预设时长内未被释放时,根据所述第一硬件buffer当前的报文标记字段,输出警告消息。
可选的,所述记录模块820,具体用于:
根据预设的处理动作和处理标识位的对应关系,确定所述第一目标处理动作对应的第一处理标识位;
在所述报文标记字段的所述第一处理标识位中,记录所述第一目标处理动作对应的标识字符。
可选的,所述输出模块830,具体用于:
在当前的报文标记字段中记录的标识字符中,确定记录时间与当前时间最接近的表示处理动作完成的目标标识字符,并确定所述目标标识字符所属的第二处理标识位;
根据预设的处理标识位和错误提示信息对应关系,确定所述第二处理标识位对应的错误提示信息;
输出携带有所述错误提示信息的警告消息。
可选的,所述输出模块830,具体用于:
获取当前的报文标记字段;
输出警告消息,所述警告消息包含所述当前的报文标记字段。
可选的,所述装置还包括:
第一传输模块,用于当按照所述预设的第一报文处理流程,完成对所述第一报文的全部处理动作之后,向业务进程传输报文处理请求,所述报文处理请求中携带有所述第一硬件buffer的标识。
可选的,所述报文标记字段中还包括释放标识位;
所述装置还包括:
接收模块,用于接收业务进程传输的释放指令,所述释放指令中携带有所述第一硬件buffer的标识;
判断模块,用于判断所述释放标识位中的标识字符是否为第一预设标识字符,所述第一预设标识字符表示所述第一硬件buffer未被释放;
丢弃模块,用于如果所述释放标识位中的标识字符不为所述第一预设标识字符,则丢弃所述释放指令;
释放模块,用于如果所述释放标识位中的标识字符为所述第一预设标识字符,则释放所述第一硬件buffer,并将所述第一预设标识字符修改为第二预设标识字符,所述第二预设标识字符表示所述第一硬件buffer已被释放。
可选的,所述装置还包括:
第二传输模块,用于向业务进程传输查询消息;
第二接收模块,用于接收所述业务进程传输的响应消息,所述响应消息中携带有所述业务进程中当前使用的第二硬件buffer的标识;
确定模块,用于在本地未被释放的硬件buffer中,确定除所述第二硬件buffer以外的第三硬件buffer,释放所述第三硬件buffer。
可选的,所述装置包括:
设置模块,用于当检测所述处理器的缓存利用率超过预设阈值时,将本地的存储资源池中预设大小的未使用的存储空间设置为备用存储空间;
第二存储模块,用于当接收到待处理的第二报文时,将所述第二报文存储在所述备用存储空间中。
基于相同的技术构思,本申请施例还提供了一种输出警告消息的装置,如图9所示,所述装置包括:
第一接收模块910,用于用于接收处理器传输的报文处理请求,所述报文处理请求中携带有所述第一硬件buffer的标识,所述第一硬件buffer中设置有报文标记字段;
读取模块920,用于根据所述第一硬件buffer的标识,读取所述第一硬件buffer中存储的第一报文;
记录模块930,用于当按照预设的第二报文处理流程,对所述第一报文进行第二目标处理动作之后,在所述报文标记字段中,记录所述第二目标处理动作对应的标识字符。
可选的,所述记录模块,具体用于:
根据预设的处理动作和处理标识位的对应关系,确定所述第二目标处理动作对应的第三处理标识位;
在所述报文标记字段的所述第三处理标识位中,记录所述第二目标处理动作对应的标识字符。
可选的,所述装置还包括:
第二接收模块,用于接收处理器传输的查询消息;
传输模块,用于确定当前使用的第二硬件buffer的标识,并向所述处理器传输的响应消息,所述响应消息中携带有所述第二硬件buffer的标识。
本申请实施例中,处理器可以包括多个硬件缓冲区buffer,各硬件buffer中设置有报文标记字段。当处理器接收到待处理的第一报文后,将第一报文存储在第一硬件buffer中。当按照预设的第一报文处理流程,对第一报文进行第一目标处理动作之后,在报文标记字段中,记录第一目标处理动作对应的标识字符;当检测到第一硬件buffer在预设时长内未被释放时,根据第一硬件buffer当前的报文标记字段,输出警告消息。这样,当第一硬件buffer未能及时释放时,处理器可以自动定位造成释放不及时的原因,并输出警告消息。同理,业务进程当按照预设的第二报文处理流程,对第一报文进行第二目标处理动作之后,也会在报文标记字段中记录第二目标处理动作对应的标识字符,这样,可以对报文流转路径进行标记。当检测到第一硬件buffer在预设时长内未被释放时,可以根据第一硬件buffer当前的报文标记字段,输出警告消息,以便技术人员快速定位导致硬件buffer未能及时释放的原因,从而解决该问题。
本申请实施例还提供了一种电子设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的程序时,实现上述的方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一输出警告消息的方法步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一输出警告消息的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (15)
1.一种输出警告消息的方法,其特征在于,所述方法应用于处理器,所述处理器包括多个硬件缓冲区buffer,所述硬件buffer中设置有报文标记字段,所述方法包括:
接收待处理的第一报文,将所述第一报文存储在第一硬件buffer中;
当按照预设的第一报文处理流程,对所述第一报文进行第一目标处理动作之后,在所述报文标记字段中,记录所述第一目标处理动作对应的标识字符;
当检测到所述第一硬件buffer在预设时长内未被释放时,根据所述第一硬件buffer当前的报文标记字段,输出警告消息。
2.根据权利要求1所述的方法,其特征在于,所述在所述报文标记字段中,记录所述第一目标处理动作对应的标识字符,包括:
根据预设的处理动作和处理标识位的对应关系,确定所述第一目标处理动作对应的第一处理标识位;
在所述报文标记字段的所述第一处理标识位中,记录所述第一目标处理动作对应的标识字符。
3.根据权利要求2所述的方法,其特征在于,所述根据当前的报文标记字段,输出警告消息,包括:
在当前的报文标记字段中记录的标识字符中,确定记录时间与当前时间最接近的表示处理动作完成的目标标识字符,并确定所述目标标识字符所属的第二处理标识位;
根据预设的处理标识位和错误提示信息对应关系,确定所述第二处理标识位对应的错误提示信息;
输出携带有所述错误提示信息的警告消息。
4.根据权利要求1所述的方法,其特征在于,所述根据当前的报文标记字段,输出警告消息,包括:
获取当前的报文标记字段;
输出警告消息,所述警告消息包含所述当前的报文标记字段。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当按照所述预设的第一报文处理流程,完成对所述第一报文的全部处理动作之后,向业务进程传输报文处理请求,所述报文处理请求中携带有所述第一硬件buffer的标识。
6.根据权利要求1所述的方法,其特征在于,所述报文标记字段中还包括释放标识位;
所述方法还包括:
接收业务进程传输的释放指令,所述释放指令中携带有所述第一硬件buffer的标识;
判断所述释放标识位中的标识字符是否为第一预设标识字符,所述第一预设标识字符表示所述第一硬件buffer未被释放;
如果所述释放标识位中的标识字符不为所述第一预设标识字符,则丢弃所述释放指令;
如果所述释放标识位中的标识字符为所述第一预设标识字符,则释放所述第一硬件buffer,并将所述第一预设标识字符修改为第二预设标识字符,所述第二预设标识字符表示所述第一硬件buffer已被释放。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向业务进程传输查询消息;
接收所述业务进程传输的响应消息,所述响应消息中携带有所述业务进程中当前使用的第二硬件buffer的标识;
在本地未被释放的硬件buffer中,确定除所述第二硬件buffer以外的第三硬件buffer,释放所述第三硬件buffer。
8.根据权利要求1~7任一所述的方法,其特征在于,所述方法包括:
当检测所述处理器的缓存利用率超过预设阈值时,将本地的存储资源池中预设大小的未使用的存储空间设置为备用存储空间;
当接收到待处理的第二报文时,将所述第二报文存储在所述备用存储空间中。
9.一种输出警告消息的方法,其特征在于,所述方法包括:
接收处理器传输的报文处理请求,所述报文处理请求中携带有第一硬件buffer的标识,所述第一硬件buffer中设置有报文标记字段;
根据所述第一硬件buffer的标识,读取所述第一硬件buffer中存储的第一报文;
当按照预设的第二报文处理流程,对所述第一报文进行第二目标处理动作之后,在所述报文标记字段中,记录所述第二目标处理动作对应的标识字符。
10.根据权利要求9所述的方法,其特征在于,所述在所述报文标记字段中,记录所述第二目标处理动作对应的标识字符,包括:
根据预设的处理动作和处理标识位的对应关系,确定所述第二目标处理动作对应的第三处理标识位;
在所述报文标记字段的所述第三处理标识位中,记录所述第二目标处理动作对应的标识字符。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收处理器传输的查询消息;
确定当前使用的第二硬件buffer的标识,并向所述处理器传输的响应消息,所述响应消息中携带有所述第二硬件buffer的标识。
12.一种输出警告消息的装置,其特征在于,所述装置应用于处理器,所述处理器包括多个硬件缓冲区buffer,所述硬件buffer中设置有报文标记字段,所述装置包括:
第一存储模块,用于接收待处理的第一报文,将所述第一报文存储在第一硬件buffer中;
记录模块,用于当按照预设的第一报文处理流程,对所述第一报文进行第一目标处理动作之后,在所述报文标记字段中,记录所述第一目标处理动作对应的标识字符;
输出模块,用于当检测到所述第一硬件buffer在预设时长内未被释放时,根据所述第一硬件buffer当前的报文标记字段,输出警告消息。
13.一种输出警告消息的装置,其特征在于,所述装置包括:
第一接收模块,用于接收处理器传输的报文处理请求,所述报文处理请求中携带有第一硬件buffer的标识,所述第一硬件buffer中设置有报文标记字段;
读取模块,用于根据所述第一硬件buffer的标识,读取所述第一硬件buffer中存储的第一报文;
记录模块,用于当按照预设的第二报文处理流程,对所述第一报文进行第二目标处理动作之后,在所述报文标记字段中,记录所述第二目标处理动作对应的标识字符。
14.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤,或9-11任一所述的方法步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤,或9-11任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811159499.5A CN109144736A (zh) | 2018-09-30 | 2018-09-30 | 一种输出警告消息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811159499.5A CN109144736A (zh) | 2018-09-30 | 2018-09-30 | 一种输出警告消息的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109144736A true CN109144736A (zh) | 2019-01-04 |
Family
ID=64814280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811159499.5A Pending CN109144736A (zh) | 2018-09-30 | 2018-09-30 | 一种输出警告消息的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144736A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297732A (zh) * | 2019-06-14 | 2019-10-01 | 杭州迪普科技股份有限公司 | 一种fpga状态的检测方法及装置 |
CN112925779A (zh) * | 2021-03-02 | 2021-06-08 | 重庆度小满优扬科技有限公司 | 一种报文回执修改方法及装置 |
CN113672416A (zh) * | 2021-07-27 | 2021-11-19 | 杭州迪普科技股份有限公司 | 内存资源泄漏的原因定位方法及装置 |
WO2023207196A1 (zh) * | 2022-04-28 | 2023-11-02 | 中兴通讯股份有限公司 | 报文处理方法及其装置、存储介质、程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478481A (zh) * | 2009-01-07 | 2009-07-08 | 成都市华为赛门铁克科技有限公司 | 缓存管理方法及装置、数据转发系统 |
CN102790723A (zh) * | 2012-08-29 | 2012-11-21 | 福建星网锐捷网络有限公司 | 缓冲区对象的处理方法、装置及设备 |
CN103534704A (zh) * | 2012-10-31 | 2014-01-22 | 华为技术有限公司 | 一种处理失效报文的方法、网络设备和处理器 |
CN103716234A (zh) * | 2013-12-19 | 2014-04-09 | 汉柏科技有限公司 | 一种定位报文内存泄露的方法 |
CN104461924A (zh) * | 2014-11-04 | 2015-03-25 | 福建星网锐捷网络有限公司 | 一种报文内存回收方法和系统 |
WO2017197982A1 (zh) * | 2016-05-16 | 2017-11-23 | 中兴通讯股份有限公司 | 报文处理方法、装置及系统和计算机存储介质 |
CN108595270A (zh) * | 2018-04-27 | 2018-09-28 | 新华三信息安全技术有限公司 | 一种内存资源的回收方法及装置 |
-
2018
- 2018-09-30 CN CN201811159499.5A patent/CN109144736A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478481A (zh) * | 2009-01-07 | 2009-07-08 | 成都市华为赛门铁克科技有限公司 | 缓存管理方法及装置、数据转发系统 |
CN102790723A (zh) * | 2012-08-29 | 2012-11-21 | 福建星网锐捷网络有限公司 | 缓冲区对象的处理方法、装置及设备 |
CN103534704A (zh) * | 2012-10-31 | 2014-01-22 | 华为技术有限公司 | 一种处理失效报文的方法、网络设备和处理器 |
CN103716234A (zh) * | 2013-12-19 | 2014-04-09 | 汉柏科技有限公司 | 一种定位报文内存泄露的方法 |
CN104461924A (zh) * | 2014-11-04 | 2015-03-25 | 福建星网锐捷网络有限公司 | 一种报文内存回收方法和系统 |
WO2017197982A1 (zh) * | 2016-05-16 | 2017-11-23 | 中兴通讯股份有限公司 | 报文处理方法、装置及系统和计算机存储介质 |
CN108595270A (zh) * | 2018-04-27 | 2018-09-28 | 新华三信息安全技术有限公司 | 一种内存资源的回收方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297732A (zh) * | 2019-06-14 | 2019-10-01 | 杭州迪普科技股份有限公司 | 一种fpga状态的检测方法及装置 |
CN110297732B (zh) * | 2019-06-14 | 2024-01-23 | 杭州迪普科技股份有限公司 | 一种fpga状态的检测方法及装置 |
CN112925779A (zh) * | 2021-03-02 | 2021-06-08 | 重庆度小满优扬科技有限公司 | 一种报文回执修改方法及装置 |
CN113672416A (zh) * | 2021-07-27 | 2021-11-19 | 杭州迪普科技股份有限公司 | 内存资源泄漏的原因定位方法及装置 |
CN113672416B (zh) * | 2021-07-27 | 2024-03-01 | 杭州迪普科技股份有限公司 | 硬buffer泄漏的原因定位方法及装置 |
WO2023207196A1 (zh) * | 2022-04-28 | 2023-11-02 | 中兴通讯股份有限公司 | 报文处理方法及其装置、存储介质、程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144736A (zh) | 一种输出警告消息的方法及装置 | |
JP7293270B2 (ja) | 障害回復方法および障害回復装置、ならびに記憶媒体 | |
CN109861878B (zh) | kafka集群的topic数据的监控方法及相关设备 | |
JP2008104027A (ja) | パケット情報収集装置およびパケット情報収集プログラム | |
CN110784355B (zh) | 一种故障识别方法及装置 | |
CN101432721A (zh) | 桥接网络中的潜在转发环路的检测 | |
US20140201356A1 (en) | Monitoring system of managing cloud-based hosts and monitoring method using for the same | |
CN115118581B (zh) | 一种基于5g的物联网数据全链路监控和智能保障系统 | |
US20120047249A1 (en) | Method of determining equivalent subsets of agents to gather information for a fabric | |
CN107577545A (zh) | 一种故障磁盘检测与修复方法和装置 | |
CN109586959A (zh) | 一种故障检测的方法及装置 | |
CN107579858A (zh) | 云主机的告警方法及装置、通信系统 | |
CN107329803A (zh) | 虚拟机管理方法和装置 | |
CN104506370A (zh) | 无网管系统管理方法及装置 | |
CN113691507A (zh) | 一种工业控制网络安全检测方法及系统 | |
CN112817814A (zh) | 异常监控方法、系统、存储介质及电子装置 | |
US11611488B2 (en) | AI machine learning technology based fault management system for network equpment that supports SDN open flow protocol | |
CN109982065A (zh) | 视频监控网络中设备故障恢复的方法、装置及存储介质 | |
CN107171873A (zh) | 一种消息处理的方法和装置 | |
JP2011090429A (ja) | 統合監視システム | |
CN110198246B (zh) | 一种流量监控的方法及系统 | |
CN104461847B (zh) | 数据处理程序检测方法及装置 | |
CN104184603A (zh) | 一种用户状态统计方法、装置及系统 | |
CN107612755A (zh) | 一种云资源的管理方法及其装置 | |
CN106155000A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |
|
RJ01 | Rejection of invention patent application after publication |