System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于KNN的内存泄漏检测方法、设备及介质技术_技高网

一种基于KNN的内存泄漏检测方法、设备及介质技术

技术编号:43961388 阅读:4 留言:0更新日期:2025-01-07 21:45
本发明专利技术公开了一种基于KNN的内存泄漏检测方法、设备及介质,属于智能运维技术领域,用以解决现有的内存异常检测算法主要面向资源瓶颈、容量不足等通用的内存故障,对于内存泄漏故障识别不够精准、故障识别滞后的技术问题。方法包括:获取目标系统在预设时间段的内存监控指标数据集合;基于内存监控指标数据集合中的任一数据点与其他数据点之间的距离,确定任一数据点是否为异常点;若内存监控指标数据集合中异常点的数量超过预设数量阈值,则确定目标系统存在内存泄漏故障。本发明专利技术通过上述方法实现了对于内存泄漏这一类特定故障场景的针对性故障检测,能够在目标系统存在内存泄露故障时,精准、及时地检测出目标系统存在内存泄露这一故障。

【技术实现步骤摘要】

本专利技术涉及智能运维,尤其涉及一种基于knn的内存泄漏检测方法、设备及介质。


技术介绍

1、内存泄漏指程序中已经不再需要使用的内存没有被释放,从而造成内存资源浪费和程序性能下降。在计算机系统中,内存泄漏是一个常见且影响深远的问题。内存泄漏会导致系统内存占用不断增加,最终可能导致系统内存瓶颈、内存溢出等问题,最终导致系统崩溃。因此,及时检测和解决内存泄漏问题对于提高系统的稳定性和可靠性至关重要。

2、现有的内存异常检测算法主要面向资源瓶颈、容量不足(cpu100%、磁盘100%)等通用的、共性的故障,对于内存泄露这一特定场景并没有针对性的故障检测方案,在发生内存泄露故障时不能及时给出该故障对应的告警,也就是说,现有的内存异常检测算法对于内存泄漏故障识别不够精准、故障识别滞后。


技术实现思路

1、本专利技术提供了一种基于knn的内存泄漏检测方法、设备及介质,用以解决现有的内存异常检测算法主要面向资源瓶颈、容量不足等通用的内存故障,对于内存泄漏故障识别不够精准、故障识别滞后的技术问题。

2、第一方面,本专利技术提供了一种基于knn的内存泄漏检测方法,包括:

3、获取目标系统在预设时间段的内存监控指标数据集合;

4、基于所述内存监控指标数据集合中的任一数据点与其他数据点之间的距离,确定所述任一数据点是否为异常点;

5、若所述内存监控指标数据集合中异常点的数量超过预设数量阈值,则确定所述目标系统存在内存泄漏故障。

6、在一种可行的实施方式中,所述目标系统包括jvm应用程序、redis应用程序和.net应用程序中的至少一种,获取目标系统在预设时间段的内存监控指标数据集合,包括:

7、在所述目标系统为jvm应用程序时,获取所述目标系统在预设时间内的已使用的内存、已提交的内存、fullgc时老年代内存中的至少一种;

8、在所述目标系统为redis应用程序时,获取所述目标系统在预设时间段内的redis内部使用的内存量、redis进程内存占用量中的至少一种;

9、在所述目标系统为.net应用程序时,获取所述目标系统中进程占用总内存、gen1代内存占用量、gen2代内存占用量中的至少一种。

10、在一种可行的实施方式中,在获取目标系统在预设时间段的内存监控指标数据集合之后,所述方法还包括:

11、基于公式对所述内存监控指标数据集合中的任一数据点进行归一化处理,其中,x是经过所述归一化处理前的数据,xnorm是经过所述归一化处理后的数据,min(x)为所述内存监控数据集合中的最小值,max(x)为所述内存监控数据集合中的最大值。

12、在一种可行的实施方式中,基于所述内存监控指标数据集合中的任一数据点与其他数据点之间的距离,确定所述任一数据点是否为异常点,包括:

13、基于所述任一数据点与其他数据点之间的距离,在所述内存监控指标数据集合中,确定出所述任一数据点的k个近邻点;

14、计算所述任一数据点与所述k个近邻点的距离的和;

15、将所述距离的和与k的比值确定为所述任一数据点的目标距离;

16、基于所述任一数据点的目标距离,确定初始距离阈值;

17、若所述任一数据点的目标距离超过所述初始距离阈值,则将所述任一数据点确定为异常点。

18、在一种可行的实施方式中,基于所述任一数据点与其他数据点之间的距离,在所述内存监控指标数据集合中,确定出所述任一数据点的k个近邻点,包括:

19、确定所述任一数据点与其他数据点之间的距离;

20、将与所述任一数据点之间的距离最小的前k个其他数据点,确定为所述任一数据点的k个近邻点。

21、在一种可行的实施方式中,确定所述任一数据点与其他数据点之间的距离,包括:

22、根据公式确定所述任一数据点与其他数据点之间的距离,其中,xi和xj表示两个数据点,d(xi,xj)表示数据点xi和数据点xj之间的距离,n表示数据点的维度,xik和xjk分别表示数据点xi和xj在第k个维度上的值。

23、在一种可行的实施方式中,基于所述任一数据点的目标距离,确定初始距离阈值,包括:

