CN104182332B - 判断资源泄漏、预测资源使用情况的方法及装置 - Google Patents
判断资源泄漏、预测资源使用情况的方法及装置 Download PDFInfo
- Publication number
- CN104182332B CN104182332B CN201310190659.3A CN201310190659A CN104182332B CN 104182332 B CN104182332 B CN 104182332B CN 201310190659 A CN201310190659 A CN 201310190659A CN 104182332 B CN104182332 B CN 104182332B
- Authority
- CN
- China
- Prior art keywords
- resource
- program
- resource usage
- component
- program operation
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机应用领域,尤其涉及一种判断程序运行资源泄漏的方法及装置,用以解决现有的检测程序运行资源泄漏的方法中,容易出现误报和漏报、通用性较差的问题;还涉及一种预测程序运行资源使用情况的方法及装置,用以解决现有技术不能预测在程序运行过程中,将来程序运行资源使用情况的问题;预测程序运行资源使用情况的方法包括:在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;将采集的程序运行资源使用量分解成不同种资源分量;针对每一种资源分量中包含的数据,确定该资源分量的预测函数;根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数;基于确定的总体预测函数,预测程序运行资源的使用情况。
Description
技术领域
本发明涉及计算机应用领域,尤其涉及一种判断程序运行资源泄漏的方法及装置、一种预测程序运行资源使用情况的方法及装置。
背景技术
程序运行资源,如内存、文件句柄、信号量、数据库连接池、线程池等是程序运行时需要的关键资源。在运行过程中,程序在需要使用程序运行资源时提出申请,在使用结束后及时释放所占用的程序运行资源;若没有及时释放已占用的程序运行资源,就会出现程序运行资源泄漏的问题。下面以内存泄漏为例,对程序运行资源泄漏的问题作具体说明。
内存泄漏是指由于设计或编码问题等造成程序没有及时释放已经不再使用的内存,导致***的可用内存越来越少,随着程序长时间运行,内存泄漏越来越严重,最终可能导致***由于内存不足而使业务受损或中断。内存泄漏是程序运行过程中容易出现而又难以避免的问题,随着软件规模越来越大、复杂度越来越高,***中出现内存泄漏的概率也越来越高。
针对内存泄漏的问题,现有检测内存泄漏的方法之一是采用静态分析的方法,这种方法不需要运行程序,而是通过人工或自动化工具分析程序代码以检查代码中内存分配和释放的匹配情况。对于内存分配和释放的对应关系比较简单的情况,静态分析方法通常可以有效检测出潜在的内存泄漏,但对于内存分配和释放的对应关系比较复杂的情况,如在一个函数中分配内存,在另外一个甚至多个函数中释放对应的内存等,静态分析方法通常容易出现误报和漏报。
现有检测内存泄漏的方法之二是在程序运行过程中动态监控内存的分配和释放,并结合对内存生命周期的判断来检测内存泄漏;一方面,该方法需要对程序中所有相关的内存分配和释放进行管理,并需要准确判断内存的生命周期,导致实施复杂、对***性能消耗较大;另一方面,为了实现对内存分配函数和释放函数的接管,需要根据具体的应用程序作相应的代码修改,且对内存生命周期的判断也依赖于具体的应用场景,因此,该方法与具体被检测的目标***耦合紧密,通用性较差。
另外,现有技术只能检测是否存在内存泄漏,而对将来的内存使用情况,如多长时间后会出现内存耗尽或多长时间后内存使用量将达到设定阈值等,不能提供预测。
发明内容
本发明实施例提供一种判断程序运行资源泄漏的方法及装置,用以解决现有的检测程序运行资源泄漏的方法中,容易出现误报和漏报、对***性能消耗大、通用性较差的问题。
第一方面,提供一种判断程序运行资源泄漏的方法,包括:
在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;其中,在每个程序运行资源使用周期内采集程序运行资源使用量的次数相同;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,其中在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内;
根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏。
结合第一方面,在第一种可能的实现方式中,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值之前,还包括:
确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,根据所述大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏,包括:
若所述大于0的差值总数与小于0的差值总数之差大于设定的阈值,则确定存在程序运行资源泄漏。
结合第一方面或者第一方面的第一种可能的实现方式,在第三种可能的实现方式中,根据所述大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏,包括:
确定所述大于0的差值总数与小于0的差值总数之差的统计量Z;
若Z大于设定的阈值,则确定存在程序运行资源泄漏。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,根据以下公式确定所述大于0的差值总数与小于0的差值总数之差S′的统计量Z:
若n≥10,则其中,n为程序运行资源使用周期的个数;
否则,
其中, Rik为在第k个程序运行资源使用周期内采集的第i次程序运行资源使用量;Ril为在第l个程序运行资源使用周期内采集的第i次程序运行资源使用量。
第二方面,提供一种判断程序运行资源泄漏的装置,包括:
采集模块,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,并将采集的程序运行资源使用量传输至确定模块,其中,在每个程序运行资源使用周期内采集程序运行资源使用量的次数相同;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
确定模块,用于接收所述采集模块每次采集的程序运行资源使用量,并针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,并将确定的各差值传输至判断模块,其中在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内;
判断模块,用于接收所述确定模块确定的各差值,并根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏。
第三方面,提供一种判断程序运行资源泄漏的装置,包括:
处理器,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;其中,在每个程序运行资源使用周期内采集程序运行资源使用量的次数相同;针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,其中在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内;根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
存储器,用于存储所述处理器每次采集的程序运行资源使用量及确定的在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值。
根据第一方面提供的判断程序运行资源泄漏的方法,第二方面或第三方面提供的判断程序运行资源泄漏的装置,采用本发明实施例可以实现对程序运行过程中不同程序运行资源使用周期的程序运行资源使用量的分析,从而可以得到程序运行中不同阶段的程序运行资源使用情况,较准确地判断出当前是否存在程序运行资源泄漏,比如内存泄漏,另外,本发明实施例仅需在程序运行中间隔性地采集程序运行资源使用量,在采集一定次数的程序运行资源使用量后,判断是否存在程序运行资源泄漏,对***性能消耗较低,且适用于不同的目标***,通用性较强。
本发明实施例还提供一种预测程序运行资源使用情况的方法及装置,用以解决现有技术不能预测在程序运行过程中,将来程序运行资源使用情况的问题。
第一方面,提供一种预测程序运行资源使用情况的方法,包括:
在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
将采集的程序运行资源使用量分解成不同种资源分量,所述不同种资源分量为根据程序运行资源的使用规律,将程序运行资源分解成的具有不同变化规律的组成部分;
针对每一种资源分量中包含的数据,确定该资源分量的预测函数;
根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数;
基于确定的总体预测函数,预测程序运行资源的使用情况。
结合第一方面,在第一种可能的实现方式中,将采集的程序运行资源使用量分解成不同种资源分量之前,还包括:
确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述资源分量包括周期性变化的季节分量和随机性变化的随机分量;或
所述资源分量包括体现程序运行资源使用量的变化趋势的趋势分量和随机性变化的随机分量;或
所述资源分量包括体现程序运行资源使用量的变化趋势的趋势分量、周期性变化的季节分量和随机性变化的随机分量;
其中,所述趋势分量的预测函数为将所述趋势分量中包含的数据进行线性拟合或非线性拟合,得到的以预测时间为自变量的线性函数或非线性函数;
所述季节分量的预测函数为Si,其中,i=t mod T,t为预测时间,T为程序运行资源使用周期,Si为t对应的程序运行资源使用周期的第i个程序运行资源使用量;
所述随机分量的预测函数为根据所述随机分量中包含的数据的均值和标准差,确定的一个置信上限。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述资源分量包括趋势分量、季节分量和随机分量时,根据以下公式确定程序运行资源总体预测函数:
Rt=(a+bt)+Si+(μ+kσ)
式中,Rt为程序运行资源总体预测函数:(a+bt)为所述趋势分量的预测函数,a和b为常数;(μ+kσ)为所述随机分量的预测函数,其中,μ为所述随机分量中包含的数据的均值,σ为所述随机分量中包含的数据的标准差,k为常数。
结合第一方面或第一方面的第一至三种任一种可能的实现方式,在第四种可能的实现方式中,基于确定的总体预测函数,预测程序运行资源的使用情况,包括:
根据确定的所述总体预测函数,预测在将来设定时间的程序运行资源使用量,和/或预测程序运行资源耗尽时的时间,和/或预测程序运行资源使用量将来达到设定阈值的时间。
第二方面,提供一种预测程序运行资源使用情况的装置,包括:
采集模块,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,并将采集到的程序运行资源使用量传输至分解模块;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
分解模块,用于接收所述采集模块采集的程序运行资源使用量,并将采集的程序运行资源使用量分解成不同种资源分量,将每种资源分量中包含的数据传输至确定模块,所述不同种资源分量为根据程序运行资源的使用规律,将程序运行资源分解成的具有不同变化规律的组成部分;
确定模块,用于接收所述分解模块分解得到的每种资源分量中包含的数据,针对每一种资源分量中包含的数据,确定该资源分量的预测函数,并根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数,将确定的总体预测函数传输至预测模块;
预测模块,用于接收所述确定模块确定的总体预测函数,并基于所述总体预测函数,预测程序运行资源的使用情况。
第三方面,提供一种预测程序运行资源使用情况的装置,包括:
处理器,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;将采集的程序运行资源使用量分解成不同种资源分量,所述不同种资源分量为根据程序运行资源的使用规律,将程序运行资源分解成的具有不同变化规律的组成部分;针对每一种资源分量中包含的数据,确定该资源分量的预测函数,并根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数,基于所述总体预测函数,预测程序运行资源的使用情况;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
存储器,用于存储所述处理器每次采集的序运行资源使用量、分解得到的不同种资源分量包含的数据及所述预测函数。
根据第一方面提供的预测程序运行资源使用情况的方法,第二方面或第三方面提供的预测程序运行资源使用情况的装置,本发明实施例根据程序运行资源的使用规律,将程序运行资源使用量分解成具有不同变化规律的组成部分,并对不同组成部分分别进行拟合和估计,得到准确反映不同组成部分的程序运行资源使用量变化规律的预测函数,进而得到反映总体的程序运行资源使用量变化规律的预测函数,从而采用本发明实施例可以较准确地预测出将来的程序运行资源使用情况,弥补了现有技术不能预测程序运行过程中资源使用情况的缺陷。
附图说明
图1为本发明实施例提供的判断程序运行资源泄漏的方法流程图;
图2为本发明较佳的实施例提供的判断程序运行资源泄漏的方法流程图;
图3为本发明实施例提供的判断程序运行资源泄漏的装置结构示意图;
图4为本发明实施例提供的判断程序运行资源泄漏的装置结构图;
图5为本发明实施例提供的预测程序运行资源使用情况的方法流程图;
图6为本发明实施例采用经典的时间序列分解方法将程序运行资源使用量分解成趋势分量、季节分量和随机分量的示意图;
图7为本发明较佳的实施例提供的预测程序运行资源使用情况的方法流程图;
图8为本发明实施例提供的检测内存泄漏及预测内存使用情况的总体方法流程图;
图9为本发明实施例提供的预测程序运行资源使用情况的装置结构示意图;
图10为本发明实施例提供的预测程序运行资源使用情况的装置结构图;
图11为本发明实施例检测资源泄漏、预测资源使用情况的装置部署示意图。
具体实施方式
本发明实施例通过在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏。采用本发明实施例可以实现对程序运行过程中不同程序运行资源使用周期的程序运行资源使用量的分析,从而可以得到程序运行中不同阶段的程序运行资源使用情况,较准确地判断出当前是否存在程序运行资源泄漏,比如内存泄漏,另外,本发明实施例仅需在程序运行中间隔性地采集程序运行资源使用量,在采集一定次数的程序运行资源使用量后,判断是否存在程序运行资源泄漏,对***性能消耗较低,且适用于不同的应用程序,通用性较强。
本发明实施例通过在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,将采集的程序运行资源使用量分解成不同种资源分量,针对每一种资源分量中包含的数据,确定该资源分量的预测函数,根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数,最后基于确定的总体预测函数,预测程序运行资源的使用情况。本发明实施例根据程序运行资源的使用规律,将程序运行资源使用量分解成具有不同变化规律的组成部分,并对不同组成部分分别进行拟合和估计,得到准确反映不同组成部分的程序运行资源使用量变化规律的预测函数,进而得到反映总体的程序运行资源使用量变化规律的预测函数,从而采用本发明实施例可以较准确地预测出将来的程序运行资源使用情况,弥补了现有技术不能预测程序运行过程中资源使用情况的缺陷。
下面结合说明书附图对本发明实施例作进一步详细描述。
如图1所示,为本发明实施例提供的判断程序运行资源泄漏的方法流程图,包括以下步骤:
S101:在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;其中,在每个程序运行资源使用周期内采集程序运行资源使用量的次数相同;程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
S102:针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,其中在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内;
S103:根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏。
本发明实施例中的程序运行资源可以是内存资源,也可以是程序运行需要的文件句柄、信号量、数据库连接池、或线程池等软件资源;本发明实施例判断是否存在程序运行资源泄漏的目标对象可以是不同层级的,如主机、虚拟机、进程、进程子模块、进程的内存分区等。
本发明实施例的基本思想是根据程序运行资源使用量的周期性特点,在每个程序运行资源使用周期内采集一次或多次程序运行资源使用量,确定在后周期内每次采集的程序运行资源使用量与在前周期对应次采集的程序运行资源使用量的差值,这里,针对一个差值,若该差值大于0,则表示在该差值对应的两个程序运行资源使用量中,在后周期的程序运行资源使用量相比在前周期的程序运行资源使用量是上升的,若该差值小于0,则表示该差值对应的两个程序运行资源使用量中,在后周期的程序运行资源使用量相比在前周期的程序运行资源使用量是下降的,若该差值等于0,则表示该差值对应的两个程序运行资源使用量中,在后周期的程序运行资源使用量与在前周期的程序运行资源使用量是相等的;因此,确定的所有周期对应的各差值中,大于0的差值总数标识了采集的程序运行资源使用量总次数中,程序运行资源使用量随时间上升的次数,而小于0的差值总数则标识了采集的程序运行资源使用量总次数中,程序运行资源使用量随时间下降的次数,因此,大于0的差值总数与小于0的差值总数的差值,则可以标识程序运行资源使用量总体的上升或下降情况。这里,在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内,在实际实施中,为了使判断结果更加准确,可以使在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差相同。
较佳地,可以在每个程序运行资源使用周期内,以相同的设定频率采集程序运行资源使用量。
较佳地,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值之前,还包括:
确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
在具体实施过程中,可以设置一个或几个启动判断是否存在程序运行资源泄漏的条件,如当前已采集的程序运行资源使用量总周期数或总次数已达到或超过设定的阈值、当前程序运行资源占用率已达到或超过设定的阈值,当前CPU占用率小于设定的阈值,当前时间是在设定的时间范围内等。
在具体实施过程中,可以设置当达到上述判断条件中的任意一个或几个时,启动判断是否存在程序运行资源泄漏。这里,由于采集的程序运行资源使用量总周期数或总次数越多,判断结果越准确,因此可以设置一个阈值,当采集的程序运行资源使用量总周期数或总次数已达到或超过设定的阈值时,启动判断是否存在程序运行资源泄漏;还可以考虑当前的CPU占用率,若当前CPU占用率较高,说明当前***繁忙,为了不影响***性能,可以设置在CPU占用率小于设定阈值时,才启动判断是否存在程序运行资源泄漏;还可以设置一个启动判断的时间范围,设置在***空闲的时间执行判断是否存在程序运行资源泄漏;此外,还可以设置程序运行资源占用率第一阈值,其中,程序运行资源占用率达到第一阈值说明程序运行资源耗尽的危险性比较高,可以设置当程序运行资源占用率达到第一阈值时,不管是否满足其它判断条件,都启动判断是否存在程序运行资源泄漏;另外,还可以设置程序运行资源占用率第二阈值,其中,程序运行资源占用率未达到第二阈值说明程序运行资源还比较宽裕,可以设置在程序运行资源占用率未达到第二阈值时,不管是否满足其它判断条件,都不启动判断是否存在程序运行资源泄漏。
在具体实施过程中,根据确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏的方式可以有多种,本发明实施例给出以下两种实现方式:
方式一、根据大于0的差值总数与小于0的差值总数之差是否大于设定的阈值,判断是否存在程序运行资源泄漏;
具体地,根据大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏,包括:
若所述大于0的差值总数与小于0的差值总数之差大于设定的阈值,则确定存在程序运行资源泄漏。
这里,由于大于0的差值总数与小于0的差值总数的差值,可以标识程序运行资源使用量总体的上升或下降情况,因此可以直接根据大于0的差值个数与小于0的差值个数之差是否已达到或超过设定的阈值来判断是否存在程序运行资源泄漏,如在总的差值个数中,有90%的差值是大于0的,只有10%的差值是小于0的,则可以认为当前存在程序运行资源泄漏。
该方式对于判断是否存在程序运行资源泄漏较为直观,实施过程也较为简单,对***性能影响也非常小。
方式二、根据大于0的差值总数与小于0的差值总数之差的统计量Z是否大于设定的阈值,判断是否存在程序运行资源泄漏;
具体地,根据大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏,包括:
确定大于0的差值总数与小于0的差值总数之差的统计量Z;
若Z大于设定的阈值,则确定存在程序运行资源泄漏。
本实施方式的基本思想是采用概率统计的方式,不直接将大于0的差值个数与小于0的差值个数的差值S′与设定阈值比较,而是确定与S′具有对应关系的统计量Z,该统计量Z是一个可以表征S′大小并满足一个概率分布的量;本实施方式根据统计量Z是否大于设定的阈值来判断是否存在程序运行资源泄漏。
较佳地,根据以下公式确定所述大于0的差值总数与小于0的差值总数之差S′的统计量Z:
若n≥10,则其中,n为程序运行资源使用周期的个数;
否则,
其中, Rik为在第k个程序运行资源使用周期内采集的第i次程序运行资源使用量;Ril为在第l个程序运行资源使用周期内采集的第i次程序运行资源使用量。
这里,与S′具有上述对应关系的统计量Z服从标准正态分布,VAR()为方差函数,sgn()为符号函数,当在后周期内一次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值大于0时,该符号函数值为1,当在后周期内一次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值小于0时,该符号函数值为-1,当在后周期内一次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值等于0时,该符号函数值为0。
这里,设置的统计量Z的阈值Zα为在标准正态分布中的上分位点,其中,统计量Z大于阈值Zα的概率为α,α的值可以根据实际需要设定,如5%、1%等,若确定的Z大于Zα,则确定存在程序运行资源泄漏,相反,若Z不大于Zα,则认为不存在程序运行资源泄漏。
下面将列举一个较典型的判断程序运行资源泄漏的实施方式。
如图2所示,为本发明较佳的实施例提供的判断程序运行资源泄漏的方法流程图,包括:
S201:在每个程序运行资源使用周期内以设定频率采集多次程序运行资源使用量;
S202:判断采集的程序运行资源使用量总周期数或总次数是否不小于设定的阈值,若是,则进入步骤S203,否则返回步骤S201;
在具体实施过程中,还可以设置其它判断条件,如当前程序运行资源占用率是否不小于设定的阈值,当前中央处理器CPU占用率是否小于设定的阈值,当前时间是否在设定的时间范围内等。
S203:针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值;
S204:根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏。
在具体实施过程中,根据大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏,可以具体采用上述方式一或方式二,这里不再赘述。
基于同一发明构思,本发明实施例中还提供了一种与判断程序运行资源泄漏的方法对应的判断程序运行资源泄漏的装置,由于该装置解决问题的原理与本发明实施例判断程序运行资源泄漏的方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,为本发明实施例提供的判断程序运行资源泄漏的装置结构示意图,包括:
采集模块31,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,并将采集的程序运行资源使用量传输至确定模块,其中,在每个程序运行资源使用周期内采集程序运行资源使用量的次数相同;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
确定模块32,用于接收采集模块31每次采集的程序运行资源使用量,并针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,并将确定的各差值传输至判断模块33,其中在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内;
判断模块33,用于接收确定模块32确定的各差值,并根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏。
较佳地,确定模块32还用于,在确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值之前,确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
较佳地,判断模块33具体用于:若大于0的差值总数与小于0的差值总数之差大于设定的阈值,则确定存在程序运行资源泄漏。
较佳地,判断模块33具体用于:
确定大于0的差值总数与小于0的差值总数之差的统计量Z;
若Z大于设定的阈值,则确定存在程序运行资源泄漏。
较佳地,判断模块33具体用于根据以下公式确定大于0的差值总数与小于0的差值总数之差S′的统计量Z:
若n≥10,则其中,n为程序运行资源使用周期的个数;
否则,
其中, Rik为在第k个程序运行资源使用周期内采集的第i次程序运行资源使用量;Ril为在第l个程序运行资源使用周期内采集的第i次程序运行资源使用量。
如图4所示,为本发明实施例提供的判断程序运行资源泄漏的装置结构图,包括:
处理器41,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;其中,在每个程序运行资源使用周期内采集程序运行资源使用量的次数相同;程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,其中在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内;根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏;
存储器42,用于存储所述处理器每次采集的程序运行资源使用量及确定的在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值。
较佳地,处理器41还用于,在确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值之前,确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
较佳地,处理器41具体用于:若所述大于0的差值总数与小于0的差值总数之差大于设定的阈值,则确定存在程序运行资源泄漏。
较佳地,处理器41具体用于:确定所述大于0的差值总数与小于0的差值总数之差的统计量Z;若Z大于设定的阈值,则确定存在程序运行资源泄漏。
较佳地,处理器41具体用于根据以下公式确定所述大于0的差值总数与小于0的差值总数之差S′的统计量Z:
若n≥10,则其中,n为程序运行资源使用周期的个数;
否则,
其中, Rik为在第k个程序运行资源使用周期内采集的第i次程序运行资源使用量;Ril为在第l个程序运行资源使用周期内采集的第i次程序运行资源使用量。
如图5所示,为本发明实施例提供的预测程序运行资源使用情况的方法流程图,包括:
S501:在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
S502:将采集的程序运行资源使用量分解成不同种资源分量,所述不同种资源分量为根据程序运行资源的使用规律,将程序运行资源分解成的具有不同变化规律的组成部分;
S503:针对每一种资源分量中包含的数据,确定该资源分量的预测函数;根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数;
S504:基于确定的总体预测函数,预测程序运行资源的使用情况。
本发明实施例中的程序运行资源可以是内存资源,也可以是程序运行需要的文件句柄、信号量、数据库连接池、或线程池等软件资源;本发明实施例预测程序运行资源使用情况的目标对象可以是不同层级的,如主机、虚拟机、进程、进程子模块、进程的内存分区等。
本发明实施例的基本思想是根据程序运行资源的使用规律,将程序运行资源分解成具有不同变化规律的组成部分,即不同的资源分量,对每种资源分量分别进行拟合和估计,确定每种资源分量的预测函数,再将确定的每种资源分量的预测函数进行整合,得到程序运行资源的总体预测函数,根据该总体预测函数预测将来程序运行资源的使用情况。
较佳地,步骤S502之前,还包括:
确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
较佳地,分解成的资源分量包括周期性变化的季节分量和随机性变化的随机分量;或
分解成的资源分量包括体现程序运行资源使用量的变化趋势的趋势分量和随机性变化的随机分量;或
分解成的资源分量包括体现程序运行资源使用量的变化趋势的趋势分量、周期性变化的季节分量和随机性变化的随机分量;
其中,趋势分量的预测函数为将该趋势分量中包含的数据进行线性拟合或非线性拟合,得到的以预测时间为自变量的线性函数或非线性函数;
季节分量的预测函数为Si,其中,i=t mod T,t为预测时间,T为程序运行资源使用周期,Si为t对应的程序运行资源使用周期的第i个程序运行资源使用量;
随机分量的预测函数为根据所述随机分量中包含的数据的均值和标准差,确定的一个置信上限。
在具体实施过程中,可以根据程序运行资源的使用规律,将程序运行资源分解成季节分量和随机分量,或趋势分量和随机分量,或趋势分量、季节分量和随机分量,其中,趋势分量是体现程序运行资源使用量的变化趋势的分量,季节分量表示程序运行资源使用量具有周期性变化规律的量,随机分量表示程序运行资源使用量随机性变化的量。
在具体实施过程中,若将程序运行资源使用量分解成趋势分量、季节分量和随机分量,可以采用时间序列分解方法,如经典分解方法或STL分解方法等。下面以经典分解方法为例,详细说明将程序运行资源使用量分解成趋势分量、季节分量和随机分量的步骤:
假设一个周期内采集的程序运行资源使用量次数为奇数N,针对采集的一次程序运行资源使用量,将该次之前采集的(N-1)/2次程序运行资源使用量、该次之后采集的(N-1)/2次程序运行资源使用量、及该次采集的程序运行资源使用量相加,并除以一个周期内采集的程序运行资源使用量的总次数,得到该次采集的程序运行资源使用量对应的趋势分量的数值;将该次采集的程序运行资源使用量与对应的趋势分量的数值相减,得到该次采集的程序运行资源使用量对应的季节分量和随机分量的和值,在此基础上确定每个周期对应次采集的程序运行资源使用量对应的季节分量和随机分量的和值的平均值,将该平均值作为每个周期对应次采集的程序运行资源使用量对应的季节分量的数值,也即,不同周期的季节分量的数值相同;最后,将该次采集的程序运行资源使用量减去对应的趋势分量和季节分量,得到该次采集的程序运行资源使用量对应的随机分量。
如图6所示,为本发明实施例采用经典的时间序列分解方法将程序运行资源使用量分解成趋势分量、季节分量和随机分量的示意图;图中的横纵坐标值只作为示意,这里不作关于单位等的具体说明,该图共对应6个周期的程序运行资源使用量,每个周期内分别采集96次程序运行资源资源使用量。
较佳地,在资源分量包括趋势分量、季节分量和随机分量时,根据以下公式确定程序运行资源总体预测函数:
Rt=(a+bt)+Si+(μ+kσ)
式中,Rt为程序运行资源总体预测函数:(a+bt)为趋势分量的预测函数,a和b为常数;(μ+kσ)为随机分量的预测函数,其中,μ为随机分量中包含的数据的均值,σ为随机分量中包含的数据的标准差,k为常数。
在具体实施过程中,趋势分量的预测函数可以是上述公式中的线性函数,也可以是拟合得到的非线性函数,如二次函数、指数函数、对数函数、多项式、Gompertz、Logistic。根据上述对季节分量特点的分析,每个周期的季节分量数据是相同的,因此,可取一个周期的季节分量用于预测将来程序运行资源使用量,本发明实施例中,季节分量的预测函数为Si,其中,i=t mod T,mod表示t除以T取余数,t为预测时间,T为程序运行资源使用周期,Si为t对应的程序运行资源使用周期的第i个程序运行资源使用量,在进行预测时,确定预测时间t对应的为程序运行资源使用周期的第几个程序运行资源使用量,根据确定的Si,确定t对应的季节分量数据;对于随机分量,虽然不能预测未来某个时间随机分量的精确值,但可根据已有的随机分量数据,确定随机分量的均值μ和标准差σ,然后用某个置信上限,如μ+kσ,k为常数,作为随机分量的一个估计值。
较佳地,上述步骤S504中,基于确定的总体预测函数,预测程序运行资源的使用情况,包括:
根据确定的所述总体预测函数,预测在将来设定时间的程序运行资源使用量,和/或预测程序运行资源耗尽时的时间,和/或预测程序运行资源使用量将来达到设定阈值的时间。
在具体实施过程中,根据确定的总体预测函数,即可预测程序运行资源的使用情况,如令上述Rt等于设定的程序运行资源使用量阈值,可得到程序运行资源使用量将来达到设定阈值的时间,令上述Rt等于总的可用程序运行资源,可得到程序运行资源耗尽时的时间,令t等于设定的未来某个时间,即可得到在未来的时间t时的程序运行资源使用量。
下面将列举一个较典型的预测程序运行资源使用情况的实施方式。
如图7所示,为本发明较佳的实施例提供的预测程序运行资源使用情况的方法流程图,包括:
S701:在每个程序运行资源使用周期内以设定频率采集多次程序运行资源使用量;
S702:判断采集的程序运行资源使用量总周期数或总次数是否不小于设定的阈值,若是,则进入步骤S703,否则,返回步骤S701;
在具体实施过程中,还可以设置其它判断条件,如当前程序运行资源占用率是否不小于设定的阈值,当前中央处理器CPU占用率是否小于设定的阈值,当前时间是否在设定的时间范围内等。
S703:将采集的程序运行资源使用量分解成体现程序运行资源使用量的变化趋势的趋势分量、周期性变化的季节分量和随机性变化的随机分量;
S704:针对每一种资源分量中包含的数据,确定该资源分量的预测函数;根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数;
在具体实施过程中,趋势分量的预测函数可以为将该趋势分量中包含的数据进行线性拟合或非线性拟合,得到的以预测时间为自变量的线性函数或非线性函数;季节分量的预测函数为Si,其中,i=t mod T,t为预测时间,T为程序运行资源使用周期,Si为t对应的程序运行资源使用周期的第i个程序运行资源使用量;随机分量的预测函数为根据所述随机分量中包含的数据的均值和标准差,确定的一个置信上限。
S705:根据确定的总体预测函数,预测在将来设定时间的程序运行资源使用量,和/或预测程序运行资源耗尽时的时间,和/或预测程序运行资源使用量将来达到设定阈值的时间。
在具体实施过程中,可以将本发明实施例判断程序运行资源泄漏和预测程序运行资源使用情况的方法结合,判断程序运行资源泄漏的过程和预测程序运行资源使用情况的过程可以同时进行,也可以先后进行。下面以程序运行资源中的内存资源为例,列举一个判断内存泄漏和预测内存使用情况的方法结合应用的实施方式。
如图8所示,为本发明实施例提供的检测内存泄漏及预测内存使用情况的总体方法流程图,包括:
S801:在每个内存资源使用周期内以设定频率采集多次内存使用量;
S802:判断采集的内存使用量总周期数或总次数是否不小于设定的阈值,若是,则进入步骤S803,否则,返回步骤S801;
在具体实施过程中,还可以设置其它启动检测内存泄漏的条件,如当前内存占用率不小于设定的阈值,当前中央处理器CPU占用率小于设定的阈值,当前时间在设定的时间范围内等。
S803:判断是否启动检测内存泄漏,若是,则进入步骤S804,否则进入步骤S805;
S804:进行内存泄漏检测,并在检测完输出检测结果后,进入步骤S805;
这里,具体检测过程可参见前述判断程序运行资源泄漏的方法,这里不再赘述;
S805:判断是否启动预测内存使用情况,若是,则进入步骤S806,否则,返回步骤S801;
S806:预测内存使用情况,并在预测完后输出预测结果。
这里,具体预测过程可参见前述预测程序运行资源使用情况的方法,这里不再赘述。
如图9所示,为本发明实施例提供的预测程序运行资源使用情况的装置结构示意图,包括:
采集模块91,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,并将采集到的程序运行资源使用量传输至分解模块92;程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
分解模块92,用于接收采集模块91采集的程序运行资源使用量,并将采集的程序运行资源使用量分解成不同种资源分量,将每种资源分量中包含的数据传输至确定模块93,这里不同种资源分量为根据程序运行资源的使用规律,将程序运行资源分解成的具有不同变化规律的组成部分;
确定模块93,用于接收分解模块92分解得到的每种资源分量中包含的数据,针对每一种资源分量中包含的数据,确定该资源分量的预测函数,并根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数,将确定的总体预测函数传输至预测模块94;
预测模块94,用于接收确定模块93确定的总体预测函数,并基于所述总体预测函数,预测程序运行资源的使用情况。
较佳地,确定模块93还用于,在采集模块91将采集的程序运行资源使用量分解成不同种资源分量之前,确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
较佳地,分解模块92分解后的资源分量包括周期性变化的季节分量和随机性变化的随机分量;或
分解模块92分解后的资源分量包括体现程序运行资源使用量的变化趋势的趋势分量和随机性变化的随机分量;或
分解模块92分解后的资源分量包括体现程序运行资源使用量的变化趋势的趋势分量、周期性变化的季节分量和随机性变化的随机分量;
其中,趋势分量的预测函数为将趋势分量中包含的数据进行线性拟合或非线性拟合,得到的以预测时间为自变量的线性函数或非线性函数;
季节分量的预测函数为Si,其中,i=t mod T,t为预测时间,T为程序运行资源使用周期,Si为t对应的程序运行资源使用周期的第i个程序运行资源使用量;
随机分量的预测函数为根据随机分量中包含的数据的均值和标准差,确定的一个置信上限。
较佳地,确定模块93具体用于在分解模块92分解的资源分量包括趋势分量、季节分量和随机分量时,根据以下公式确定程序运行资源总体预测函数:
Rt=(a+bt)+Si+(μ+kσ)
式中,Rt为程序运行资源总体预测函数:(a+bt)为所述趋势分量的预测函数,a和b为常数;(μ+kσ)为所述随机分量的预测函数,其中,μ为所述随机分量中包含的数据的均值,σ为所述随机分量中包含的数据的标准差,k为常数。
较佳地,预测模块94具体用于:
根据确定的所述总体预测函数,预测在将来设定时间的程序运行资源使用量,和/或预测程序运行资源耗尽时的时间,和/或预测程序运行资源使用量将来达到设定阈值的时间。
如图10所示,为本发明实施例提供的预测程序运行资源使用情况的装置结构图,包括:
处理器101,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,并将采集的程序运行资源使用量分解成不同种资源分量,这里不同种资源分量为根据程序运行资源的使用规律,将程序运行资源分解成的具有不同变化规律的组成部分;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;针对每一种资源分量中包含的数据,确定该资源分量的预测函数,并根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数,基于确定的总体预测函数,预测程序运行资源的使用情况;
存储器102,用于存储每次采集的程序运行资源使用量及确定的每种资源分量的预测函数和程序运行资源总体预测函数。
较佳地,处理器101还用于,在将采集的程序运行资源使用量分解成不同种资源分量之前,确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
较佳地,资源分量包括周期性变化的季节分量和随机性变化的随机分量;或
资源分量包括体现程序运行资源使用量的变化趋势的趋势分量和随机性变化的随机分量;或
资源分量包括体现程序运行资源使用量的变化趋势的趋势分量、周期性变化的季节分量和随机性变化的随机分量;
其中,趋势分量的预测函数为将趋势分量中包含的数据进行线性拟合或非线性拟合,得到的以预测时间为自变量的线性函数或非线性函数;
季节分量的预测函数为Si,其中,i=t mod T,t为预测时间,T为程序运行资源使用周期,Si为t对应的程序运行资源使用周期的第i个程序运行资源使用量;
随机分量的预测函数为根据随机分量中包含的数据的均值和标准差,确定的一个置信上限。
较佳地,处理器101具体用于在资源分量包括趋势分量、季节分量和随机分量时,根据以下公式确定程序运行资源总体预测函数:
Rt=(a+bt)+Si+(μ+kσ)
式中,Rt为程序运行资源总体预测函数:(a+bt)为所述趋势分量的预测函数,a和b为常数;(μ+kσ)为所述随机分量的预测函数,其中,μ为所述随机分量中包含的数据的均值,σ为所述随机分量中包含的数据的标准差,k为常数。
较佳地,处理器101具体用于:
根据确定的所述总体预测函数,预测在将来设定时间的程序运行资源使用量,和/或预测程序运行资源耗尽时的时间,和/或预测程序运行资源使用量将来达到设定阈值的时间。
如图11所示,为本发明实施例检测资源泄漏、预测资源使用情况的装置部署示意图;
在具体实施过程中,如需检测目标***的某个监控对象是否存在程序运行资源泄漏和/或预测该监控对象的程序运行资源使用情况,则可针对该监控对象部署一个本发明实施例装置,如需检测目标***的多个监控对象是否存在程序运行资源泄漏和/或预测多个监控对象的程序运行资源使用情况,则可针对每个监控对象部署一个本发明实施例的装置。
在具体实施过程中,本装置既可以在线部署,即数据采集和数据分析均在目标***进行,也可以将在线部署和离线部署结合,即仅在目标***采集程序运行资源使用量,而数据分析,即具体的判断程序运行资源泄漏和/或预测程序运行资源使用情况的过程在线下进行。
下面,以内存资源为例,详细说明本发明实施例检测资源泄漏、预测资源使用情况的装置与目标***之间的交互过程:
目标***通过本装置的配置文件设置相关参数,如一个周期内采集的内存使用量次数,泄漏检测的显著性水平,即上述实施方式中的α,随机分量的预测函数的k值,启动判断是否存在内存***存使用率或使用量阈值等等;
目标***向本装置注册获取内存使用量的钩子函数,以便本装置在运行过程中调用该函数采集目标监控对象的内存使用量;
目标***向本装置注册进行检测预测结果处理的钩子函数,以便本装置调用该函数将检测和预测结果通知给目标***,目标***根据该结果做相应处理,如通知告警、主备倒换、进程重启、操作***重启、机器重启等;
目标***通过定时任务周期性地调用本装置提供的对外接口函数,本装置的对外接口函数调用目标***注册给本装置的获取内存使用量的钩子函数采集监控对象的内存使用量,将采集到的数据存入内存中,并利用采集到的数据执行内存泄漏检测和预测内存使用情况的过程。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种判断程序运行资源泄漏的方法,其特征在于,包括:
在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;其中,在每个程序运行资源使用周期内采集程序运行资源使用量的次数相同;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,其中在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内;
根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏;
在确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值之前,还包括:
确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内;其中所述程序运行资源占用率不包括所述CPU资源占用率。
2.如权利要求1所述的方法,其特征在于,根据所述大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏,包括:
若所述大于0的差值总数与小于0的差值总数之差大于设定的阈值,则确定存在程序运行资源泄漏。
3.如权利要求1所述的方法,其特征在于,根据所述大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏,包括:
确定所述大于0的差值总数与小于0的差值总数之差的统计量Z;
若Z大于设定的阈值,则确定存在程序运行资源泄漏。
4.如权利要求3所述的方法,其特征在于,根据以下公式确定所述大于0的差值总数与小于0的差值总数之差S′的统计量Z:
若n≥10,则其中,n为程序运行资源使用周期的个数;
否则,
其中,Rik为在第k个程序运行资源使用周期内采集的第i次程序运行资源使用量;Ril为在第l个程序运行资源使用周期内采集的第i次程序运行资源使用量;m为在每个程序运行资源使用周期内采集程序运行资源使用量的次数;其中,n,i,k,m均为正整数。
5.一种判断程序运行资源泄漏的装置,其特征在于,包括:
采集模块,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,并将采集的程序运行资源使用量传输至确定模块,其中,在每个程序运行资源使用周期内采集程序运行资源使用量的次数相同;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
确定模块,用于接收所述采集模块每次采集的程序运行资源使用量,并针对任意两个程序运行资源使用周期,确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值,并将确定的各差值传输至判断模块,其中在后周期内每次采集的时间与在后周期的起始时间的时间差,和在前周期内对应次采集的时间与在前周期的起始时间的时间差在一个预设范围内;
判断模块,用于接收所述确定模块确定的各差值,并根据在确定的各差值中大于0的差值总数与小于0的差值总数之差,判断是否存在程序运行资源泄漏;
所述确定模块还用于,在确定在后周期内每次采集的程序运行资源使用量,与在前周期内对应次采集的程序运行资源使用量的差值之前,确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内;其中所述程序运行资源不包括所述CPU资源。
6.如权利要求5所述的装置,其特征在于,所述判断模块具体用于:
若所述大于0的差值总数与小于0的差值总数之差大于设定的阈值,则确定存在程序运行资源泄漏。
7.如权利要求5所述的装置,其特征在于,所述判断模块具体用于:
确定所述大于0的差值总数与小于0的差值总数之差的统计量Z;
若Z大于设定的阈值,则确定存在程序运行资源泄漏。
8.如权利要求7所述的装置,其特征在于,所述判断模块具体用于根据以下公式确定所述大于0的差值总数与小于0的差值总数之差S′的统计量Z:
若n≥10,则其中,n为程序运行资源使用周期的个数;
否则,
其中,Rik为在第k个程序运行资源使用周期内采集的第i次程序运行资源使用量;Ril为在第l个程序运行资源使用周期内采集的第i次程序运行资源使用量;m为在每个程序运行资源使用周期内采集程序运行资源使用量的次数;其中,n,i,k,m均为正整数。
9.一种预测程序运行资源使用情况的方法,其特征在于,包括:
在每个程序运行资源使用周期内采集至少一次程序运行资源使用量;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
将采集的程序运行资源使用量分解成不同种资源分量,所述不同种资源分量为根据程序运行资源的使用规律,将程序运行资源使用量分解成的具有不同变化规律的组成部分;
针对每一种资源分量中包含的数据,确定该资源分量的预测函数;
根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数;
基于确定的总体预测函数,预测程序运行资源的使用情况。
10.如权利要求9所述的方法,其特征在于,将采集的程序运行资源使用量分解成不同种资源分量之前,还包括:
确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
11.如权利要求9或10所述的方法,其特征在于,
所述资源分量包括周期性变化的季节分量和随机性变化的随机分量;其中,所述季节分量表示程序运行资源使用量具有周期性变化规律的量;或
所述资源分量包括体现程序运行资源使用量的变化趋势的趋势分量和随机性变化的随机分量;或
所述资源分量包括体现程序运行资源使用量的变化趋势的趋势分量、周期性变化的季节分量和随机性变化的随机分量;
其中,所述趋势分量的预测函数为将所述趋势分量中包含的数据进行线性拟合或非线性拟合,得到以预测时间为自变量的线性函数或非线性函数;
所述季节分量的预测函数为Si,其中,i=t mod T,t为预测时间,T为程序运行资源使用周期,Si为t对应的程序运行资源使用周期的第i个程序运行资源使用量;
所述随机分量的预测函数为根据所述随机分量中包含的数据的均值和标准差,确定的一个置信上限。
12.如权利要求11所述的方法,其特征在于,在所述资源分量包括趋势分量、季节分量和随机分量时,根据以下公式确定程序运行资源总体预测函数:
Rt=(a+bt)+Si+(μ+kσ)
式中,Rt为程序运行资源总体预测函数:(a+bt)为所述趋势分量的预测函数,a和b为常数;(μ+kσ)为所述随机分量的预测函数,其中,μ为所述随机分量中包含的数据的均值,σ为所述随机分量中包含的数据的标准差,k为常数。
13.如权利要求9所述的方法,其特征在于,基于确定的总体预测函数,预测程序运行资源的使用情况,包括:
根据确定的所述总体预测函数,预测在将来设定时间的程序运行资源使用量,和/或预测程序运行资源耗尽时的时间,和/或预测程序运行资源使用量将来达到设定阈值的时间。
14.一种预测程序运行资源使用情况的装置,其特征在于,包括:
采集模块,用于在每个程序运行资源使用周期内采集至少一次程序运行资源使用量,并将采集到的程序运行资源使用量传输至分解模块;所述程序运行资源使用周期为根据程序运行资源使用量的周期性规律设定的周期;
分解模块,用于接收所述采集模块采集的程序运行资源使用量,并将采集的程序运行资源使用量分解成不同种资源分量,将每种资源分量中包含的数据传输至确定模块,所述不同种资源分量为根据程序运行资源的使用规律,将程序运行资源分解成的具有不同变化规律的组成部分;
确定模块,用于接收所述分解模块分解得到的每种资源分量中包含的数据,针对每一种资源分量中包含的数据,确定该资源分量的预测函数,并根据确定的每种资源分量的预测函数确定程序运行资源总体预测函数,将确定的总体预测函数传输至预测模块;
预测模块,用于接收所述确定模块确定的总体预测函数,并基于所述总体预测函数,预测程序运行资源的使用情况。
15.如权利要求14所述的装置,其特征在于,所述确定模块还用于,在所述分解模块将采集的程序运行资源使用量分解成不同种资源分量之前,确定采集的程序运行资源使用量总周期数或总次数不小于设定的阈值,和/或当前程序运行资源占用率不小于设定的阈值,和/或当前中央处理器CPU占用率小于设定的阈值,和/或当前时间在设定的时间范围内。
16.如权利要求14或15所述的装置,其特征在于,
所述分解模块分解后的资源分量包括周期性变化的季节分量和随机性变化的随机分量;其中,所述季节分量表示程序运行资源使用量具有周期性变化规律的量;或
所述分解模块分解后的资源分量包括体现程序运行资源使用量的变化趋势的趋势分量和随机性变化的随机分量;或
所述分解模块分解后的资源分量包括体现程序运行资源使用量的变化趋势的趋势分量、周期性变化的季节分量和随机性变化的随机分量;
其中,所述趋势分量的预测函数为将所述趋势分量中包含的数据进行线性拟合或非线性拟合,得到以预测时间为自变量的线性函数或非线性函数;
所述季节分量的预测函数为Si,其中,i=t mod T,t为预测时间,T为程序运行资源使用周期,Si为t对应的程序运行资源使用周期的第i个程序运行资源使用量;
所述随机分量的预测函数为根据所述随机分量中包含的数据的均值和标准差,确定的一个置信上限。
17.如权利要求16所述的装置,其特征在于,所述确定模块具体用于在所述分解模块分解的资源分量包括趋势分量、季节分量和随机分量时,根据以下公式确定程序运行资源总体预测函数:
Rt=(a+bt)+Si+(μ+kσ)
式中,Rt为程序运行资源总体预测函数:(a+bt)为所述趋势分量的预测函数,a和b为常数;(μ+kσ)为所述随机分量的预测函数,其中,μ为所述随机分量中包含的数据的均值,σ为所述随机分量中包含的数据的标准差,k为常数。
18.如权利要求14所述的装置,其特征在于,所述预测模块具体用于:
根据确定的所述总体预测函数,预测在将来设定时间的程序运行资源使用量,和/或预测程序运行资源耗尽时的时间,和/或预测程序运行资源使用量将来达到设定阈值的时间。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310190659.3A CN104182332B (zh) | 2013-05-21 | 2013-05-21 | 判断资源泄漏、预测资源使用情况的方法及装置 |
EP14801434.3A EP2911060B1 (en) | 2013-05-21 | 2014-06-19 | Method and device for determining resource leakage and for predicting resource usage state |
PCT/CN2014/080271 WO2014187431A1 (zh) | 2013-05-21 | 2014-06-19 | 判断资源泄漏、预测资源使用情况的方法及装置 |
US14/922,595 US9846601B2 (en) | 2013-05-21 | 2015-10-26 | Method and apparatuses for determining a leak of resource and predicting usage of resource |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310190659.3A CN104182332B (zh) | 2013-05-21 | 2013-05-21 | 判断资源泄漏、预测资源使用情况的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104182332A CN104182332A (zh) | 2014-12-03 |
CN104182332B true CN104182332B (zh) | 2017-09-29 |
Family
ID=51932975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310190659.3A Expired - Fee Related CN104182332B (zh) | 2013-05-21 | 2013-05-21 | 判断资源泄漏、预测资源使用情况的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9846601B2 (zh) |
EP (1) | EP2911060B1 (zh) |
CN (1) | CN104182332B (zh) |
WO (1) | WO2014187431A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9330119B2 (en) | 2013-04-11 | 2016-05-03 | Oracle International Corporation | Knowledge intensive data management system for business process and case management |
US9785719B2 (en) * | 2014-07-15 | 2017-10-10 | Adobe Systems Incorporated | Generating synthetic data |
CN106708605B (zh) * | 2015-07-14 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 一种检测资源泄漏的方法及装置 |
EP3726385B1 (en) | 2015-11-02 | 2022-04-20 | Apple Inc. | Restoring virtual network function (vnf) performance via vnf reset of lifecycle management |
US10289347B2 (en) | 2016-04-26 | 2019-05-14 | Servicenow, Inc. | Detection and remediation of memory leaks |
US11327797B2 (en) * | 2016-05-09 | 2022-05-10 | Oracle International Corporation | Memory usage determination techniques |
CN109564535B (zh) * | 2016-07-29 | 2022-05-27 | 微软技术许可有限责任公司 | 云计算架构中的计算资源泄漏的检测 |
CN107179950B (zh) * | 2017-06-29 | 2020-10-27 | 努比亚技术有限公司 | 一种应用进程处理方法、移动终端以及计算机可读存储介质 |
CN107957950B (zh) * | 2017-12-08 | 2020-08-25 | 锐捷网络股份有限公司 | 一种***资源泄露的检测方法和装置 |
US11036608B2 (en) * | 2019-09-27 | 2021-06-15 | Appnomic Systems Private Limited | Identifying differences in resource usage across different versions of a software application |
CN111078537B (zh) * | 2019-11-29 | 2023-09-22 | 珠海金山数字网络科技有限公司 | Unity游戏bundle包资源划分的评估方法 |
US11269748B2 (en) * | 2020-04-22 | 2022-03-08 | Microsoft Technology Licensing, Llc | Diagnosing and mitigating memory leak in computing nodes |
WO2022018466A1 (en) * | 2020-07-22 | 2022-01-27 | Citrix Systems, Inc. | Determining server utilization using upper bound values |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599048A (zh) * | 2009-07-01 | 2009-12-09 | 福建星网锐捷网络有限公司 | 一种内存监控的方法和装置 |
CN102200943A (zh) * | 2010-03-25 | 2011-09-28 | 腾讯科技(深圳)有限公司 | 一种基于后台自动检测cpu使用率的方法和设备 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691067B1 (en) * | 1999-04-07 | 2004-02-10 | Bmc Software, Inc. | Enterprise management system and method which includes statistical recreation of system resource usage for more accurate monitoring, prediction, and performance workload characterization |
US6993458B1 (en) * | 2000-11-07 | 2006-01-31 | International Business Machines Corporation | Method and apparatus for preprocessing technique for forecasting in capacity management, software rejuvenation and dynamic resource allocation applications |
US6810495B2 (en) | 2001-03-30 | 2004-10-26 | International Business Machines Corporation | Method and system for software rejuvenation via flexible resource exhaustion prediction |
EP1468361A1 (en) * | 2001-12-19 | 2004-10-20 | Netuitive Inc. | Method and system for analyzing and predicting the behavior of systems |
US7577943B2 (en) * | 2003-10-24 | 2009-08-18 | Microsoft Corporation | Statistical memory leak detection |
US7293142B1 (en) * | 2004-04-19 | 2007-11-06 | Cisco Technology, Inc. | Memory leak detection system and method using contingency analysis |
US7487321B2 (en) * | 2004-04-19 | 2009-02-03 | Cisco Technology, Inc. | Method and system for memory leak detection |
CN100349129C (zh) * | 2004-10-27 | 2007-11-14 | 中兴通讯股份有限公司 | 一种计算机***处理资源监视与预警方法 |
CN100345457C (zh) * | 2004-11-08 | 2007-10-24 | 华为技术有限公司 | 基站***中防止内部资源泄露的方法 |
US7908606B2 (en) * | 2005-05-20 | 2011-03-15 | Unisys Corporation | Usage metering system |
US7765528B2 (en) * | 2005-09-21 | 2010-07-27 | Hewlett-Packard Development Company, L.P. | Identifying sources of memory retention |
US20070136402A1 (en) * | 2005-11-30 | 2007-06-14 | International Business Machines Corporation | Automatic prediction of future out of memory exceptions in a garbage collected virtual machine |
US8312062B1 (en) * | 2006-03-29 | 2012-11-13 | Emc Corporation | Automatic resource leak detection |
US8793289B2 (en) * | 2006-04-28 | 2014-07-29 | Sap Ag | Method and system for detecting memory leaks and copying garbage collection files |
US7774741B2 (en) * | 2006-05-22 | 2010-08-10 | Microsoft Corporation | Automatically resource leak diagnosis and detecting process within the operating system |
US7730364B2 (en) * | 2007-04-05 | 2010-06-01 | International Business Machines Corporation | Systems and methods for predictive failure management |
US7793161B2 (en) * | 2007-05-29 | 2010-09-07 | International Business Machines Corporation | Method and apparatus to anticipate memory exhaustion in an open services gateway initiative environment |
CN101539870A (zh) | 2008-03-21 | 2009-09-23 | 中兴通讯股份有限公司 | 内存泄漏检测装置及方法 |
CN101615143B (zh) | 2008-06-27 | 2013-04-17 | 国际商业机器公司 | 用于内存泄漏诊断的方法和装置 |
JP2010072854A (ja) * | 2008-09-17 | 2010-04-02 | Canon Inc | 情報処理装置の支援装置、支援方法、およびコンピュータプログラム |
US9064048B2 (en) * | 2011-02-17 | 2015-06-23 | Red Hat, Inc. | Memory leak detection |
CN103460194B (zh) * | 2011-03-15 | 2016-12-21 | 爱立信(中国)通信有限公司 | 对资源泄漏的检测 |
US20120266026A1 (en) * | 2011-04-18 | 2012-10-18 | Ramya Malanai Chikkalingaiah | Detecting and diagnosing misbehaving applications in virtualized computing systems |
US9104563B2 (en) * | 2012-02-09 | 2015-08-11 | Microsoft Technology Licensing, Llc | Self-tuning statistical resource leak detection |
-
2013
- 2013-05-21 CN CN201310190659.3A patent/CN104182332B/zh not_active Expired - Fee Related
-
2014
- 2014-06-19 EP EP14801434.3A patent/EP2911060B1/en not_active Not-in-force
- 2014-06-19 WO PCT/CN2014/080271 patent/WO2014187431A1/zh active Application Filing
-
2015
- 2015-10-26 US US14/922,595 patent/US9846601B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599048A (zh) * | 2009-07-01 | 2009-12-09 | 福建星网锐捷网络有限公司 | 一种内存监控的方法和装置 |
CN102200943A (zh) * | 2010-03-25 | 2011-09-28 | 腾讯科技(深圳)有限公司 | 一种基于后台自动检测cpu使用率的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2014187431A1 (zh) | 2014-11-27 |
EP2911060A4 (en) | 2016-06-08 |
US9846601B2 (en) | 2017-12-19 |
US20160041848A1 (en) | 2016-02-11 |
EP2911060A1 (en) | 2015-08-26 |
CN104182332A (zh) | 2014-12-03 |
EP2911060B1 (en) | 2018-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104182332B (zh) | 判断资源泄漏、预测资源使用情况的方法及装置 | |
CN107924360B (zh) | 计算***中的诊断框架 | |
US20180307551A1 (en) | Log Events for Root Cause Error Diagnosis | |
KR101577878B1 (ko) | 분산 환경들에서 신뢰도의 개선 | |
CN103106134B (zh) | 一种性能缺陷检测方法、装置和*** | |
CN103139007A (zh) | 应用服务器性能检测方法及*** | |
JPWO2013042789A1 (ja) | 運用管理装置、運用管理方法、及びプログラム | |
CN109976975B (zh) | 一种磁盘容量预测方法、装置、电子设备及存储介质 | |
EP3163897B1 (en) | Building management device, wide-area management system, data acquisition method, and program | |
CN112434308B (zh) | 应用漏洞检测方法、装置、电子设备及计算机存储介质 | |
CN112702184A (zh) | 故障预警方法及装置、计算机可存储介质 | |
CN105589772A (zh) | 检测fpga芯片逻辑挂死的方法和装置 | |
US10942832B2 (en) | Real time telemetry monitoring tool | |
CN116413604A (zh) | 一种电池参数监测方法、***、装置及存储介质 | |
CN112231187A (zh) | 微服务异常分析方法及装置 | |
JPWO2014141660A1 (ja) | システム分析装置、及び、システム分析方法 | |
CN111897706A (zh) | 服务器性能预测方法、装置、计算机***和介质 | |
US9645873B2 (en) | Integrated configuration management and monitoring for computer systems | |
CN115375039A (zh) | 一种工业设备故障预测方法、装置、电子设备及存储介质 | |
CN114239538A (zh) | 断言处理方法、装置、计算机设备及存储介质 | |
Zhao et al. | Software maintenance optimization based on Stackelberg game methods | |
CN115442310B (zh) | 基于物联网卡的应用程序流量消耗级别划分方法及装置 | |
CN116340102B (zh) | 一种内存溢出监测方法、装置、设备及存储介质 | |
CN115269327A (zh) | 一种集群检测方法及装置 | |
CN118035025A (zh) | 一种内存处理的方法以及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170929 |
|
CF01 | Termination of patent right due to non-payment of annual fee |