【技术实现步骤摘要】
一种针对内存溢出的容灾止血方法、装置以及设备
[0001]本说明书涉及互联网
,尤其涉及一种针对内存溢出的容灾止血方法、装置以及设备。
技术介绍
[0002]随着计算机和互联网技术的发展,各类程序和系统包含的功能也越来越多,与此同时的,对于内存的需求也越来越高。
[0003]在运行过程中,若出现无法回收的内存或使用的内存过多,则容易导致程序运行所需的内存高于系统能提供的最大内存,该程序就难以继续运行,此时,将该种情况称作内存溢出(Out Of Memory,OOM)。内存溢出的后果可能会包括该程序崩溃关闭、自动重启,在一些场景下甚至会导致其他程序或操作系统的崩溃或重启。
[0004]传统的方案中,可以采用以下的方案解决内存溢出的问题:
[0005]1、基于埋点统计上报方案,在客户端代码上捕获闪退异常信息,并上报到后端系统,通过对异常堆栈和内存信息的分析,判断是否发生OOM。
[0006]2、基于自动化检测方案,开发内存检测和内存分析工具,通过线下模拟真实业务操作进行自动化测试,分析业务代码中不合理的内存使用方法并做逻辑优化。
[0007]基于此,需要能够对内存溢出进行实时监测的同时,进行容灾止血的方案。
技术实现思路
[0008]本说明书一个或多个实施例提供一种针对内存溢出的容灾止血方法、装置、设备以及存储介质,用以解决如下技术问题:需要能够对内存溢出进行实时监测的同时,进行容灾止血的方案。
[0009]为解决上述技术问题,本说明书一个或多个实施例 ...
【技术保护点】
【技术特征摘要】
1.一种针对内存溢出的容灾止血方法,包括:基于运行程序的启动节点,对所述运行程序的第一运行内存数据进行监听;获取所述运行程序所依托的运行环境的第二运行内存数据,并在所述运行程序的运行过程中,对所述第二运行内存数据进行监听;若所述第二运行内存数据对应的内存水位级别,达到预先定义的内存溢出临界状态,则通过所述运行程序调用对应的动态容灾能力;通过所述动态容灾能力,根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血。2.如权利要求1所述的方法,所述根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血,具体包括:根据所述第一运行内存数据,确定所述运行程序的初始运行内存数据,并根据所述第二运行内存数据,确定所述运行环境对应的内存消耗数据;根据所述初始运行内存数据与所述内存消耗数据之间的相对关系,在预设的多种引导策略中,选取对应的引导策略;在所述运行程序中采用所述对应的引导策略,对所述运行环境进行容灾止血。3.如权利要求2所述的方法,所述根据所述初始运行内存数据与所述内存消耗数据之间的相对关系,在预设的多种引导策略中,选取对应的引导策略,具体包括:根据所述初始运行内存数据、所述内存消耗数据分别对应的数值,确定所述运行程序对所述运行环境的内存影响等级;根据所述内存影响等级,在预设的多种引导策略中,选取匹配的引导策略。4.如权利要求3所述的方法,将所述内存影响等级按照从低到高的次序,划分为多个区间,在每个区间内部包含至少一个引导策略;针对指定区间内部包含的引导策略,内存影响等级与该引导策略对应的用户体感等级呈相关,所述指定区间指的是包含多个引导策略的区间;并且,所述区间的次序次序靠前的区间内包含的引导策略的用户体感等级,高于次序靠后的区间内包含的引导策略的用户体感等级。5.如权利要求2所述的方法,所述在所述运行程序中采用所述对应的引导策略,对所述运行环境进行容灾止血,具体包括:通过所述运行环境对应的框架,对所述运行程序中的执行业务进行拦截,并展示兜底页面;在所述兜底页面中,根据所述引导策略向用户展示对应的引导内容,以引导所述用户执行相应的操作,从而实现对所述运行环境的容灾止血。6.如权利要求5所述的方法,所述在所述兜底页面中,根据所述引导策略向用户展示对应的引导内容,具体包括:若选取的引导策略,为针对所述运行环境的引导策略,则确定所述运行环境中,除所述运行程序外,当前或近期处于运行状态的其他程序,所述近期为距当前时刻的预设时长内;若所述其他程序与已拦截的所述执行业务之间,存在业务关联,则在所述兜底页面中,向用户展示包含选取的引导策略在内的多个引导策略对应的引导内容,并对选取的引导策略对应的引导内容进行渲染。
7.如权利要求6所述的方法,所述通过所述运行环境对应的框架,对所述运行程序中的执行业务进行拦截之前,所述方法还包括:对所述运行程序的当前状态进行截图,并将截图得到的第一图像保留至本地图库中;所述若所述其他程序与已拦截的所述执行业务之间,存在业务关联之后,所述方法还包括:对所述其他程序在当前时刻的状态进行截图,并将截图得到的第二图像保留至本地图库中。8.如权利要求1所述的方法,所述根据所述第一运行内存数据、所述第二运行内存数据,在所述运行程序中采用对应的引导策略,以对所述运行环境进行容灾止血,具体包括:根据所述第一运行内存数据、所述第二运行内存数据,确定所述运行程序在运行过程中,所述运行程序、所述运行环境的运行内存分别对应的第一内存增量、第二内存增量;根据所述第一内存增量在所述第二内存增量中的占比,确定所述运行程序对所述运行环境的内存影响等级;根据所述内存影响等级,在预设的多种引导策略中,选取匹配的引导策略,并在所述运行程序中采用所述对应的引导策略,对所述运行环境进行容灾止血。9.如权利要求8所述的方法,所述根据所述第一运行内存数据、所述第二运行内存数据,确定所述运行程序在运行过程中,所述运行程序、所述运行环境的运行内存分别对应的第一内存增量、第二内存增量之前,所述方法还包括:对所述运行程序执行自动策略,以对所述运行环境进行初步容灾止血,所述自动策略的用户体感等级低于所述引导策略的用户体感等级。10.如权利要求1~9中任一项所述的方法,所述运行程序包括小程序,所述运行环境包括所述小程序所在的客户端,所述引导策略引导用户对所述小程序和/或所述客户端执行相应操作,所述相应操作包括刷新、重启。11.一种针对内存溢出的容灾止血装置,包括:第一监听模块,基于运行程序的启动节点,对所述运行程序的第一运行内存数据进行监听;第二监听模...
【专利技术属性】
技术研发人员:叶思水,袁帅,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。