24、计算所述内存监控指标数据集合中所有数据点的目标距离的和;

25、将所述目标距离的和与所述内存监控指标数据集合中数据点的数量之间的比值,确定为距离均值;

26、基于公式和公式确定距离标准差,其中,σ为距离标准差,υ为距离方差,μ为所述距离均值,di为所述任一数据点的目标距离,n为所述内存监控指标数据集合中数据点的数量;

27、基于所述距离均值和所述距离标准差,确定初始距离阈值。

28、在一种可行的实施方式中,在确定所述目标系统存在内存泄漏故障之后,所述方法还包括:

29、触发内存泄漏故障对应的处置动作,所述处置动作包括内存调试、抓取内存快照、服务重启和流量限制中的至少一种。

30、第二方面,本专利技术提供了一种基于knn的内存泄漏检测设备,所述设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能够被所述至少一个处理器执行的指令,以使所述至少一个处理器能够执行上述任一实施方式所述的一种基于knn的内存泄漏检测方法。

31、第三方面,本专利技术提供了一种非易失性计算机存储介质,所述存储介质为非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有至少一个程序,每个所述程序包括指令,所述指令当被终端执行时,使所述终端执行上述任一实施方式所述的一种基于knn的内存泄漏检测方法。

32、本专利技术提供的一种基于knn的内存泄漏检测方法、设备及介质,与现有技术相比,具有以下有益的技术效果:

33、(1)本专利技术在获取目标系统在预设时间段的内存监控指标数据集合后,根据内存监控指标集合中的任一数据点与其他数据点之间的距离,确定该数据点是否为异常点,当异常点的数量超过预设数量阈值时,确定目标系统存在内存泄漏故障。本专利技术提供了一种对于内存泄漏这一类特定故障场景的针对性故障检测方法,能够在目标系统存在内存泄露故障时,精准、及时地检测出目标系统存在内存泄露这一故障,提高系统的稳定性和可靠性。

34、(2)本专利技术提供的对于内存泄漏这一类特定故障场景的针对性故障检测方法,具有通用性,可以适用于多种类型的目标系统,例如,jvm应用程序、redis应用程序和.net应用程序。对于不同类型的目标系统,获取对应的内存监控指标数据集合即可。

35、(3)本专利技术在确定目标系统存在内存泄漏故障后,触发对应的处置动作,有助于实现对内存泄露故障的快速故障处理。

本文档来自技高网...

【技术保护点】

1.一种基于KNN的内存泄漏检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于KNN的内存泄漏检测方法,其特征在于,所述目标系统包括JVM应用程序、Redis应用程序和.NET应用程序中的至少一种,获取目标系统在预设时间段的内存监控指标数据集合,包括:

3.根据权利要求1所述的一种基于KNN的内存泄漏检测方法,其特征在于,在获取目标系统在预设时间段的内存监控指标数据集合之后,所述方法还包括:

4.根据权利要求1所述的一种基于KNN的内存泄漏检测方法,其特征在于,基于所述内存监控指标数据集合中的任一数据点与其他数据点之间的距离,确定所述任一数据点是否为异常点,包括:

5.根据权利要求4所述的一种基于KNN的内存泄漏检测方法,其特征在于,基于所述任一数据点与其他数据点之间的距离,在所述内存监控指标数据集合中,确定出所述任一数据点的K个近邻点,包括:

6.根据权利要求5所述的一种基于KNN的内存泄漏检测方法,其特征在于,确定所述任一数据点与其他数据点之间的距离,包括:

7.根据权利要求4所述的一种基于KNN的内存泄漏检测方法,其特征在于,基于所述任一数据点的目标距离,确定初始距离阈值,包括:

8.根据权利要求1所述的一种基于KNN的内存泄漏检测方法,其特征在于,在确定所述目标系统存在内存泄漏故障之后,所述方法还包括:

9.一种基于KNN的内存泄漏检测设备,其特征在于,所述设备包括:

10.一种非易失性计算机存储介质,其特征在于,所述存储介质为非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有至少一个程序,每个所述程序包括指令,所述指令当被终端执行时,使所述终端执行根据权利要求1-8中任一项所述的一种基于KNN的内存泄漏检测方法。

...

【技术特征摘要】

1.一种基于knn的内存泄漏检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于knn的内存泄漏检测方法,其特征在于,所述目标系统包括jvm应用程序、redis应用程序和.net应用程序中的至少一种,获取目标系统在预设时间段的内存监控指标数据集合,包括:

3.根据权利要求1所述的一种基于knn的内存泄漏检测方法,其特征在于,在获取目标系统在预设时间段的内存监控指标数据集合之后,所述方法还包括:

4.根据权利要求1所述的一种基于knn的内存泄漏检测方法,其特征在于,基于所述内存监控指标数据集合中的任一数据点与其他数据点之间的距离,确定所述任一数据点是否为异常点,包括:

5.根据权利要求4所述的一种基于knn的内存泄漏检测方法,其特征在于,基于所述任一数据点与其他数据点之间的距离,在所述内存监控指标数据集合中,确定出所述任...

【专利技术属性】
技术研发人员:王永辉仪思奇周祥国刘建华张文斌乔春祥徐伟康
申请(专利权)人:浪潮通用软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1