一种异常进程定位方法、装置及系统与流程

文档序号:11199125阅读:721来源:国知局
一种异常进程定位方法、装置及系统与流程
本发明涉及通信
技术领域
,尤其涉及一种异常进程定位方法、装置及系统。
背景技术
:以太网无源光网络(ethernetpassiveopticalnetwork,epon),由局侧的光线路终端(opticallineterminal,olt)、分光器及光网络单元(opticalnetworkunit,onu)通过光纤连接而成,是一种采用点到多点结构的单纤双向光接入网络,具有成本低、寿命长、传输距离远和带宽高等优点,受到了广泛的认可,近些年获得了飞速的发展。在epon中onu与用户端连接用于向与其连接的用户提供宽带服务,因此对onu故障的准确获知,对及时排除onu的故障,提高用户的体验至关重要。然而现有技术中,在epon运行过程中,olt只能获取onu的内存使用参数信息,例如:onu的内存使用率,或者接收onu发送的内存使用异常告警信息,并不能具体的获知是由于onu运行的哪个进程导致的onu内存使用异常,当遇到onu内存使用异常时,运维人员只能花费很长的时间对onu运行的进程进行逐一排查,从而定位出异常进程,造成了人力物力的浪费,也降低了用户的体验。技术实现要素:本发明提供了一种异常进程定位方法、装置及系统,用以解决现有技术中当遇到onu内存使用异常时,只能采用人工方式对异常进程定位,浪费人力物力,影响用户体验的问题。本发明公开了一种异常进程定位方法,应用于光线路终端olt,所述方法包括:根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常;在确定所述onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息;根据接收到的所述onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常。进一步地,所述根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常包括:如果接收到onu发送的段错误告警信息,确定所述onu内存使用异常;如果接收到onu发送的分配内存失败告警信息,确定所述onu内存使用异常;如果读取到所述onu当前周期的内存使用率,判断当前周期的内存使用率与保存的所述onu上一周期的内存使用率的差值是否大于设定的阈值,如果是,确定所述onu的内存使用异常。进一步地,所述指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息包括:向所述onu下发所述olt保存的所述类型的检测插件,使所述onu根据所述类型的检测插件,检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息。进一步地,所述确定内存使用异常的类型之后,指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息之前,所述方法还包括:指示所述onu进行检测的时间。进一步地,如果存在异常进程,所述方法还包括:识别所述异常进程是否为设定的关键进程;如果是,判断所述onu的当前内存使用率是否大于第一设定阈值,并判断所述类型是否为设定异常类型;如果至少一个判断结果为是,指示所述onu启动备用镜像。进一步地,如果所述异常进程为非设定的关键进程,所述方法还包括:判断所述onu的当前内存使用率是否大于第二设定阈值,其中所述第二设定阈值小于所述第一设定阈值;如果是,指示所述onu关闭所述异常进程。本发明公开了一种异常进程定位方法,应用于光网络单元onu,所述方法包括:根据光线路终端olt的指示检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息,所述指定类型为当前内存使用异常的类型,其中所述内存使用异常的类型为所述olt根据获取的所述onu的内存使用信息确定的;将检测到的当前运行的每个进程的内存使用异常信息记录在检测日志中;向所述olt上报所述检测日志,使olt根据每个进程的内存使用异常信息,确定每个进程是否异常。进一步地,所述根据光线路终端olt的指示检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息包括:接收olt下发的指定类型的插件,调用所述指定类型的插件,检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息。进一步地,如果所述指定类型为段错误异常,所述指定类型对应的内存使用异常信息包括:内存多重释放、内存错误释放、内存溢出;如果所述指定类型为分配内存异常,所述指定类型对应的内存使用异常信息包括:保存的数据未对齐、内存碎片;如果所述指定类型为内存使用率异常,所述指定类型对应的内存使用异常信息包括:内存未被释放。进一步地,所述方法还包括:接收到所述olt发送的启动备用镜像的第一指示时,启动自身的备用镜像;或,接收到所述olt发送的关闭异常进程的第二指示时,根据所述第二指示中包含的异常进程的标识信息,关闭所述标识信息的进程。本发明公开了一种异常进程定位装置,应用于光线路终端olt,所述装置包括:第一确定模块,用于根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常;检测模块,用于在确定所述onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息;第二确定模块,用于根据接收到的所述onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常。进一步地,所述第一确定模块,具体用于如果接收到onu发送的段错误告警信息,确定所述onu内存使用异常;如果接收到onu发送的分配内存失败告警信息,确定所述onu内存使用异常;如果读取到所述onu当前周期的内存使用率,判断当前周期的内存使用率与保存的所述onu上一周期的内存使用率的差值是否大于设定的阈值,如果是,确定所述onu的内存使用异常。进一步地,所述检测模块,具体用于向所述onu下发所述olt保存的所述类型的检测插件,使所述onu根据所述类型的检测插件,检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息。进一步地,所述检测模块,还用于指示所述onu进行检测的时间。进一步地,所述装置还包括:异常处理模块,用于如果存在异常进程,识别所述异常进程是否为设定的关键进程;如果是,判断所述onu的当前内存使用率是否大于第一设定阈值,并判断所述类型是否为设定异常类型;如果至少一个判断结果为是,指示所述onu启动备用镜像。进一步地,所述异常处理模块,还用于如果所述异常进程为非设定的关键进程,判断所述onu的当前内存使用率是否大于第二设定阈值,其中所述第二设定阈值小于所述第一设定阈值;如果是,指示所述onu关闭所述异常进程。本发明公开了一种异常进程定位装置,应用于光网络单元onu,所述装置包括:检测模块,用于根据光线路终端olt的指示检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息,所述指定类型为当前内存使用异常的类型,其中所述内存使用异常的类型为所述olt根据获取的所述onu的内存使用信息确定的;记录模块,用于将检测到的当前运行的每个进程的内存使用异常信息记录在检测日志中;发送模块,用于向所述olt上报所述检测日志,使olt根据每个进程的内存使用异常信息,确定每个进程是否异常。进一步地,所述检测模块,具体用于接收olt下发的指定类型的插件,调用所述指定类型的插件,检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息。进一步地,所述装置还包括:异常处理模块,用于接收到所述olt发送的启动备用镜像的第一指示时,启动自身的备用镜像;或,接收到所述olt发送的关闭异常进程的第二指示时,根据所述第二指示中包含的异常进程的标识信息,关闭所述标识信息的进程。本发明公开了一种异常进程定位系统,所述异常进程定位系统包括基于上述的应用于光线路终端olt的异常进程定位装置,及基于上述的应用于光网络单元onu的异常进程定位装置。本发明公开了一种异常进程定位方法、装置及系统,所述方法包括:olt根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常;在确定所述onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息;根据接收到的所述onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常。由于在本发明实施例中,在确定onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息,并根据接收到的onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常,提高了异常进程定位效率,节约了人力物力,提高了用户的体验。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例1提供的一种异常进程定位过程示意图;图2为本发明实施例3提供的一种报文结构示意图;图3为本发明实施例3提供的一种报文内容示意图;图4为本发明实施例3提供的一种下发插件过程示意图;图5为本发明实施例5提供的一种异常进程定位过程示意图;图6为本发明实施例5提供的一种报文结构示意图;图7为本发明实施例5提供的一种报文内容示意图;图8为本发明实施例5提供的一种日志上传过程示意图;图9为本发明实施例7提供的一种异常进程定位装置结构示意图;图10为本发明实施例8提供的一种异常进程定位装置结构示意图;图11为本发明实施例9提供的一种异常进程定位系统结构示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。实施例1:图1为本发明实施例提供的一种异常进程定位过程示意图,该过程包括:s101:根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常。本发明实施例提供的异常进程定位方法应用于olt,所述内存使用信息包括内存使用参数信息,例如:内存使用率、内存使用量等,还包括内存使用告警信息,例如:段错误告警信息等。具体的,olt根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常。例如:olt获取到onu的内存使用率为90%,大于预设的内存使用率阈值70%,确定onu的内存使用异常;olt接到onu上报的段错误告警信息,确定onu内存使用异常。s102:在确定所述onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息。在本发明实施例中,在olt中预先保存有内存使用异常的类型,例如:段错误异常、分配内存异常、内存使用率异常等,并针对每种内存使用异常的类型预先保存有该类型对应的内存使用异常时的内存使用信息,当olt确定onu的内存使用异常时,根据确定onu的内存使用异常的内存使用信息,确定内存使用异常的类型。例如:针对段错误异常预先保存有段错误异常对应的内存使用异常时的内存使用信息为onu上报的段错误告警信息。olt接收到onu上报的段错误告警信息,确定onu的内存使用异常后,根据确定onu的内存使用异常的onu上报的段错误告警信息,确定onu的内存使用异常的类型为段错误异常。另外,在olt中针对每种内存使用异常的类型保存有该类型对应的内存使用异常的信息,例如:针对段错误异常保存的内存使用异常的信息包括:内存多重释放、内存错误释放、内存溢出;针对分配内存异常保存的内存使用异常的信息包括:保存的数据未对齐、内存碎片;针对内存使用率异常保存的内存使用异常的信息包括:内存未被释放。当olt确定onu的内存使用异常的类型后指示onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息。例如:olt确定onu存在内存使用异常的类型为段错误异常,olt指示onu检测onu当前运行的每个进程是否存在与段错误异常对应的内存多重释放、内存错误释放、内存溢出;如果olt确定onu同时存在段错误异常和分配内存异常两种内存使用异常的类型,olt指示onu检测onu当前运行的每个进程是否存在与段错误异常对应的内存多重释放、内存错误释放、内存溢出及是否存在与分配内存异常对应的保存的数据未被对齐、内存碎片。s103:根据接收到的所述onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常。具体,onu根据olt的指示检测自身当前运行的每个进程是否存在与所述类型对应的内存使用异常信息后,将检测到的当前运行的每个进程的内存使用异常信息记录在检测日志中;olt根据接收到的所述onu上报的检测日志中包含的所述onu当前的运行的每个进程是否存在内存使用异常信息,确定每个进程是否异常。例如:检测日志中包含进程1、进程2、进程3,其中针对进程1记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、不存在内存溢出,针对进程2记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、不存在内存溢出,针对进程3记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、存在内存溢出,根据进程1的内存使用异常信息不存在内存多重释放、不存在内存错误释放、不存在内存溢出,确定进程1不异常,根据进程2的内存使用异常信息不存在内存多重释放、不存在内存错误释放、不存在内存溢出,确定进程2不异常,根据进程3的内存使用信息存在内存溢出,确定进程3异常。由于在本发明实施例中,在确定onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息,并根据接收到的onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常。提高了异常进程定位效率,节约了人力物力,提高了用户的体验。实施例2:为了提高异常进程定位的准确性,在上述各实施例的基础上,在本发明实施例中,所述根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常包括:如果接收到onu发送的段错误告警信息,确定所述onu内存使用异常;如果接收到onu发送的分配内存失败告警信息,确定所述onu内存使用异常;如果读取到所述onu当前周期的内存使用率,判断当前周期的内存使用率与保存的所述onu上一周期的内存使用率的差值是否大于设定的阈值,如果是,确定所述onu的内存使用异常。在本发明实施,olt可以主动读取onu的内存使用参数信息,并接收onu上报的内存使用告警信息。具体的,如果接收到onu发送的段错误告警信息,确定onu内存使用异常;如果接收到onu发送的分配内存失败告警信息,确定所述onu内存使用异常;如果读取到所述onu当前周期的内存使用率,判断当前周期的内存使用率与保存的所述onu上一周期的内存使用率的差值是否大于设定的阈值,如果是,确定所述onu的内存使用异常,其中设定的阈值可以为5%、10%等;较佳的,还可以根据当前周期的内存使用率所在的内存使用率区间,确定设定的阈值的大小,例如:当前周期的内存使用率所在的内存使用率区间为0%-50%,确定设定的阈值为10%,当前周期的内存使用率所在的内存使用率区间为51%-70%,确定设定的阈值为7%,当前周期的内存使用率所在的内存使用率区间为71%-90%,确定设定的阈值为5%,当前周期的内存使用率所在的内存使用率区间为91%-100%,确定设定的阈值为2%。另外,为了进一步提高对onu内存使用异常确定的准确性,如果确定当前周期onu的内存使用异常,还可以继续判断当前周期之前的设定数量的周期对应的onu内存使用是否均为异常,如果是,则输出确定onu的内存使用异常的结果。具体的,olt可以向onu下发查询报文,查询onu的内存使用信息,具体的该查询报文用于获取onu的内存使用率。表1为本发明实施例提供的一种olt查询onu的内存使用信息的报文格式。偏移大小字段名称描述0x00082操作码0xeeee表示进行内存检测机制0x000a1配置操作0x00(查询onu的内存使用信息)0x000b1长度0x02(2字节)0x000c2数据0表1表1所示报文包含操作码、配置操作、长度、数据等字段,每个字段对应的偏移分别为0x0008、0x000a、0x000b、0x000c,每个字段占用的字节大小分别为2字节、1字节、1字节、2字节,其中操作码字段对应的值为0xeeee表示进行内存检测机制,配置操作字段对应的值为0x00,表示查询onu的内存使用信息,长度字段对应的值为0x02,表示数据的有效长度为2字节,数据字段对应的值为0,表示没有数据。onu接收到olt下发的查询报文后,向olt上报自身的内存使用信息,另外,如果onu检测到内存使用告警后,也会主动向olt上报内存使用信息,表2为本发明实施例提供的一种onu向olt上报内存使用信息的报文格式。表2表2所示报文包含操作码、配置操作、长度、数据等字段,每个字段对应的偏移分别为0x0008、0x000a、0x000b、0x000c,每个字段占用的字节大小分别为2字节、1字节、1字节、2字节,其中操作码字段对应的值为0xeeee,表示进行内存检测机制,配置操作字段对应的值为0x00,表示查询onu的内存使用信息,长度字段对应的值为0x02,表示数据的有效长度为2字节。如果onu接收到olt发送的查询报文后,向olt上报自身的内存使用信息时,数据字段对应的值为该onu内存使用的大小(size),即使用的内存占总内存大小的百分比;当然了,如果是onu检测到内存使用告警后,主动向olt上报内存使用信息时,数据字段对应的值为内存使用告警信息的标识。当确定onu内存使用异常后,可以根据确定onu内存使用异常的onu的内存使用信息,确定内存使用异常的类型。具体的,如果是接收到onu发送的段错误告警信息,确定onu内存使用异常,并根据所述接收到的onu发送的段错误告警信息,确定内存使用异常的类型为段错误异常;如果接收到onu发送的分配内存失败告警信息,确定所述onu内存使用异常,并根据所述接收到的onu发送的分配内存失败告警信息,确定内存使用异常的类型为分配内存异常;如果读取到所述onu当前周期的内存使用率,确定onu当前周期的内存使用率和保存的所述onu上一周期的内存使用率的差值大于设定的阈值,确定所述onu的内存使用异常,并根据所述读取到所述onu当前周期的内存使用率,确定内存使用异常的类型为内存使用率异常。实施例3:为了节约onu的存储资源,在上述各实施例的基础上,在本发明实施例中所述指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息包括:向所述onu下发所述olt保存的所述类型的检测插件,使所述onu根据所述类型的检测插件,检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息。在本发明实施例中,每种内存使用异常的类型对应的检测插件可以保存在onu中,也可以保存在olt,但是因为onu的内存资源较小,为了节省onu的内存资源,将每种内存使用异常的类型对应的检测插件保存在olt中。具体的,在olt中预先保存有针对每种类型的检测插件,olt确定内存使用异常的类型后,向所述onu下发自身保存的所述类型的检测插件,使所述onu根据所述类型的检测插件,检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息。例如:olt确定内存使用异常的类型为分配内存异常,向所述onu下发自身保存的分配内存异常的检测插件,使所述onu根据所述分配内存异常的检测插件,检测所述onu当前运行的每个进程是否存在与所述分配内存异常对应的内存使用异常信息。表3为本发明实施例提供的插件功能的信息。表3根据表3所示,插件a为内存使用率异常插件,下发条件为内存使用率异常,主要功能为检测是否存在与内存使用率异常对应的内存使用异常信息,例如:内存未被释放等,记录在日志(log)中的信息包括运行进程的基本信息:进程对应的文件名、对应文件中的行数、进程的进程号、进程分配内存的大小,及进程是否存在内存未被释放等。插件b为段错误异常插件,下发条件为段错误异常,主要功能为检测是否存在与段错误异常对应的内存使用异常信息,例如:内存多重释放、内存错误释放、内存溢出等,记录在log中的信息包括进程的基本信息:进程对应的文件名、对应文件中的行数、进程的进程号,及是否存在内存错误释放、是否存在内存双重释放、是否存在内存溢出等。插件c为分配内存异常插件,下发条件为分配内存异常,主要功能为检测是否存在与分配内存异常对应的内存使用异常信息,例如:保存的数据未对齐、内存碎片等,记录在log中的信息包括进程的基本信息:进程对应的文件名、对应文件中的行数、进程的进程号,及是否存在保存的数据未被对齐,是否存在内存碎片等。另外,olt根据onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常后,针对确定的异常进程,用户还可以通过查看针对该异常进程记录在log中的信息,确定该异常进程异常的具体原因,如该异常进程存在内存错误释放,也可以通过该异常进程对应的基本信息,如进程对应的文件名、对应文件中的行数,确定该异常进程对应的文件名、对应文件中的行数,便于用户对该异常进程对应代码的查找与修改。在本发明实施例中,每种类型的插件由多个报文构成,具体的每个报文的结构如图2所示,报文包括:操作码、操作标号、数据(data)、帧检验序列(framechecksequence,fcs)等信息,其中操作码对应的值为0xeeee,操作标号对应的值为0x02,表示下发插件,其中data包括数据类型(data_tpye)和值(value)。具体的,每个报文的具体内容如图3所示,其中data_type为数据类型、length为长度、check_num为请求上传的总报文数、winlen为每个报文的长度、total_len为报文总长度、endflag为结束标记、datalen为发送数据长度、start为开始发送报文、response为对开始发送报文的回复、sentfiledata为发送报文数据、getnext为发送下一个报文、endrequest为结束请求、endresponse为回复结束请求。图4为本发明实施例提供的一种下发插件过程示意图,olt向onu发起加载(load)插件的请求,其中load插件的请求中包含该插件的总包数、总长度、每个包的长度,其中总包数和每个包的长度,即为总报文数和每个报文的长度,onu接收到load插件的请求,回复load插件的请求,olt接收到onu发送的回复load插件的请求,发送第一个报文,其中发送的第一个报文的报文头中包括报文的序列号、该报文的长度、标记不是最后一个报文的信息,onu接收第一个报文,继续获取下一个报文,olt发送第二个报文,其中发送的第二个报文的报文头中包括报文的序列号、该报文的长度、标记不是最后一个报文的信息,直至olt发送最后一个报文,其中发送的最后一个报文的报文头中包括报文的序列号、该报文的长度、标记是最后一个报文的信息,onu接收到olt发送的最后一个报文,校验报文的个数、总长度,即校验onu接收到olt发送的报文的总数量及报文的总长度,并向olt回复校验结果,发送结束的请求,olt向onu回复结束请求,完成插件的下发。另外,因在本发明实施例中为了节省onu的内存资源,只将每种类型的检测插件保存在olt中,不在onu中保存检测插件,olt向onu下发检测插件后,还需向onu下发打开检测开关进行检测的指令,使onu调用olt下发的检测插件,检测所述onu当前运行的每个进程是否存在与所述插件的类型对应的内存使用异常信息,具体的,olt可以通过向onu下发指示调用检测插件的报文,向onu下发打开检测开关进行检测的指令。表4为本发明实施例提供的一种olt指示onu调用检测插件进行检测的报文格式。偏移大小字段名称描述0x00082操作码0xeeee表示进行内存检测机制0x000a1配置操作0x01(打开内存检测的开关)0x000b1长度0x01(1字节)0x000c1数据0x01:内存检测开关打开表4表4所示报文包含操作码、配置操作、长度、数据等字段,每个字段对应的偏移分别为0x0008、0x000a、0x000b、0x000c,每个字段占用的字节大小分别为2字节、1字节、1字节、1字节,其中操作码字段对应的值为0xeeee,表示进行内存检测机制,配置操作字段对应的值为0x01,表示打开内存检测开关,长度字段对应的值为0x01,表示数据的有效长度为1字节,数据字段对应的值为0x01,表示内存检测打开进行内存检测,另外如果数据字段对应的值为0x00,表示内存检测关闭不进行内存检测。进一步地,为了提高异常进程定位的效率,olt还可以按照用于预先配置的检测时间,指示onu调用检测插件进行检测的检测时间,具体的olt可以通过向onu下发指示调用检测插件进行检测的检测时间的报文,指示onu调用检测插件进行检测的检测时间,表5为本发明实施例提供的一种onu指示onu调用检测插件进行检测的检测时间的报文格式。偏移大小字段名称描述0x00082操作码0xeeee表示进行内存检测机制0x000a1配置操作0x03(配置内存检测的时间)0x000b1长度0x02(2字节)0x000c2数据时间表5表5所示报文包含操作码、配置操作、长度、数据等字段,每个字段对应的偏移分别为0x0008、0x000a、0x000b、0x000c,每个字段占用的字节大小分别为2字节、1字节、1字节、2字节,其中操作码字段对应的值为0xeeee,表示进行内存检测机制,配置操作字段对应的值为0x03,表示配置内存检测的时间,长度字段对应的值为0x02,表示数据的有效长度为2字节,数据字段对应的值为进行检测的时间。实施例4:为了保证onu的正常运行,在上述各实施例的基础上,在本发明实施中,如果存在异常进程,所述方法还包括:识别所述异常进程是否为设定的关键进程;如果是,判断所述onu的当前内存使用率是否大于第一设定阈值,并判断所述类型是否为设定异常类型;如果至少一个判断结果为是,指示所述onu启动备用镜像。在本发明实施例中,设定的关键进程为onu运行时必须运行的进程,在olt中预先保存有关键进程的信息,例如关键进程的进程号,如果存在异常进程,可以通过判断该异常进程的进程号是否与保存的关键进程的进程号相同,判断该异常进程是否为关键进程。另外因为onu的内存使用异常的类型为段错误异常时,对应的异常进程无法运行,在本发明实施例中所述设定的异常类型为段错误异常。如果所述异常进程为关键进程,则说明onu的系统文件发生了损毁,判断所述onu的当前内存使用率是否大于第一设定阈值,并判断所述类型是否为设定异常类型,如果至少一个判断结果为是,onu的系统文件发生的损毁会导致onu无法正常工作,指示所述onu启动备用镜像,其中所述备用镜像,为onu备份的系统文件。如果所述异常进程为非设定的关键进程,所述方法还包括:判断所述onu的当前内存使用率是否大于第二设定阈值,其中所述第二设定阈值小于所述第一设定阈值;如果是,指示所述onu关闭所述异常进程。另外,如果所述异常进程不是关键进程,则说明onu的系统文件正常,并且该异常进程的关闭不会导致所述onu无法正常工作,判断所述onu的当前内存使用率是否大于第二设定阈值,其中所述第二设定阈值小于所述第一设定阈值;例如:所述第一设定阈值为70%,第二设定阈值为50,如果所述onu的当前内存使用率大于第二设定阈值,则说明所述异常进程会影响onu的运行效率,指示所述onu关闭所述异常进程。实施例5:图5为本发明实施例提供的一种异常进程定位过程示意图,该过程包括:s501:根据光线路终端olt的指示检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息,所述指定类型为当前内存使用异常的类型,其中所述内存使用异常的类型为所述olt根据获取的所述onu的内存使用信息确定的。本发明实施例提供的异常进程定位方法应用于onu,所述内存使用信息包括内存使用参数信息,例如:内存使用率、内存使用量等,还包括内存使用告警信息,例如:段错误告警信息等。具体的,olt根据获取的onu的内存使用信息,确定所述onu的内存使用异常,并根据所述确定onu内存使用异常的onu的内存使用信息,确定内存使用异常的类型后,指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息。onu根据olt的指示检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息,其中,所述指定类型为onu当前内存使用异常的类型。例如:olt获取到onu上报的段错误告警信息,确定onu的内存使用异常,并确定内存使用异常的类型为段错误异常后,指示所述onu检测所述onu当前运行的每个进程是否存在与段错误异常对应的内存多重释放、内存错误释放、内存溢出,onu根据olt的指示检测当前运行的每个进程是否存在与段错误异常对应的内存多重释放、内存错误释放、内存溢出。同时,为了提高检测效率,节约onu的处理资源,onu还可以获取olt通过如表5所示的报文,获取olt指示onu进行检测的时间,onu根据olt指示的进行检测的时间,检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息。s502:将检测到的当前运行的每个进程的内存使用异常信息记录在检测日志中。具体的,onu将检测到的当前运行的每个进程的内存使用异常信息记录在检测日志中。例如:进程1不存在内存多重释放、不存在内存错误释放、不存在内存溢出,进程2不存在内存多重释放、不存在内存错误释放、不存在内存溢出,进程3不存在内存多重释放、不存在内存错误释放、存在内存溢出。在检测日志中针对进程1记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、不存在内存溢出,针对进程2记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、不存在内存溢出,针对进程3记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、存在内存溢出。s503:向所述olt上报所述检测日志,使olt根据每个进程的内存使用异常信息,确定每个进程是否异常。onu向所述olt上报检测日志,使olt接收到检测日志后,根据每个进程的内存使用异常信息,确定每个进程是否异常。例如:olt接收onu上报的检测日志中包含进程1、进程2、进程3,其中针对进程1记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、不存在内存溢出,针对进程2记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、不存在内存溢出,针对进程3记录的内存使用异常信息为不存在内存多重释放、不存在内存错误释放、存在内存溢出;根据进程1的内存使用异常信息不存在内存多重释放、不存在内存错误释放、不存在内存溢出,确定进程1不异常,根据进程2的内存使用异常信息不存在内存多重释放、不存在内存错误释放、不存在内存溢出,确定进程2不异常,根据进程3的内存使用信息存在内存溢出,确定进程3异常。在本发明实施例中,log由多个数据包组成,具体的每个数据包的结构如图6所示,数据包包括操作码、操作标号、data、fcs等信息,其中操作码对应的值为0xeeee,操作标号对应的值为0x04,表示上传log,其中data包括data_tpye和value。具体的,每个数据包的具体内容如图7所示,其中data_type为数据类型、length为长度、check_num为请求上传的总数据包数、winlen为每个数据包的长度、total_len为数据包总长度、endflag为结束标记、datalen为发送数据长度、start为获取log请求、startresponse为回复获取log的请求、request为获取数据包的请求、sentlogdata为发送日志数据、getnext为发送下一个数据包、endrequest为结束请求、endresponse为回复结束请求。图8为本发明实施例提供的一种日志上传过程示意图,olt向所述onu发起获取log的请求,onu回复日志对应的总数据包数、每个数据包的长度、总长度,olt开始获取第一个数据包,onu向olt发送第一个数据包,其中数据包头中包含该数据包的序列号、标记不是最后一个数据包,olt获取第二个数据包,其中数据包头中包含该数据包的序列号、标记不是最后一个数据包,直至发送最后一个数据包,其中数据包头中包含该数据包的序列号,标记是最后一个数据包,olt接收到最后一个数据包后,olt校验数据包数、总长度,并向onu回复校验结果,上传结束的请求,onu向olt回复上传结束,完成日志的上传。由于在本发明实施例中,onu根据olt的指示检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息,将检测到的当前运行的每个进程的内存使用异常信息记录在检测日志中;向所述olt上报所述检测日志,使olt根据每个进程的内存使用异常信息,确定每个进程是否异常。提高了异常进程定位效率,节约了人力物力,提高了用户的体验。实施例5:为了节约onu的存储资源,在上述各实施例的基础上,在本发明实施例中,所述根据光线路终端olt的指示,检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息包括:接收olt下发的指定类型的插件,调用所述指定类型的插件,检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息。在本发明实施例中,每种内存使用异常的类型对应的检测插件可以保存在onu中,也可以保存在olt,但是因为onu的内存资源较小,为了节省onu的内存资源,将每种内存使用异常的类型对应的检测插件保存在olt中。具体的,在onu中不保存有进行内存使用异常检测的插件,如果onu接收接收olt下发的指定类型的插件,调用所述指定类型的插件,检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息。如果所述指定类型为段错误异常,所述指定类型对应的内存使用异常信息包括:内存多重释放、内存错误释放、内存溢出;如果所述指定类型为分配内存异常,所述指定类型对应的内存使用异常信息包括:保存的数据未对齐、内存碎片;如果所述指定类型为内存使用率异常,所述指定类型对应的内存使用异常信息包括:内存未被释放。具体的,如果所述指定类型为段错误异常,onu接收olt下发的段错误异常插件,调用所述段错误异常插件,检测当前运行的每个进程是否存在内存多重释放、内存错误释放、内存溢出;如果所述指定类型为分配内存异常,onu接收olt下发的分配内存异常插件,调用所述分配内存异常插件,检测当前运行的每个进程是否存在保存的数据未对齐、内存碎片;如果所述指定类型为内存使用率异常,onu接收olt下发的内存使用率异常插件,调用所述内存使用率异常插件,检测当前运行的每个进程是否存在内存未被释放。在本发明实施例中,检测当前运行的每个进程的内存使用异常信息为现有技术,不再进行赘述。实施例6:为了保证onu的正常运行,在上述各实施例的基础上,在本发明实施例中,所述方法还包括:接收到所述olt发送的启动备用镜像的第一指示时,启动自身的备用镜像;或接收到所述olt发送的关闭异常进程的第二指示时,根据所述第二指示中包含的异常进程的标识信息,关闭所述标识信息的进程。具体的,onu接收到所述olt发送的启动备用镜像的第一指示时,说明异常进程为关键进程,onu的系统文件发生的损毁,会影响onu的正常运行,启动备用镜像,其中所述备用镜像,为onu备份的系统文件;onu接收到所述olt发送的关闭异常进程的第二指示时,说明异常进程为非关键进程,但所述异常进程会影响onu的运行效率,根据所述第二指示中包含的异常进程的标识信息,关闭所述标识信息的进程。实施例7:图9为本发明实施例提供的一种异常进程定位装置结构示意图,应用于olt,该装置包括:第一确定模块91,用于根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常;检测模块92,用于在确定所述onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息;第二确定模块93,用于根据接收到的所述onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常。所述第一确定模块91,具体用于如果接收到onu发送的段错误告警信息,确定所述onu内存使用异常;如果接收到onu发送的分配内存失败告警信息,确定所述onu内存使用异常;如果读取到所述onu当前周期的内存使用率,判断当前周期的内存使用率和保存的所述onu上一周期的内存使用率的差值是否大于设定的阈值,如果是,确定所述onu的内存使用异常。所述检测模块92,具体用于向所述onu下发所述olt保存的所述类型的检测插件,使所述onu根据所述类型的检测插件,检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息。所述检测模块92,还用于指示所述onu进行检测的时间。所述装置还包括:异常处理模块94,用于如果存在异常进程,识别所述异常进程是否为设定的关键进程;如果是,判断所述onu的当前内存使用率是否大于第一设定阈值,并判断所述类型是否为设定异常类型;如果至少一个判断结果为是,指示所述onu启动备用镜像。所述异常处理模块94,还用于如果所述异常进程为非设定的关键进程,判断所述onu的当前内存使用率是否大于第二设定阈值,其中所述第二设定阈值小于所述第一设定阈值;如果是,指示所述onu关闭所述异常进程。实施例8:图10为本发明实施例提供的一种异常进程定位装置结构示意图,应用于onu,该装置包括:检测模块101,用于根据光线路终端olt的指示检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息,所述指定类型为当前内存使用异常的类型,其中所述内存使用异常的类型为所述olt根据获取的所述onu的内存使用信息确定的;记录模块102,用于将检测到的当前运行的每个进程的内存使用异常信息记录在检测日志中;发送模块103,用于向所述olt上报所述检测日志,使olt根据每个进程的内存使用异常信息,确定每个进程是否异常。所述检测模块101,具体用于接收olt下发的指定类型的插件,调用所述指定类型的插件,检测当前运行的每个进程是否存在与指定类型对应的内存使用异常信息。所述装置还包括:异常处理模块104,用于接收到所述olt发送的启动备用镜像的第一指示时,启动自身的备用镜像;或,接收到所述olt发送的关闭异常进程的第二指示时,根据所述第二指示中包含的异常进程的标识信息,关闭所述标识信息的进程。实施例9:图11为本发明实施例提供的一种异常进程定位系统结构示意图,所述异常进程定位系统包括如图9所示的应用于光线路终端olt111的异常进程定位装置,及如图10所示应用于光网络单元onu112的异常进程定位装置。本发明公开了一种异常进程定位方法、装置及系统,所述方法包括:olt根据获取的光网络单元onu的内存使用信息,确定所述onu的内存使用是否异常;在确定所述onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息;根据接收到的所述onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常。由于在本发明实施例中,在确定onu的内存使用异常时,确定内存使用异常的类型,并指示所述onu检测所述onu当前运行的每个进程是否存在与所述类型对应的内存使用异常信息,并根据接收到的onu上报的检测日志中包含的所述onu当前运行的每个进程的内存使用异常信息,确定每个进程是否异常,提高了异常进程定位效率,节约了人力物力,提高了用户的体验。对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1