CN117555710A - 一种内存泄露的检测方法及装置 - Google Patents

一种内存泄露的检测方法及装置 Download PDF

Info

Publication number
CN117555710A
CN117555710A CN202311369151.XA CN202311369151A CN117555710A CN 117555710 A CN117555710 A CN 117555710A CN 202311369151 A CN202311369151 A CN 202311369151A CN 117555710 A CN117555710 A CN 117555710A
Authority
CN
China
Prior art keywords
memory
test
preset
functional module
occupation amount
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
Application number
CN202311369151.XA
Other languages
English (en)
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.)
Qianxin Technology Group Co Ltd
Original Assignee
Qianxin Technology Group 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 Qianxin Technology Group Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN202311369151.XA priority Critical patent/CN117555710A/zh
Publication of CN117555710A publication Critical patent/CN117555710A/zh
Pending legal-status Critical Current

Links

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
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/27Regression, e.g. linear or logistic regression

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本发明提供一种内存泄露的检测方法及装置。该方法包括:选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。本发明提供的内存泄露的检测方法,能够快速检测出内存泄露功能模块,有效提高了内存泄露的测试效率和精确度。

Description

一种内存泄露的检测方法及装置
技术领域
本发明涉及网络安全监测领域,具体涉及一种内存泄露的检测方法及装置。另外,还涉及一种电子设备及处理器可读存储介质。
背景技术
近年来,随着工控环境对于网络安全产品(比如工业防火墙)在协议解析的粒度逐渐细化,传统的应用于普通交换设备的内存测试及监控方法已不再适用。在交换设备长期运行或测试过程中,内存占用量数据的波动频率高,波动幅度不固定,依赖简单的线性分析方式通常无法准确的确认是否发生内存泄漏。内存泄漏(Memory Leak)是指程序产品中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序产品运行速度减慢甚至系统崩溃等后果。
目前,在对网络安全产品的黑盒测试中,针对内存检测和监控的测试方法比较单一,内存的监控需要耗费较多人力进行持续跟踪测试,以实现长时间的测试与监控,耗费成本较高,另外当出现问题时更需要多次回溯验证内存的影响因素,存在较大的局限性,测试内容监控不及时也会影响到最终的测试覆盖率,导致实际的检测精度和效率较差。
发明内容
为此,本发明提供一种内存泄露的检测方法及装置,以解决现有技术中存在的内存泄露的检测方案局限性较高,导致内存泄露的检测精度和效率较差的缺陷。
第一方面,本发明提供一种内存泄露的检测方法,包括:
选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;
基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;
对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
进一步的,所述对所述可疑进程进行循环强化测试,以确定目标异常进程,具体包括:
确定所述可疑进程的目标测试区间;基于所述循环强化测试对应的预设测试周期,对所述可疑进程的目标测试区间进行循环重复测试,获得循环重复测试结果;根据循环重复测试结果,确定目标异常进程。
进一步的,所述选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据,具体包括:
选取预设数量的功能模块;
在所述功能模块完全覆盖网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;
在所述功能模块完全覆盖所述网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;
对所述功能模块序列中各个功能模块所对应进程的内存变化情况进行测试,获得相应的内存占用量数据。
进一步的,所述基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程,具体包括:
基于预设的最小二乘法对所述内存占用量数据进行第一次线性回归分析,获得第一回归曲线的斜率,将所述第一回归曲线的斜率和所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述第一回归曲线的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程。
进一步的,所述的内存泄露的检测方法,还包括:
在所述第一回归曲线的斜率小于所述预设的内存泄露判断标准曲线的斜率的情况下,基于预设的回归模型对所述内存占用量数据进行第二次线性回归分析,生成第二回归曲线;
基于所述第二回归曲线预测未来多个测试周期的内存占用量变化趋势数据,并确定所述内存占用量变化趋势数据对应的斜率;
将所述内存占用量变化趋势数据对应的斜率与所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述内存占用量变化趋势数据对应的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程;其中,所述回归模型为预设的多项式回归模型。
进一步的,所述确定所述内存占用量变化趋势数据对应的斜率,具体包括:
基于所述内存占用量变化趋势数据获得未来多个测试周期内的内存占用量最小值和内存占用量初始值;基于所述内存占用量最小值和所述内存占用量初始值计算得到相应的斜率。
进一步的,在选取待测试的功能模块序列执行测试操作之前,还包括:预先将所述网络安全产品中待测试功能模块的信息记录到预设的随机种子池中,构建每个待测试功能模块与优先级信息之间的对应关系;其中,所述优先级信息包括每个待测试功能模块被选取的概率;
所述采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列,具体包括:
基于所述优先级信息,采用有放回的方式依次选取所述预设数量的功能模块,以获得每轮测试对应的功能模块序列;
所述采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列,具体包括:
基于所述优先级信息,采用无放回的方式依次选取所述预设数量的功能模块,以获得每轮测试对应的功能模块序列。
第二方面,本发明还提供一种内存泄露的检测装置,包括:
内存占用量数据测试单元,用于选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;
可疑进程检测单元,用于基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;
内存泄露检测单元,用于对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
进一步的,所述内存泄露检测单元,具体用于:
确定所述可疑进程的目标测试区间;基于所述循环强化测试对应的预设测试周期,对所述可疑进程的目标测试区间进行循环重复测试,获得循环重复测试结果;根据循环重复测试结果,确定目标异常进程。
进一步的,所述内存占用量数据测试单元,具体用于:
选取预设数量的功能模块;
在所述功能模块完全覆盖网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;
在所述功能模块完全覆盖所述网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;
对所述功能模块序列中各个功能模块所对应进程的内存变化情况进行测试,获得相应的内存占用量数据。
进一步的,所述可疑进程检测单元,具体用于:
基于预设的最小二乘法对所述内存占用量数据进行第一次线性回归分析,获得第一回归曲线的斜率,将所述第一回归曲线的斜率和所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述第一回归曲线的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程。
进一步的,所述的内存泄露的检测装置,所述可疑进程检测单元,还用于:在所述第一回归曲线的斜率小于所述预设的内存泄露判断标准曲线的斜率的情况下,基于预设的回归模型对所述内存占用量数据进行第二次线性回归分析,生成第二回归曲线;
基于所述第二回归曲线预测未来多个测试周期的内存占用量变化趋势数据,并确定所述内存占用量变化趋势数据对应的斜率;
将所述内存占用量变化趋势数据对应的斜率与所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述内存占用量变化趋势数据对应的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程;其中,所述回归模型为预设的多项式回归模型。
进一步的,所述确定所述内存占用量变化趋势数据对应的斜率,具体包括:
基于所述内存占用量变化趋势数据获得未来多个测试周期内的内存占用量最小值和内存占用量初始值;基于所述内存占用量最小值和所述内存占用量初始值计算得到相应的斜率。
进一步的,在选取待测试的功能模块序列执行测试操作之前,还包括:预处理单元,用于预先将所述网络安全产品中待测试功能模块的信息记录到预设的随机种子池中,构建每个待测试功能模块与优先级信息之间的对应关系;其中,所述优先级信息包括每个待测试功能模块被选取的概率;
所述采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列,具体包括:
基于所述优先级信息,采用有放回的方式依次选取所述预设数量的功能模块,以获得每轮测试对应的功能模块序列;
所述采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列,具体包括:
基于所述优先级信息,采用无放回的方式依次选取所述预设数量的功能模块,以获得每轮测试对应的功能模块序列。
第三方面,本发明还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述计算机程序时实现如上述任意一项所述的内存泄露的检测方法的步骤。
第四方面,本发明还提供一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任意一项所述的内存泄露的检测方法的步骤。
本发明提供的内存泄露的检测方法,通过选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据,并基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程,进而对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块,其能够快速检测出内存泄露功能模块,有效提高了内存泄露的测试效率和精确度,同时节约了测试成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1是本发明实施例提供的内存泄露的检测方法的流程示意图;
图2是本发明实施例提供的内存泄露的检测方法中选取功能模块执行测试操作的流程示意图;
图3是本发明实施例提供的基于内存泄露判断标准进行对比分析的流程示意图;
图4是本发明实施例提供的内存泄露的检测装置的结构示意图;
图5是本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请的说明书和上述附图中的术语“第一”、“第二”等是用于区别类似的用户,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面基于本发明所述的内存泄露的检测方法,对其实施例进行详细描述。如图1所示,为本发明实施例提供的内存泄露的检测方法的流程示意图,具体过程包括以下步骤:
步骤101:选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据。
在本发明实施例中,执行本步骤之前,需要预先将所述网络安全产品中待测试功能模块的信息记录到预设的随机种子池中,构建每个待测试功能模块与优先级信息之间的对应关系。其中,所述优先级信息包括每个待测试功能模块被选取的概率。
在本步骤中,如图2所示,首先选取预设数量的功能模块,在所述功能模块完全覆盖网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,基于所述优先级信息,采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;或者,在所述功能模块完全覆盖所述网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,基于所述优先级信息,采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列。对所述功能模块序列中各个功能模块所对应进程的内存变化情况进行测试,获得相应的内存占用量数据。其中,所述网络安全产品包括但不限于工业防火墙、入侵防御系统(IPS,Intrusion Prevention System)、入侵检测系统IDS(IntrusionDetection Systems)等安全防护产品,在此不做具体限定。每种网络安全产品对应多个功能模块,比如所述工业防火墙中可包括工控协议解析功能模块、工控协议匹配功能模块、攻击防护功能模块等。其中,每个功能模块可对应一个进程或者多个进程,或者多个功能模块对应一个进程或者多个进程。
执行本步骤时,可将所述网络安全产品的中待测试功能模块的信息记录到预设的随机种子池中,根据每个功能模块的优先级信息确定每个功能模块被选取的概率,以形成相应的功能模块序列。例如,在确定工业防火墙黑盒测试中的功能模块序列时,首先获得预设的随机种子池,然后将工业防火墙关键的功能模块或关键进程相关的信息记录到随机种子池中,根据优先级信息来决定各个功能模块被选取的概率,比如优先级分为:高(被选取的概率为60%),中(被选取的概率30%),低(被选取的概率10%)。
具体如下表所示:
其中,相关操作中记录了该功能模块的测试及回退操作,核心进程即为该功能模块需重点关注重点影响的进程。
在本步骤中,可对不同功能模块执行测试操作,根据选择的功能模块序列,在预设的测试周期P_test内,分别执行不同功能模块的测试操作。具体如下:(1)指定测试模块为N个;(2)第一轮测试,在所有功能模块中按照每个功能模块的优先级随机选择N个功能模块进行测试;(3)到达预设测试周期时,若出现异常进程,则优先处理异常进程,否则,再不放回的随机取N个功能模块测试;(4)若第一轮所有功能模块随机测试完成,则进行第二轮测试,有放回的随机抽取功能模块进行测试。在网络安全产品测试过程中,可以指定的测试周期参数p_get获取进程实时的内存占用量数据,然后进行数据比对分析。例如可进行循环重复测试3个测试周期,仍然判断为可疑进程,则输出结果。
步骤102:基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程。
具体的,可基于预设的最小二乘法对所述内存占用量数据进行第一次线性回归分析,获得第一回归曲线的斜率,将所述第一回归曲线的斜率和所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述第一回归曲线的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程。在所述第一回归曲线的斜率小于所述预设的内存泄露判断标准曲线的斜率的情况下,基于预设的回归模型对所述内存占用量数据进行第二次线性回归分析,生成第二回归曲线。基于所述第二回归曲线预测未来多个测试周期的内存占用量变化趋势数据,并确定所述内存占用量变化趋势数据对应的斜率。将所述内存占用量变化趋势数据对应的斜率与所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述内存占用量变化趋势数据对应的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程;其中,所述回归模型为预设的多项式回归模型。其中,所述确定所述内存占用量变化趋势数据对应的斜率,对应的具体实现过程包括:基于所述内存占用量变化趋势数据获得未来多个测试周期内的内存占用量最小值和内存占用量初始值,基于所述内存占用量最小值和所述内存占用量初始值计算得到相应的斜率。所述内存泄露判断标准曲线是预设的用于作为第一回归曲线和第二回归曲线的比对参考依据。
在测试过程中,通过采集的内存占用量行建模分析。首先,将所有内存占用量数据作为数据集,使用最小二乘法进行线性回归分析计算斜率K(即下述公式中的第一回归曲线的斜率k),如下所示:设拟合的第一回归曲线的公式为y=k·x+b,其中,(x,y)分别代表某个进程在某一时刻(X)的内存占用量数据,b可表示拟合参数。利用公式计算:
其中,n代表数据集的大小。
进一步的,如图3所示,若K>tan10°,计算数据集的一阶方差,获取一阶差分的最大值max=MAX(Δyx=yx+1-yx),取最大值左右各1H(即1小时)的时间序列作为可疑序列,即测试区间或者可疑区间,记录相关模块的操作,替换测试序列。例如可进行循环重复测试3个测试周期,仍然判断为可疑进程,则输出相应的内存泄露测试报告。其中,计算数据集的一阶方差是为了让回归曲线趋于平稳,从而更有利于寻找异常变化的区间。
如图3所示,若K<tan10°,则认为内存占用量数据非平稳序列,使用多项式回归曲线进行数据建模,生成数据的回归曲线f(x),即基于预设的回归模型对所述内存占用量数据进行第二次线性回归分析,生成第二回归曲线。根据第二回归曲线计算预测未来预设测试周期(比如三个测试周期)的内存占用量变化趋势数据,并求取未来预设测试周期的内存占用量最小值数据组min(time_m,memory_m)。计算初始值(即内存占用量初始值)与最小值(即内存占用量最小值)的内存占用量变化趋势数据,即计算最小值数据组与初始数据组的斜率k=(y1-y2)/(x1-x2),其中(x1,y1)和(x2,y2)分别为内存占用量最小值和内存占用量初始值的坐标。
所述内存泄露判断标准曲线的斜率可为tan10°。
若将所述第一回归曲线的斜率K和所述预设的内存泄露判断标准曲线的斜率tan10°进行比对分析,计算出的第一回归曲线的斜率K>内存泄露判断标准曲线的斜率tan10°,则认为对应的进程为可疑进程,可取最大值K左右各3h的测试区间为重点的测试区间(即目标测试区间),以实现有针对性的重点测试。若在所述第一回归曲线的斜率小于所述预设的内存泄露判断标准曲线的斜率的情况下,基于预设的回归模型对所述内存占用量数据进行第二次线性回归分析,生成第二回归曲线;
基于所述第二回归曲线预测未来多个测试周期的内存占用量变化趋势数据,并确定所述内存占用量变化趋势数据对应的斜率,将所述内存占用量变化趋势数据对应的斜率与所述预设的内存泄露判断标准曲线的斜率进行比对分析,计算出的内存占用量变化趋势数据对应的斜率K>预设的内存泄露判断标准曲线的斜率的tan10°,则认为相应的进程为可疑进程,可取最大值K左右各3h的测试区间为重点的测试区间(即目标测试区间),以实现有针对性的重点测试。
步骤103:对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
在本发明实施例中,首先需要确定所述可疑进程的目标测试区间,并基于所述循环强化测试对应的预设测试周期,对所述可疑进程的目标测试区间进行循环重复测试,获得循环重复测试结果;根据循环重复测试结果,确定目标异常进程。
在本发明实施例中,执行本步骤时,首先需要确定循环强化测试对应的测试周期数量,并基于所述测试周期数量对所述测试区间中的可疑进程进行循环重复测试,获得循环重复测试结果。根据所述循环重复测试结果输出内存泄露测试报告,其包含目标异常进程。其中,所述内存泄露测试报告还包括所述可疑进程对应的功能模块及所述功能模块执行的相关操作。
具体的,若所述循环重复测试结果为非可疑进程,则标注PASS;若所述循环重复测试结果为可疑进程,则标注可疑的测试区间相关的测试模块,记录内存增长值及其所用的时间或预计所用时间。例如,记录内存增长10M的所用时间或预计所用时间(<1day标注为高危,<7day标注为中危,<30day标注为低危)。
本发明通过选取不同测试模块进程测试,测试中内存占用量数据采集后进行内存占用量数据分析以判断可疑进程的可疑操作及后续的内存变化趋势预测,若达到本发明指定的内存泄漏判断标准,则循环探测进行重点测试,直至确认为内存泄漏问题,最终输出内存的测试报告。本发明提供一种多种回归分析方法相结合的方式,不仅对已知进程内存状态进行分析,还可以科学预测进程内存的使用趋势。通过回归分析内存泄漏的分析,进行反馈式的内存检测与针对性测试,并基于多项式拟合的内存使用趋势预测,实现持续监控内存变化。其中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。本发明使用回归分析方法做数据趋势预测。反馈式测试便于即时发现内存泄漏点,重点测试更易复现问题,对于防火墙内存黑盒测试来说,既节约了测试成本,也提升了测试效率和测试的覆盖度。
本发明实施例所述的内存泄露的检测方法,通过选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据,并基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程,进而对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块,其能够快速检测出内存泄露功能模块,有效提高了内存泄露的测试效率和精确度,同时节约了测试成本。
与上述提供的一种内存泄露的检测方法相对应,本发明还提供一种内存泄露的检测装置。由于该装置的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的内存泄露的检测装置的实施例仅是示意性的。请参考图4所示,其为本发明实施例提供的一种内存泄露的检测装置的结构示意图。
本发明所述的内存泄露的检测装置,具体包括如下部分:
内存占用量数据测试单元401,用于选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;
可疑进程检测单元402,用于基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;
内存泄露检测单元403,用于对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
进一步的,所述内存泄露检测单元,具体用于:
确定所述可疑进程的目标测试区间;基于所述循环强化测试对应的预设测试周期,对所述可疑进程的目标测试区间进行循环重复测试,获得循环重复测试结果;根据循环重复测试结果,确定目标异常进程。
进一步的,所述内存占用量数据测试单元,具体用于:
选取预设数量的功能模块;
在所述功能模块完全覆盖网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;
在所述功能模块完全覆盖所述网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;
对所述功能模块序列中各个功能模块所对应进程的内存变化情况进行测试,获得相应的内存占用量数据。
进一步的,所述可疑进程检测单元,具体用于:
基于预设的最小二乘法对所述内存占用量数据进行第一次线性回归分析,获得第一回归曲线的斜率,将所述第一回归曲线的斜率和所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述第一回归曲线的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程。
进一步的,所述的内存泄露的检测装置,所述可疑进程检测单元,还用于:在所述第一回归曲线的斜率小于所述预设的内存泄露判断标准曲线的斜率的情况下,基于预设的回归模型对所述内存占用量数据进行第二次线性回归分析,生成第二回归曲线;
基于所述第二回归曲线预测未来多个测试周期的内存占用量变化趋势数据,并确定所述内存占用量变化趋势数据对应的斜率;
将所述内存占用量变化趋势数据对应的斜率与所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述内存占用量变化趋势数据对应的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程;其中,所述回归模型为预设的多项式回归模型。
进一步的,所述确定所述内存占用量变化趋势数据对应的斜率,具体包括:
基于所述内存占用量变化趋势数据获得未来多个测试周期内的内存占用量最小值和内存占用量初始值;基于所述内存占用量最小值和所述内存占用量初始值计算得到相应的斜率。
进一步的,在选取待测试的功能模块序列执行测试操作之前,还包括:预处理单元,用于预先将所述网络安全产品中待测试功能模块的信息记录到预设的随机种子池中,构建每个待测试功能模块与优先级信息之间的对应关系;其中,所述优先级信息包括每个待测试功能模块被选取的概率;
所述采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列,具体包括:
基于所述优先级信息,采用有放回的方式依次选取所述预设数量的功能模块,以获得每轮测试对应的功能模块序列;
所述采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列,具体包括:
基于所述优先级信息,采用无放回的方式依次选取所述预设数量的功能模块,以获得每轮测试对应的功能模块序列。
本发明实施例所述的内存泄露的检测装置,通过选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据,并基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程,进而对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块,其能够快速检测出内存泄露功能模块,有效提高了内存泄露的测试效率和精确度,同时节约了测试成本。
与上述提供的内存泄露的检测方法相对应,本发明还提供一种电子设备。由于该电子设备的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的电子设备仅是示意性的。如图5所示,其为本发明实施例公开的一种电子设备的实体结构示意图。该电子设备可以包括:处理器(processor)501、存储器(memory)502和通信总线503,其中,处理器501,存储器502通过通信总线503完成相互间的通信,通过通信接口504与外部进行通信。处理器501可以调用存储器502中的逻辑指令,以执行内存泄露的检测方法,该方法包括:选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
此外,上述的存储器502中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:存储芯片、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在处理器可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的内存泄露的检测方法。该方法包括:选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
又一方面,本发明实施例还提供一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的内存泄露的检测方法。该方法包括:选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种内存泄露的检测方法,其特征在于,包括:
选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;
基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;
对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
2.根据权利要求1所述的内存泄露的检测方法,其特征在于,所述对所述可疑进程进行循环强化测试,以确定目标异常进程,具体包括:
确定所述可疑进程的目标测试区间;基于所述循环强化测试对应的预设测试周期,对所述可疑进程的目标测试区间进行循环重复测试,获得循环重复测试结果;根据循环重复测试结果,确定目标异常进程。
3.根据权利要求1所述的内存泄露的检测方法,其特征在于,所述选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据,具体包括:
选取预设数量的功能模块;
在所述功能模块完全覆盖网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;
在所述功能模块完全覆盖所述网络安全产品中待测试功能模块且未达到预设测试轮数的情况下,采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列;
对所述功能模块序列中各个功能模块所对应进程的内存变化情况进行测试,获得相应的内存占用量数据。
4.根据权利要求1所述的内存泄露的检测方法,其特征在于,所述基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程,具体包括:
基于预设的最小二乘法对所述内存占用量数据进行第一次线性回归分析,获得第一回归曲线的斜率,将所述第一回归曲线的斜率和所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述第一回归曲线的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程。
5.根据权利要求4所述的内存泄露的检测方法,其特征在于,还包括:
在所述第一回归曲线的斜率小于所述预设的内存泄露判断标准曲线的斜率的情况下,基于预设的回归模型对所述内存占用量数据进行第二次线性回归分析,生成第二回归曲线;
基于所述第二回归曲线预测未来多个测试周期的内存占用量变化趋势数据,并确定所述内存占用量变化趋势数据对应的斜率;
将所述内存占用量变化趋势数据对应的斜率与所述预设的内存泄露判断标准曲线的斜率进行比对分析,在所述内存占用量变化趋势数据对应的斜率大于或等于所述预设的内存泄露判断标准曲线的斜率的情况下,确定相应的进程为可疑进程;其中,所述回归模型为预设的多项式回归模型。
6.根据权利要求5所述的内存泄露的检测方法,其特征在于,所述确定所述内存占用量变化趋势数据对应的斜率,具体包括:
基于所述内存占用量变化趋势数据获得未来多个测试周期内的内存占用量最小值和内存占用量初始值;基于所述内存占用量最小值和所述内存占用量初始值计算得到相应的斜率。
7.根据权利要求3所述的内存泄露的检测方法,其特征在于,在选取待测试的功能模块序列执行测试操作之前,还包括:
预先将所述网络安全产品中待测试功能模块的信息记录到预设的随机种子池中,构建每个待测试功能模块与优先级信息之间的对应关系;其中,所述优先级信息包括每个待测试功能模块被选取的概率;
所述采用有放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列,具体包括:
基于所述优先级信息,采用有放回的方式依次选取所述预设数量的功能模块,以获得每轮测试对应的功能模块序列;
所述采用无放回的方式选取所述预设数量的功能模块,以获得每轮测试的功能模块序列,具体包括:
基于所述优先级信息,采用无放回的方式依次选取所述预设数量的功能模块,以获得每轮测试对应的功能模块序列。
8.一种内存泄露的检测装置,其特征在于,包括:
内存占用量数据测试单元,用于选取待测试的功能模块序列执行测试操作,以获得与所述功能模块序列对应的各个进程的内存占用量数据;
可疑进程检测单元,用于基于所述内存占用量数据进行线性回归分析,获得回归曲线,将所述回归曲线和预设的内存泄露判断标准曲线进行对比分析,确定可疑进程;
内存泄露检测单元,用于对所述可疑进程进行循环强化测试,以确定目标异常进程,并基于所述目标异常进程确定造成内存泄露的功能模块。
9.一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任意一项所述的内存泄露的检测方法的步骤。
10.一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任意一项所述的内存泄露的检测方法的步骤。
CN202311369151.XA 2023-10-20 2023-10-20 一种内存泄露的检测方法及装置 Pending CN117555710A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311369151.XA CN117555710A (zh) 2023-10-20 2023-10-20 一种内存泄露的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311369151.XA CN117555710A (zh) 2023-10-20 2023-10-20 一种内存泄露的检测方法及装置

