一种基于linux内存错误的处理方法及装置与流程

文档序号:11949850阅读:222来源:国知局
一种基于linux内存错误的处理方法及装置与流程

本发明涉及错误诊断技术领域,更具体地说,涉及一种基于linux内存错误处理的方法及装置。



背景技术:

随着时代的进步,互联网的快速发展,人们生活水平的提高,计算机已经成为人们不可或缺的一部分,无论是在工作、学习和生活中都离不开计算机,它存储着重要的数据,也可以进行复杂的计算。计算机的诞生给人们的生活带来了非常便捷的体验。计算机硬件系统是由运算器、控制器、存储器、输入设备和输出设备构成。计算机中的存储器分为内存和外存。内存用来存放当前正在使用的,或随时要用的程序和数据。一旦计算机内存出现错误或故障,会引起系统不能正常工作或宕机。

因此,如何对内存错误事件进行诊断及处理,避免由于内存出现错误或故障,会引起系统不能正常工作或宕机是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种基于linux内存错误处理的方法及装置,以实现对内存错误事件进行诊断及处理,避免由于内存出现错误或故障,引起系统不能正常工作或宕机。

为实现上述目的,本发明实施例提供了如下技术方案:

一种基于linux内存错误的处理方法,包括:

分析内存事件源中错误事件的事件类型,分别统计每种事件类型的发生次数;

将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件;其中,N为正整数;

判断内存故障格式事件的事件类型是否为内存页面错误;

若是,则调用内存页面离线接口对相应的故障内存页面进行离线操作。

其中,所述分析内存事件源中错误事件的事件类型,分别统计每种事件类型的发生次数,包括:

触发计时器开始计时;

依次分析内存事件源中的错误事件的事件类型,并将每种事件类型的错误事件的发生次数记录到对应的计数器。

其中,所述将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件,包括:

若检测到所述计时器的计时时长为第一预定时长,则检测计数器中是否存在发生次数大于N次的事件类型;

若存在,则将所述事件类型对应的错误事件标记为内存故障格式事件。

其中,当所述计时器的计时时长为第一预定时长,且间隔第二预定时长后,重新触发所述计数器清零并开始计时,重新触发所述计数器清零并开始计时。

其中,将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件,包括:

将在24小时内发生次数大于3次的事件类型所对应的错误事件,标记为内存故障格式事件。

其中,还包括:

生成与所述内存故障格式事件相对应的日志文件。

一种基于linux内存错误的处理系统,包括:

分析模块,用于分析内存事件源中的错误事件的事件类型;

统计模块,用于分别统计每种事件类型的发生次数;

标记模块,用于将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件;其中,N为正整数;

判断模块,用于判断内存故障格式事件的事件类型是否为内存页面错误;若是,则触发执行模块;

所述执行模块,用于调用内存页面离线接口对相应的故障内存页面进行离线操作。

其中,所述统计模块包括:

计时模块,用于触发计时器开始计时;

计数模块,用于统计每种事件类型的发生次数,并记录到对应的计数器。

其中,所述标记模块用于检测到所述计时器的计时时长为第一预定时长时,且检测到计数器中存在发生次数大于N次的事件类型时,将所述事件类型对应的错误事件标记为内存故障格式事件

其中,还包括:

日志文件生成模块,用于生成与所述内存故障格式事件相对应的日志文件。

通过以上方案可知,本发明实施例提供的一种基于linux内存错误的处理方法,包括:分析内存事件源中错误事件的事件类型,分别统计每种事件类型的发生次数;将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件;其中,N为正整数;判断内存故障格式事件的事件类型是否为内存页面错误;若是,则调用内存页面离线接口对相应的故障内存页面进行离线操作。可见,在本实施例中,通过对内存事件源中的错误事件进行分类并处理,例如当事件类型为内存页面故障时,通过对故障内存页面进行离线操作,可以避免对计算机系统的影响;本发明还公开了一种基于linux内存错误的处理系统,同样能实现上述技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种基于linux内存错误的处理方法流程示意图;

图2为本发明实施例公开的一种基于linux内存错误的处理系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种基于linux内存错误处理的方法及装置,以实现对内存错误事件进行诊断及处理,避免由于内存出现错误或故障,引起系统不能正常工作或宕机。

参见图1,本发明实施例提供的一种基于linux内存错误的处理方法,包括:

S101、分析内存事件源中错误事件的事件类型,分别统计每种事件类型的发生次数;

其中,所述分析内存事件源中错误事件的事件类型,分别统计每种事件类型的发生次数,包括:

触发计时器开始计时;

依次分析内存事件源中的错误事件的事件类型,并将每种事件类型的错误事件的发生次数记录到对应的计数器。

