CN113722133B - 一种内存泄漏检测方法、装置及设备 - Google Patents

一种内存泄漏检测方法、装置及设备 Download PDF

Info

Publication number
CN113722133B
CN113722133B CN202110858016.6A CN202110858016A CN113722133B CN 113722133 B CN113722133 B CN 113722133B CN 202110858016 A CN202110858016 A CN 202110858016A CN 113722133 B CN113722133 B CN 113722133B
Authority
CN
China
Prior art keywords
state
switch
detected
port
memory
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.)
Active
Application number
CN202110858016.6A
Other languages
English (en)
Other versions
CN113722133A (zh
Inventor
赵欣
袁福利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110858016.6A priority Critical patent/CN113722133B/zh
Publication of CN113722133A publication Critical patent/CN113722133A/zh
Application granted granted Critical
Publication of CN113722133B publication Critical patent/CN113722133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种内存泄漏检测方法、装置及设备,应用于交换机,包括:在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。可见,本申请通过修改SONIC系统数据库的方式高效模拟端口震荡以对内存泄漏情况进行检测,提高检测效率。

Description

一种内存泄漏检测方法、装置及设备
技术领域
本发明涉及计算机技术领域,特别涉及一种内存泄漏检测方法、装置及设备。
背景技术
由于可能的网线质量、链路质量、物理信号干扰、端口虚插等一些因素的影响,网络设备实际使用过程中端口可能会出现端口震荡的现象,当端口状态发生变化时,会引起上层业务或者上层协议切换,如MAC地址变化,地址解析协议(ARP,Address ResolutionProtocol)变化,路由变化等。在这些变化过程中,可能存在处理不严谨导致内存泄漏问题。虽然可能每次内存泄漏量很少,但当设备长时间使用,日积月累的情况下,可能出现内存泄漏完、内存无法分配的情况。为了保证网络设备功能稳定性,无内存泄漏等问题,可能需要重复数百万次操作,以保证端口震荡不会引起上层协议问题。现有技术中人为插拔网线、光模块或者使用命令行shutdown方式模拟端口震荡进行内存泄漏检测均是都是秒级的操作速度,无法满足超大数量级的测试要求
因此,如何通过高效模拟端口震荡对内存泄露进行精准检测,是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种内存泄漏检测方法、装置及设备,能够提高检测效率。其具体方案如下:
本申请的第一方面提供了一种内存泄漏检测方法,应用于交换机,包括:
在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;
通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;
基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。
可选的,所述将所述待检测交换机的端口状态配置为第一状态,包括:
对所述待检测交换机进行初始化配置,以使所述待检测交换机的端口状态为第一状态。
可选的,所述通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,还包括:
通过脚本方式连接所述SONIC系统的数据库,如果连接失败,则通过脚本方式结束检测进程。
可选的,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露之前,还包括:
循环执行通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态的步骤;
判断循环执行次数是否小于预设次数,如果否,则执行基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露的步骤。
可选的,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露,包括:
通过判断所述端口状态被修改前的初始内存使用量与循环执行结束后的最终内存使用量之间的变化情况确定所述待检测交换机是否发生内存泄露。
可选的,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露,包括:
通过判断所述端口状态被修改前的初始MAC地址与循环执行结束后的最终MAC地址之间的变化情况确定所述待检测交换机是否发生内存泄露;
相应的,所述通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,还包括:
在所述待检测交换机中注入第一预设数量的MAC地址。
可选的,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露,包括:
通过判断所述端口状态被修改前的初始地址解析协议与循环执行结束后的最终地址解析协议之间的变化情况确定所述待检测交换机是否发生内存泄露;
相应的,所述通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,还包括:
在所述待检测交换机中注入第二预设数量的地址解析协议。
可选的,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露,包括:
通过判断所述端口状态被修改前的初始路由与所述端口状态被修改后的最终路由之间的变化情况确定所述待检测交换机是否发生内存泄露;
相应的,所述通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,还包括:
在所述待检测交换机中注入第三预设数量的路由。
本申请的第二方面提供了一种内存泄漏检测装置,应用于交换机,包括:
加载模块,用于在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;
修改模块,用于通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;
检测模块,用于基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。
本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述内存泄漏检测方法。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述内存泄漏检测方法。
本申请中,在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。可见,本申请先在待检测交换机上加载SONIC系统并将待检测交换机的端口状态配置为第一状态,然后通过在SONIC系统的数据库中修改待检测交换机的端口状态的方式将第一状态修改为第二状态,并在预设时间后将第二状态修改为第一状态,最后基于端口状态被修改前后的预设信息的变化情况确定待检测交换机是否发生内存泄露,通过修改SONIC系统数据库的方式高效模拟端口震荡以对内存泄漏情况进行检测,提高检测效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种内存泄漏检测方法流程图;
图2为本申请提供的一种具体的内存泄漏检测方法示意图;
图3为本申请提供的一种内存泄漏检测装置结构示意图;
图4为本申请提供的一种内存泄漏检测电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中人为插拔网线、光模块或者使用命令行shutdown方式模拟端口震荡进行内存泄漏检测均是都是秒级的操作速度,无法满足超大数量级的测试要求。针对上述技术缺陷,本申请提供一种内存泄漏检测方案,在待检测交换机上加载SONIC系统并将待检测交换机的端口状态配置为第一状态,然后通过在SONIC系统的数据库中修改待检测交换机的端口状态的方式将第一状态修改为第二状态,并在预设时间后将第二状态修改为第一状态,最后基于端口状态被修改前后的预设信息的变化情况确定待检测交换机是否发生内存泄露,通过修改SONIC系统数据库的方式高效模拟端口震荡以对内存泄漏情况进行检测,提高检测效率。
图1为本申请实施例提供的一种内存泄漏检测方法流程图。参见图1所示,该内存泄漏检测方法应用于交换机,包括:
S11:在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中。
本实施例中,先在待检测交换机上加载SONIC系统,然后将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中。可以理解,所述待检测交换机的所述端口状态分为up状态和down状态,也即所述第一状态和下述第二状态。本实施例可以通过对所述待检测交换机进行初始化配置,以使所述待检测交换机的端口状态为第一状态。
SONIC(Software for Open Networking in the Cloud)系统的体系结构由各种模块组成,这些模块通过集中式和可扩展的基础设施相互作用。这个基础设施依赖于redis数据库的使用,redis数据库引擎是一个用于数据持久性、复制和所有SONIC子系统之间的多进程通信的方法。物理端口的up状态、down状态变化时,会修改redis数据库中该端口的oper_status(当前状态)属性为up或down。上层协议会监控redis数据库中端口的oper_status(当前状态)属性的变化,例如端口down时删除MAC地址、ARP、路由等,端口up时添加MAC地址、ARP、路由等。本申请实施例基于以上SONIC系统的体系结构,通过直接修改redis数据库中端口oper_status的方式来模拟实际端口up/down行为,触发上层协议切换动作。直接修改redis数据库的效率会远远高于交换机提供的命令行shutdown/startup端口方式,可以实现短时间内模拟超大数量级的端口震荡。
S12:通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态。
本实施例中,通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态。也即,通过将所述SONIC系统的redis数据库中所述待检测交换机的oper_status属性从up修改为down,并在预设时间后将oper_status属性从down再次修改为up,以完成一次端口震荡过程。其中,所述预设时间可以为毫秒级甚至微秒级。更进一步的,端口震荡是一个多次循环的过程,需要完成数万次,甚至百万次以上的修改操作。因此,本申请实施例需要循环执行通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态的步骤。同时判断循环执行次数是否小于预设次数,如果否,则执行基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露的步骤。也即在循环执行修改操作预设次数后再进行内存泄漏检测。
另外,本实施例在通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,需要连接所述SONIC系统的数据库,具体可通过脚本方式连接所述SONIC系统的数据库,如果连接失败,则通过脚本方式结束检测进程。
S13:基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。
本申请中,基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息,具体包括内存使用信息、MAC地址信息、ARP信息、路由信息等。
本实施例中,通过判断所述端口状态被修改前的初始内存使用量与循环执行结束后的最终内存使用量之间的变化情况确定所述待检测交换机是否发生内存泄露。或者通过判断所述端口状态被修改前的初始MAC地址与循环执行结束后的最终MAC地址之间的变化情况确定所述待检测交换机是否发生内存泄露。或者通过判断所述端口状态被修改前的初始地址解析协议与循环执行结束后的最终地址解析协议之间的变化情况确定所述待检测交换机是否发生内存泄露。或者通过判断所述端口状态被修改前的初始路由与所述端口状态被修改后的最终路由之间的变化情况确定所述待检测交换机是否发生内存泄露。相应的,在模拟MAC地址震荡场景中,需要在所述待检测交换机中注入第一预设数量的MAC地址;在模拟ARP震荡场景中,需要在所述待检测交换机中注入第二预设数量的地址解析协议;在模拟路由震荡场景中,需要在所述待检测交换机中注入第三预设数量的路由。也即,在进行检测之前打入大量MAC地址、ARP、路由,通过判断测试端口震荡过程中MAC地址、ARP、路由的添加删除是否存在异常来判定是否引起内存泄漏。
可见,本申请实施例在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。本申请实施例先在待检测交换机上加载SONIC系统并将待检测交换机的端口状态配置为第一状态,然后通过在SONIC系统的数据库中修改待检测交换机的端口状态的方式将第一状态修改为第二状态,并在预设时间后将第二状态修改为第一状态,最后基于端口状态被修改前后的预设信息的变化情况确定待检测交换机是否发生内存泄露,通过修改SONIC系统数据库的方式高效模拟端口震荡以对内存泄漏情况进行检测,提高检测效率。
下面结合具体的交换机内存泄漏检测方案对本申请实施例作进一步描述,具体参考图2所示。首先交换机载入SONIC系统,交换机正常启动,初始化交换机配置,端口能正常up,并通过脚本获取初始内存使用量。同时,通过脚本连接redis数据库,连接APPL_DB(application database),如果连接失败,脚本直接退出。然后修改APPL_DB中“PORT_TABLE:<port name>”表项的oper_status属性为down,等待特定时长(可毫秒级甚至微妙级),进一步修改APPL_DB中“PORT_TABLE:<port name>”表项的oper_status属性为up,完成一次模拟端口震荡。循环执行特定次数的上述单次模拟端口震荡步骤后,检查当前内存使用量,与初始内存使用量比较,如果内存使用量异常增大,判定为存在内存泄漏,如果内存使用量没有异常增大,则判定为不存在内存泄漏。
参见图3所示,本申请实施例还相应公开了一种内存泄漏检测装置,应用于交换机,包括:
加载模块11,用于在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;
修改模块12,用于通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;
检测模块13,用于基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。
可见,本申请实施例在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。本申请实施例先在待检测交换机上加载SONIC系统并将待检测交换机的端口状态配置为第一状态,然后通过在SONIC系统的数据库中修改待检测交换机的端口状态的方式将第一状态修改为第二状态,并在预设时间后将第二状态修改为第一状态,最后基于端口状态被修改前后的预设信息的变化情况确定待检测交换机是否发生内存泄露,通过修改SONIC系统数据库的方式高效模拟端口震荡以对内存泄漏情况进行检测,提高检测效率。
在一些具体实施例中,所述加载模块11,具体用于对所述待检测交换机进行初始化配置,以使所述待检测交换机的端口状态为第一状态。
在一些具体实施例中,所述检测模块13,具体包括:
第一检测单元,用于通过判断所述端口状态被修改前的初始内存使用量与循环执行结束后的最终内存使用量之间的变化情况确定所述待检测交换机是否发生内存泄露;
第二检测单元,用于通过判断所述端口状态被修改前的初始MAC地址与循环执行结束后的最终MAC地址之间的变化情况确定所述待检测交换机是否发生内存泄露;
第三检测单元,用于通过判断所述端口状态被修改前的初始地址解析协议与循环执行结束后的最终地址解析协议之间的变化情况确定所述待检测交换机是否发生内存泄露;
第四检测单元,用于通过判断所述端口状态被修改前的初始路由与所述端口状态被修改后的最终路由之间的变化情况确定所述待检测交换机是否发生内存泄露;
相应的,所述内存泄漏检测装置,还包括:
第一注入模块,用于在所述待检测交换机中注入第一预设数量的MAC地址;
第二注入模块,用于在所述待检测交换机中注入第二预设数量的地址解析协议;
第三注入模块,用于在所述待检测交换机中注入第三预设数量的路由。
在一些具体实施例中,所述内存泄漏检测装置,还包括:
连接模块,用于在修改模块12之前通过脚本方式连接所述SONIC系统的数据库,如果连接失败,则通过脚本方式结束检测进程;
循环模块,用于在检测模块13之前循环执行通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态的步骤;
判断模块,用于判断循环执行次数是否小于预设次数,如果否,则执行基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露的步骤。
进一步的,本申请实施例还提供了一种电子设备。图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图4为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的内存泄漏检测方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的内存泄漏检测方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的预设信息。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的内存泄漏检测方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的内存泄漏检测方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种内存泄漏检测方法,其特征在于,应用于交换机,包括:
在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;
通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;
基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。
2.根据权利要求1所述的内存泄漏检测方法,其特征在于,所述将所述待检测交换机的端口状态配置为第一状态,包括:
对所述待检测交换机进行初始化配置,以使所述待检测交换机的端口状态为第一状态。
3.根据权利要求1所述的内存泄漏检测方法,其特征在于,所述通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,还包括:
通过脚本方式连接所述SONIC系统的数据库,如果连接失败,则通过脚本方式结束检测进程。
4.根据权利要求1至3任一项所述的内存泄漏检测方法,其特征在于,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露之前,还包括:
循环执行通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态的步骤;
判断循环执行次数是否小于预设次数,如果否,则执行基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露的步骤。
5.根据权利要求4所述的内存泄漏检测方法,其特征在于,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露,包括:
通过判断所述端口状态被修改前的初始内存使用量与循环执行结束后的最终内存使用量之间的变化情况确定所述待检测交换机是否发生内存泄露。
6.根据权利要求4所述的内存泄漏检测方法,其特征在于,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露,包括:
通过判断所述端口状态被修改前的初始MAC地址与循环执行结束后的最终MAC地址之间的变化情况确定所述待检测交换机是否发生内存泄露;
相应的,所述通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,还包括:
在所述待检测交换机中注入第一预设数量的MAC地址。
7.根据权利要求4所述的内存泄漏检测方法,其特征在于,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露,包括:
通过判断所述端口状态被修改前的初始地址解析协议与循环执行结束后的最终地址解析协议之间的变化情况确定所述待检测交换机是否发生内存泄露;
相应的,所述通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,还包括:
在所述待检测交换机中注入第二预设数量的地址解析协议。
8.根据权利要求4所述的内存泄漏检测方法,其特征在于,所述基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露,包括:
通过判断所述端口状态被修改前的初始路由与所述端口状态被修改后的最终路由之间的变化情况确定所述待检测交换机是否发生内存泄露;
相应的,所述通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态之前,还包括:
在所述待检测交换机中注入第三预设数量的路由。
9.一种内存泄漏检测装置,其特征在于,应用于交换机,包括:
加载模块,用于在待检测交换机上加载SONIC系统,并将所述待检测交换机的端口状态配置为第一状态;其中,所述待检测交换机的所述端口状态存储在所述SONIC系统的数据库中;
修改模块,用于通过在所述SONIC系统的数据库中修改所述待检测交换机的所述端口状态的方式将所述第一状态修改为第二状态,并在预设时间后将所述第二状态修改为所述第一状态;
检测模块,用于基于所述端口状态被修改前后的预设信息的变化情况确定所述待检测交换机是否发生内存泄露;其中,所述预设信息为表征所述待检测交换机由于端口震荡发生内存泄露的信息。
10.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至8任一项所述的内存泄漏检测方法。
CN202110858016.6A 2021-07-28 2021-07-28 一种内存泄漏检测方法、装置及设备 Active CN113722133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110858016.6A CN113722133B (zh) 2021-07-28 2021-07-28 一种内存泄漏检测方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110858016.6A CN113722133B (zh) 2021-07-28 2021-07-28 一种内存泄漏检测方法、装置及设备

Publications (2)

Publication Number Publication Date
CN113722133A CN113722133A (zh) 2021-11-30
CN113722133B true CN113722133B (zh) 2023-05-26

Family

ID=78674200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110858016.6A Active CN113722133B (zh) 2021-07-28 2021-07-28 一种内存泄漏检测方法、装置及设备

Country Status (1)

Country Link
CN (1) CN113722133B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375776A (zh) * 2010-08-18 2012-03-14 康佳集团股份有限公司 一种嵌入式设备及其检测和定位内存泄漏的方法
CN104965779A (zh) * 2015-05-22 2015-10-07 浪潮电子信息产业股份有限公司 一种基于PoolMon的内存泄露检测和定位的方法及装置
CN110489319A (zh) * 2018-05-15 2019-11-22 福建天晴数码有限公司 一种接口性能测试分析方法、存储介质
CN111352829A (zh) * 2019-11-21 2020-06-30 杭州迪普科技股份有限公司 一种内存泄漏的测试方法、装置及设备
CN111858112A (zh) * 2019-04-26 2020-10-30 腾讯科技(深圳)有限公司 一种检测内存泄露的方法、客户端及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375776A (zh) * 2010-08-18 2012-03-14 康佳集团股份有限公司 一种嵌入式设备及其检测和定位内存泄漏的方法
CN104965779A (zh) * 2015-05-22 2015-10-07 浪潮电子信息产业股份有限公司 一种基于PoolMon的内存泄露检测和定位的方法及装置
CN110489319A (zh) * 2018-05-15 2019-11-22 福建天晴数码有限公司 一种接口性能测试分析方法、存储介质
CN111858112A (zh) * 2019-04-26 2020-10-30 腾讯科技(深圳)有限公司 一种检测内存泄露的方法、客户端及服务器
CN111352829A (zh) * 2019-11-21 2020-06-30 杭州迪普科技股份有限公司 一种内存泄漏的测试方法、装置及设备

Also Published As

Publication number Publication date
CN113722133A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
CN106326088B (zh) 实现构建测试对象的方法、装置及业务配置测试的装置
CN108964993B (zh) 基于动态代理的故障模拟方法、装置、设备及可读存储介质
CN106844213A (zh) 一种前端自动化测试方法及装置
US20200104246A1 (en) Continuous automation with test suite engine
CN109558320A (zh) 系统测试方法、装置、系统、设备及计算机可读存储介质
CN113434355A (zh) 模块验证方法、uvm验证平台、电子设备及存储介质
CN111797015B (zh) 一种基于动态字节码的测试方法及装置
CN112765030A (zh) 测试方法、装置、电子设备及计算机存储介质
CN116257438A (zh) 接口测试用例的更新方法及相关设备
CN111786823A (zh) 基于分布式服务的故障模拟方法及装置
CN111352829A (zh) 一种内存泄漏的测试方法、装置及设备
CN113722133B (zh) 一种内存泄漏检测方法、装置及设备
WO2022033672A1 (en) Apparatus and method for injecting a fault into a distributed system
CN117041111A (zh) 车云功能测试方法、装置、电子设备及存储介质
CN116827838A (zh) 基于自动依赖发现和代理的微服务混沌测试方法及系统
CN110471767B (zh) 一种设备的调度方法
CN115203008A (zh) 一种测试方法、装置、存储介质及设备
CN111082984A (zh) 模拟登录网络设备进行命令行交互的方法和装置
Zeng et al. Design of test case for openflow protocol conformance test based on OFTest
Gebremichael et al. Analysis of a protocol for dynamic configuration of IPv4 link local addresses using Uppaal
CN115757088B (zh) 基于环境变量的故障注入方法、装置和设备
CN109542588B (zh) 一种用于在云环境下管理虚拟设备的方法和装置
CN116974649A (zh) 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置
CN115473832A (zh) 车联网端云通信测试方法、装置、服务器、客户端及系统
CN116909869A (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
GR01 Patent grant
GR01 Patent grant