Publications (1)

Publication Number Publication Date
CN117555710A true CN117555710A (zh) 2024-02-13

Family

ID=89819382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311369151.XA Pending CN117555710A (zh) 2023-10-20 2023-10-20 一种内存泄露的检测方法及装置

Country Status (1)

Country Link
CN (1) CN117555710A (zh)

Similar Documents

Publication Publication Date Title
CN111143102B (zh) 异常数据检测方法、装置、存储介质及电子设备
CN110362612B (zh) 由电子设备执行的异常数据检测方法、装置和电子设备
CN111459700B (zh) 设备故障的诊断方法、诊断装置、诊断设备及存储介质
US9639844B2 (en) Method and apparatus of identifying a website user
US20170324759A1 (en) Network sampling based path decomposition and anomaly detection
CN112346941A (zh) 一种故障诊断方法及装置
WO2016018289A1 (en) Security risk scoring of an application
CN111309539A (zh) 一种异常监测方法、装置和电子设备
CN111796957B (zh) 基于应用日志的交易异常根因分析方法及系统
EP4120653A1 (en) Communication network performance and fault analysis using learning models with model interpretation
US20190087248A1 (en) Anomaly detection and automated analysis using weighted directed graphs
CN107341095B (zh) 一种智能分析日志数据的方法及装置
CN113722134A (zh) 一种集群故障处理方法、装置、设备及可读存储介质
CN109308225B (zh) 一种虚拟机异常检测方法、装置、设备及存储介质
CN116304909A (zh) 一种异常检测模型训练方法、故障场景定位方法及装置
CN109918901A (zh) 实时检测基于Cache攻击的方法
CN107871213B (zh) 一种交易行为评价方法、装置、服务器以及存储介质
Luo Monitoring Uneven Multistage/Multiphase Batch Processes using Trajectory‐Based Fuzzy Phase Partition and Hybrid MPCA Models
CN116701846A (zh) 一种基于无监督学习的水电站调度运行数据清洗方法
CN117555710A (zh) 一种内存泄露的检测方法及装置
JP2009277110A (ja) ソフトウェア試験及び開発支援装置並びに当該装置用プログラム
US11526162B2 (en) Method for detecting abnormal event and apparatus implementing the same method
CN114938339A (zh) 一种数据处理方法和相关装置
CN104035866B (zh) 基于系统调用分析的软件行为评估方法和装置
CN114172705A (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