一种针对内存溢出的容灾止血方法、装置以及设备制造方法及图纸

技术编号:37719761 阅读:11 留言:0更新日期:2023-06-02 00:18
本说明书实施例公开了一种针对内存溢出的容灾止血方法、装置以及设备。方案包括:基于运行程序的启动节点,对运行程序的第一运行内存数据进行监听;获取运行程序所依托的运行环境的第二运行内存数据,并在运行程序的运行过程中,对第二运行内存数据进行监听;若第二运行内存数据对应的内存水位级别,达到预先定义的内存溢出临界状态,则通过运行程序调用对应的动态容灾能力;通过动态容灾能力,根据第一运行内存数据、第二运行内存数据,在运行程序中采用对应的引导策略,以对运行环境进行容灾止血。止血。止血。

【技术实现步骤摘要】
一种针对内存溢出的容灾止血方法、装置以及设备


[0001]本说明书涉及互联网
,尤其涉及一种针对内存溢出的容灾止血方法、装置以及设备。

技术介绍

[0002]随着计算机和互联网技术的发展,各类程序和系统包含的功能也越来越多,与此同时的,对于内存的需求也越来越高。
[0003]在运行过程中,若出现无法回收的内存或使用的内存过多,则容易导致程序运行所需的内存高于系统能提供的最大内存,该程序就难以继续运行,此时,将该种情况称作内存溢出(Out Of Memory,OOM)。内存溢出的后果可能会包括该程序崩溃关闭、自动重启,在一些场景下甚至会导致其他程序或操作系统的崩溃或重启。
[0004]传统的方案中,可以采用以下的方案解决内存溢出的问题:
[0005]1、基于埋点统计上报方案,在客户端代码上捕获闪退异常信息,并上报到后端系统,通过对异常堆栈和内存信息的分析,判断是否发生OOM。
[0006]2、基于自动化检测方案,开发内存检测和内存分析工具,通过线下模拟真实业务操作进行自动化测试,分析业务代码中不合理的内存使用方法并做逻辑优化。
[0007]基于此,需要能够对内存溢出进行实时监测的同时,进行容灾止血的方案。

技术实现思路