具体的,在本实施例中统计每种事件类型的发生次数的同时需要计时;这里的统计每种事件类型的发生次数为:记录同一种类型的发生次数,例如:若依次分析出内存事件源中的错误事件的事件类型为:A,A,A,B,B,C,C,C,C,F;则每个事件类型的发生次数为:A的发生次数为3,B的发生次数为2,C的发生次数为4,F的发生次数为1。

S102、将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件;其中,N为正整数;

其中,所述将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件,包括:

若检测到所述计时器的计时时长为第一预定时长,则检测计数器中是否存在发生次数大于N次的事件类型;

若存在,则将所述事件类型对应的错误事件标记为内存故障格式事件。

具体的,在本实施例中根据内存事件源中的错误事件进行诊断,诊断原则是根据规则进行分析,规则是指在一定时间T内,若同一类事件发生N次,则说明会产生故障,则将内存错误事件标记为内存故障格式事件。

其中,将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件,包括:

将在24小时内发生次数大于3次的事件类型所对应的错误事件,标记为内存故障格式事件。

可以理解的是,上述的诊断原则可以根据用户的经验值进行设定,例如设定诊断原则为:engine serd.cpu.mem{N=3,T=24小时};即在24小时某类事件的发生次数为3。

例如在上文所记载的例子中,A的发生次数为3,B的发生次数为2,C的发生次数为4,F的发生次数为1,以上即为24小时内不同事件类型的发生次数;若设定N为3,可见,则只有事件类型为C的错误事件的发生次数大于3,则么将事件类型为C的错误事件标记为内存故障格式事件。

其中,当所述计时器的计时时长为第一预定时长,且间隔第二预定时长后,重新触发所述计数器清零并开始计时,重新触发所述计数器清零并开始计时。

可以理解的是,在本实施例中,检测第一预定时长为T后,可以停止第二预定时长之后,再进行检测,这里的第二预定时长可以自行设置;例如:若想时间间隔小,则设置第二预定时长为15s,若想时间间隔长,则可以设置预定时长为1小时。

S103、判断内存故障格式事件的事件类型是否为内存页面错误;

若是,则执行S104、调用内存页面离线接口对相应的故障内存页面进行离线操作。

具体的,若内存故障格式事件的事件类型不是内存页面错误,则可以生成一个相应的提示信息。

具体的,在本实施例中接收到内存故障格式事件后,根据事件类型调用处理接口,如内存页面错误调用内存页面离线接口进行离线处理。

基于上述技术方案,本方案还包括:

生成与所述内存故障格式事件相对应的日志文件。

具体的,为例清楚的了解内存出现的故障的具体信息,生成与内存故障格式事件所对应的日志文件;日志文件中至少包括了事件类型,事件发生次数、事件发生时间,事件如何处理等详细信息。

下面对本发明实施例提供的处理系统进行介绍,下文描述的处理系统与上文描述的处理方法可以相互参照。

参见图2,本发明实施例提供的一种基于linux内存错误的处理系统,包括:

分析模块100,用于分析内存事件源中错误事件的事件类型;

统计模块200,用于统计每种事件类型的发生次数;

标记模块300,用于将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件;其中,N为正整数;

判断模块400,用于判断标记为内存故障格式事件的事件类型是否为内存页面错误;若是,则触发执行模块500;

所述执行模块500,用于调用内存页面离线接口对相应的故障内存页面进行离线操作。

基于上述技术方案,在本方案中所述统计模块200包括:

计时模块,用于触发计时器开始计时;

计数模块,用于统计每种事件类型的发生次数,并记录到对应的计数器。

基于上述技术方案,所述标记模块用于检测到所述计时器的计时时长为第一预定时长时,且检测到计数器中存在发生次数大于N次的事件类型时,将所述事件类型对应的错误事件标记为内存故障格式事件

基于上述技术方案,本方案还包括:

日志文件生成模块,用于生成与所述内存故障格式事件相对应的日志文件。

本发明实施例提供的一种基于linux内存错误的处理方法,包括:分析内存事件源中错误事件的事件类型,分别统计每种事件类型的发生次数;将在第一预定时长内发生次数大于N的事件类型所对应的错误事件,标记为内存故障格式事件;其中,N为正整数;判断内存故障格式事件的事件类型是否为内存页面错误;若是,则调用内存页面离线接口对相应的故障内存页面进行离线操作。可见,在本实施例中,通过对内存事件源中的错误事件进行分类并处理,例如当事件类型为内存页面故障时,通过对故障内存页面进行离线操作,可以避免对计算机系统的影响;本发明还公开了一种基于linux内存错误的处理系统,同样能实现上述技术效果。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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