Cpu异常处理方法及装置的制造方法

文档序号:9826164阅读:909来源:国知局
Cpu异常处理方法及装置的制造方法
【技术领域】
[0001]本申请涉及设备异常处理技术领域,尤其涉及CPU异常处理方法及装置。
【背景技术】
[0002]当前网络安全设备需要针对过往的报文进行很多复杂的处理、分析、计算等,因为网络上的报文千奇百怪,设计上或者编码稍有差错,一个畸形报文就足以导致整个设备重启、CF1U异常。例如目前的ALG (App Ii cat 1n Layer Gateway,应用层网关)处理、DPI (DeepPacket Inspect1n,深度包检测)等处理过程,经常出现异常死机,而又不容易找到引起异常的报文,定位非常困难。
[0003]设备进入异常后,系统记录异常时各个CPU的寄存器信息及堆栈信息就重启恢复现场了。
[0004]但是,通过查看堆栈信息,只能初步定位出最后是哪个函数异常了,具体是什么原因引起(PU异常则无法得知。需要重新编译版本,增加调试信息,在现场进行复现,同时需要在设备的接口处抓报文,通过分析这些报文,逐个回放报文来分析具体哪个报文引起CPU异常。可见,通过这种方式定位问题复杂、耗时,且很多时候畸形报文出现的频率很低,因此当CPU异常后,若后续长时间畸形报文不出现,就会导致问题无法定位。

【发明内容】

[0005]本申请实施例提供CPU异常处理方法及装置。
[0006]本申请的技术方案是这样实现的:
[0007]一种CPU异常处理方法,该方法包括:
[0008]CPU接收到任一报文,将该报文放入缓存中,将报文的缓存首地址和报文长度记录到预设的第一全局变量中;
[0009]当CPU将报文从缓存中取出并成功发送出去时,CPU删除第一全局变量中保存的该报文的缓存首地址和报文长度信息;
[0010]当CPU异常时,CPU根据第一全局变量中存储的所有报文的缓存首地址和报文长度信息,从缓存中读取对应的原始报文内容,将读取的原始报文内容保存到预设高端存储区域中,所述高端存储区域存储的信息在设备重启过程中不改变;
[0011]当设备重启后,CPU从高端存储区域中读取所有原始报文内容,将读取的所有原始报文内容复制到磁盘中。
[0012]一种CPU异常处理方法,该方法包括:
[0013]CPU的任一核接收到任一报文,将该报文放入缓存中,将报文的缓存首地址和报文长度记录到预设的针对该核的第一全局变量中;
[0014]当CPU将报文从缓存中取出并成功发送出去时,CPU删除第一全局变量中保存的该报文的缓存首地址和报文长度信息;
[0015]当CPU异常时,CPU根据针对各核的第一全局变量中存储的所有报文的缓存首地址和报文长度,从缓存中读取对应的原始报文内容,将读取的所有原始报文内容保存到预设高端存储区域中,所述高端存储区域存储的信息在设备重启过程中不改变;
[0016]当设备重启后,CPU从高端存储区域中读取针对各核的所有原始报文内容,将读取的所有原始报文内容复制到磁盘中。
[0017]一种CPU异常处理装置,该装置包括:
[0018]记录模块:接收到任一报文,将该报文放入缓存中,将报文的缓存首地址和报文长度记录到预设的第一全局变量中;当将报文从缓存中取出并成功发送出去时,CPU删除第一全局变量中保存的该报文的缓存首地址和报文长度信息;
[0019]异常处理模块:当CPU异常时,根据第一全局变量中存储的所有报文的缓存首地址和报文长度信息,从缓存中读取对应的原始报文内容,将读取的原始报文内容保存到预设高端存储区域中,所述高端存储区域存储的信息在设备重启过程中不改变;
[0020]重启处理模块:当设备重启后,从高端存储区域中读取所有原始报文内容,将读取的所有原始报文内容复制到磁盘中。
[0021 ] 一种CPU异常处理装置,该装置包括:
[0022]记录模块:当任一核接收到任一报文时,将该报文放入缓存中,将报文的缓存首地址和报文长度记录到预设的针对该核的第一全局变量中;当将报文从缓存中取出并成功发送出去时,删除第一全局变量中保存的该报文的缓存首地址和报文长度信息;
[0023]异常处理模块:当CPU异常时,根据针对各核的第一全局变量中存储的所有报文的缓存首地址和报文长度,从缓存中读取对应的原始报文内容,将读取的所有原始报文内容保存到预设高端存储区域中,所述高端存储区域存储的信息在设备重启过程中不改变;
[0024]重启处理模块:当设备重启后,从高端存储区域中读取针对各核的所有原始报文内容,将读取的所有原始报文内容复制到磁盘中。
[0025]可见,本申请实施例中,当报文(例如:畸形报文)未发送成功时,保存该未发送成功的报文的内容,当CPU异常后,将未发送成功的报文的内容保存到高端存储区域,当设备重启后,将高端存储区域中的信息复制到磁盘,这样就可从磁盘中读取到未发送成功地报文(例如:畸形报文)的内容,对该报文的内容进行针对性分析,就可提高异常定位精度。
【附图说明】
[0026]图1为本申请一实施例提供的CPU异常处理方法流程图;
[0027]图2为本申请另一实施例提供的多核CPU异常处理方法流程图;
[0028]图3为本申请一实施例提供的CPU异常处理装置的组成图;
[0029]图4为本申请另一实施例提供的CPU异常处理装置的组成图。
【具体实施方式】
[0030]下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0031]为方便理解本申请实施例,首先给出以下说明:
[0032]中断和异常是使处理转向的系统事件,硬件或者软件都可以检测到。
[0033]内核是这样区分中断和异常的:
[0034]I)中断是任何时刻都可能发生的与处理器当前执行无关的异步事件,主要由I/O(Input/Output,输入/输出)设备、处理器时钟或计时器产生,并且处理器能够打开或关闭对中断的响应。
[0035]2)异常是特定指令执行中产生的,使用同样的数据在相同条件下重新运行程序会再次产生异常。异常包括内存访问越界、部分调试指令和除零错误等。内核也将系统服务调用视为异常。
[0036]图1为本申请一实施例提供的CPU异常处理方法流程图,其具体步骤如下:
[0037]步骤101:CPU接收到任一报文,将该报文放入缓存中,将报文的缓存首地址和报文长度记录到预设的第一全局变量中。
[0038]步骤102: CPU对报文进行业务处理,将报文的业务状态信息记录到预设的第二全局变量中,同时将报文的业务统计信息记录到预设的第三全局变量中。
[0039]业务状态信息包括:CPU对报文执行的业务的状态信息。例如:对于会话业务,可以根据报文的标识信息(如:五元组)找到对应的会话控制块,将会话控制块中的如下业务状态信息记录到第二全局变量中:
[0040]I)老化时间:多长时间该会话老化;
[0041]2)协议类型:TCP(Transmiss1n Control Protocol,传输控制协议)、UDP(UserDatagram Protocol,用户数据报协议)、ICMP( Internet Control Message Protocol,因特网控制信息协议)等;
[0042]3)应用类型:FTP(File Transfer Protocol,文件传输协议)、HTTP(HyperTextTransfer Protocol,超文本传输协议)、微信、QQ等;
[0043]4)ALG类型:H323、FTP、SIP(Sess1n Initiat1n Protocol,会话发起协议)、telnet N DNS (Domain Name System,域名系统)等;
[0044]5)当前状态:具体地,
[0045]UDP类型状态有:OPEN(打开)、ESTABLISH(建立)、CLOSE(关闭)等;
[0046]TCP类型状态有:SYN_SEND(同步发送)、SYN_ACK(同步确认)'ESTABLISH(建立)、FIN_SEND(结束发送)、FIN_ACK(结束确认)、CLOSE(关闭);
[0047]6)CPU占用率:当前CPU占用率;
[0048]7)内存占用率:当前内存占用率;
[0049 ] 8)连接数:当前会话总的数目;
[0050] 9)TCP连接数:TCP连接的数目;
[0051 ] 10)UDP连接数:当前UDP的连接数。
[0052]业务统计信息分为公共统计信息和本报文对应的控制块统计信息。例如:对于会话业务,会话的公共统计信息可包括:
[0053]I)新建速率:当前每秒钟建立会话
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1