[0008]本说明书一个或多个实施例提供一种针对内存溢出的容灾止血方法、装置、设备以及存储介质,用以解决如下技术问题:需要能够对内存溢出进行实时监测的同时,进行容灾止血的方案。
[0009]为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
[0010]本说明书一个或多个实施例提供的一种针对内存溢出的容灾止血方法,包括:
[0011]基于运行程序的启动节点,对所述运行程序的第一运行内存数据进行监听;
[0012]获取所述运行程序所依托的运行环境的第二运行内存数据,并在所述运行程序的运行过程中,对所述第二运行内存数据进行监听;
[0013]若所述第二运行内存数据对应的内存水位级别,达到预先定义的内存溢出临界状态,则通过所述运行程序调用对应的动态容灾能力;
[0014]通过所述动态容灾能力,根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血。
[0015]本说明书一个或多个实施例提供的一种针对内存溢出的容灾止血装置,包括:
[0016]第一监听模块,基于运行程序的启动节点,对所述运行程序的第一运行内存数据进行监听;
[0017]第二监听模块,获取所述运行程序所依托的运行环境的第二运行内存数据,并在所述运行程序的运行过程中,对所述第二运行内存数据进行监听;
[0018]动态容灾模块,若所述第二运行内存数据对应的内存水位级别,达到预先定义的内存溢出临界状态,则通过所述运行程序调用对应的动态容灾能力;
[0019]引导模块,通过所述动态容灾能力,根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血。
[0020]本说明书一个或多个实施例提供的一种针对内存溢出的容灾止血设备,包括:
[0021]至少一个处理器;以及,
[0022]与所述至少一个处理器通信连接的存储器;其中,
[0023]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
[0024]基于运行程序的启动节点,对所述运行程序的第一运行内存数据进行监听;
[0025]获取所述运行程序所依托的运行环境的第二运行内存数据,并在所述运行程序的运行过程中,对所述第二运行内存数据进行监听;
[0026]若所述第二运行内存数据对应的内存水位级别,达到预先定义的内存溢出临界状态,则通过所述运行程序调用对应的动态容灾能力;
[0027]通过所述动态容灾能力,根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血。
[0028]本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
[0029]基于运行程序的启动节点,对所述运行程序的第一运行内存数据进行监听;
[0030]获取所述运行程序所依托的运行环境的第二运行内存数据,并在所述运行程序的运行过程中,对所述第二运行内存数据进行监听;
[0031]若所述第二运行内存数据对应的内存水位级别,达到预先定义的内存溢出临界状态,则通过所述运行程序调用对应的动态容灾能力;
[0032]通过所述动态容灾能力,根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血。
[0033]本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0034]通过对第一运行内存数据、第二运行内存数据的监听,能够在其达到内存溢出临界状态时,调用动态容灾能力实现快速容灾止血,防止内存溢出的产生。相比于传统方案中对内存溢出的线下预防或者线下修补,本方案能够在线上实时对内存溢出状态进行实时监控处理,有效防止内存溢出造成的程序闪退问题。
[0035]本方案不依赖业务的具体实现方案,对业务方而言无代码入侵,适用于几乎所有运行程序,保证了运行程序的线上可用性。
[0036]动态容灾能力中预先设置多个引导策略,能够针对当前的状态选取适配的引导策略,来引导用户处理当前的内存溢出临界状态,从而与运行内存的线上实时监控相结合,实现对内存溢出的实时线上处理,保障用户的使用体验。
附图说明
[0037]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或
现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为本说明书一个或多个实施例提供的一种针对内存溢出的容灾止血方法的流程示意图;
[0039]图2为本说明书一个或多个实施例提供的,一种应用场景下的内存影响等级与用户体感等级的关系示意图;
[0040]图3为本说明书一个或多个实施例提供的,一种应用场景下的小程序对应的引导策略示意图;
[0041]图4a~图4c分别为本说明书一个或多个实施例提供的,一种应用场景下的三种引导策略分别对应的兜底页面的示意图;
[0042]图5为本说明书一个或多个实施例提供的,一种应用场景下的针对内存溢出的容灾止血方法的函数流程示意图;
[0043]图6为本说明书一个或多个实施例提供的一种针对内存溢出的容灾止血装置的结构示意图;
[0044]图7为本说明书一个或多个实施例提供的一种针对内存溢出的容灾止血设备的结构示意图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对内存溢出的容灾止血方法,包括:基于运行程序的启动节点,对所述运行程序的第一运行内存数据进行监听;获取所述运行程序所依托的运行环境的第二运行内存数据,并在所述运行程序的运行过程中,对所述第二运行内存数据进行监听;若所述第二运行内存数据对应的内存水位级别,达到预先定义的内存溢出临界状态,则通过所述运行程序调用对应的动态容灾能力;通过所述动态容灾能力,根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血。2.如权利要求1所述的方法,所述根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血,具体包括:根据所述第一运行内存数据,确定所述运行程序的初始运行内存数据,并根据所述第二运行内存数据,确定所述运行环境对应的内存消耗数据;根据所述初始运行内存数据与所述内存消耗数据之间的相对关系,在预设的多种引导策略中,选取对应的引导策略;在所述运行程序中采用所述对应的引导策略,对所述运行环境进行容灾止血。3.如权利要求2所述的方法,所述根据所述初始运行内存数据与所述内存消耗数据之间的相对关系,在预设的多种引导策略中,选取对应的引导策略,具体包括:根据所述初始运行内存数据、所述内存消耗数据分别对应的数值,确定所述运行程序对所述运行环境的内存影响等级;根据所述内存影响等级,在预设的多种引导策略中,选取匹配的引导策略。4.如权利要求3所述的方法,将所述内存影响等级按照从低到高的次序,划分为多个区间,在每个区间内部包含至少一个引导策略;针对指定区间内部包含的引导策略,内存影响等级与该引导策略对应的用户体感等级呈相关,所述指定区间指的是包含多个引导策略的区间;并且,所述区间的次序次序靠前的区间内包含的引导策略的用户体感等级,高于次序靠后的区间内包含的引导策略的用户体感等级。5.如权利要求2所述的方法,所述在所述运行程序中采用所述对应的引导策略,对所述运行环境进行容灾止血,具体包括:通过所述运行环境对应的框架,对所述运行程序中的执行业务进行拦截,并展示兜底页面;在所述兜底页面中,根据所述引导策略向用户展示对应的引导内容,以引导所述用户执行相应的操作,从而实现对所述运行环境的容灾止血。6.如权利要求5所述的方法,所述在所述兜底页面中,根据所述引导策略向用户展示对应的引导内容,具体包括:若选取的引导策略,为针对所述运行环境的引导策略,则确定所述运行环境中,除所述运行程序外,当前或近期处于运行状态的其他程序,所述近期为距当前时刻的预设时长内;若所述其他程序与已拦截的所述执行业务之间,存在业务关联,则在所述兜底页面中,向用户展示包含选取的引导策略在内的多个引导策略对应的引导内容,并对选取的引导策略对应的引导内容进行渲染。
7.如权利要求6所述的方法,所述通过所述运行环境对应的框架,对所述运行程序中的执行业务进行拦截之前,所述方法还包括:对所述运行程序的当前状态进行截图,并将截图得到的第一图像保留至本地图库中;所述若所述其他程序与已拦截的所述执行业务之间,存在业务关联之后,所述方法还包括:对所述其他程序在当前时刻的状态进行截图,并将截图得到的第二图像保留至本地图库中。8.如权利要求1所述的方法,所述根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血,具体包括:根据所述第一运行内存数据、所述第二运行内存数据,确定所述运行程序在运行过程中,所述运行程序、所述运行环境的运行内存分别对应的第一内存增量、第二内存增量;根据所述第一内存增量在所述第二内存增量中的占比,确定所述运行程序对所述运行环境的内存影响等级;根据所述内存影响等级,在预设的多种引导策略中,选取匹配的引导策略,并在所述运行程序中采用所述对应的引导策略,对所述运行环境进行容灾止血。9.如权利要求8所述的方法,所述根据所述第一运行内存数据、所述第二运行内存数据,确定所述运行程序在运行过程中,所述运行程序、所述运行环境的运行内存分别对应的第一内存增量、第二内存增量之前,所述方法还包括:对所述运行程序执行自动策略,以对所述运行环境进行初步容灾止血,所述自动策略的用户体感等级低于所述引导策略的用户体感等级。10.如权利要求1~9中任一项所述的方法,所述运行程序包括小程序,所述运行环境包括所述小程序所在的客户端,所述引导策略引导用户对所述小程序和/或所述客户端执行相应操作,所述相应操作包括刷新、重启。11.一种针对内存溢出的容灾止血装置,包括:第一监听模块,基于运行程序的启动节点,对所述运行程序的第一运行内存数据进行监听;第二监听模...

【专利技术属性】
技术研发人员:叶思水袁帅
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1