内存溢出时的拦截处理方法、设备及计算机可读存储介质技术

技术编号:38845099 阅读:25 留言:0更新日期:2023-09-17 09:56
本发明专利技术公开了一种内存溢出时的拦截处理方法、设备及计算机可读存储介质,其中,该方法包括:在各个服务侧进程中插入预设的内存壁垒程序,并通过所述内存壁垒程序获取所述服务侧中的关键业务线程所需的最小内存空间以及非关键业务进程的并发线程内存溢出时刻;对于所述关键业务线程,拦截预设的内存管理代码,并控制经释放后的内存空间大于或等于所述最小内存空间,对于所述非关键业务进程,在所述内存溢出时刻向磁盘空间申请伪内存,并将所述非关键业务进程运行时所需的内存数据转移至所述伪内存。实现了一种时效性更佳的内存溢出拦截处理方案,降低了服务侧内存的增加频次,提升了用户侧的软件使用体验。升了用户侧的软件使用体验。升了用户侧的软件使用体验。

【技术实现步骤摘要】
内存溢出时的拦截处理方法、设备及计算机可读存储介质


[0001]本专利技术涉及移动通信领域,尤其涉及一种内存溢出时的拦截处理方法、设备及计算机可读存储介质。

技术介绍

[0002]现有技术中,随着智能终端设备的不断发展,手机等设备厂商在针对设备内应用对应的服务侧运营过程中,大多面临高并发场景下的内存溢出问题,即用户数量动辄千万甚至过亿时,服务器的内存经常会显得捉襟见肘。特别地,在某些时候一旦并发达到超高值,很可能就会出现内存溢出,从而导致服务不可用,引起重大的线上故障。
[0003]在遇到上述问题时,目前的解决方案都是由监控系统抓取到当前的堆栈数据,基于该堆栈数据,首先由开发人员进行分析排查,再由运维人员申请并加大内存,最后重启服务。
[0004]但是,上述方案存在多个缺陷:一是,方案成本高,当用户数量增加时,需要不断的去增加服务器的内存;二是,耗时长,在申请配置更大内存和重启服务的过程中,用户无法使用相应的应用,体验较差;三是,开发人员根据堆栈数据分析排查问题的时效性较低。

技术实现思路

[0005]为了解决现有技术中的上述技术缺陷,本专利技术提出了一种内存溢出时的拦截处理方法,该方法包括:
[0006]在各个服务侧进程中插入预设的内存壁垒程序,并通过所述内存壁垒程序获取所述服务侧中的关键业务线程所需的最小内存空间以及非关键业务进程的并发线程内存溢出时刻;
[0007]对于所述关键业务线程,拦截预设的内存管理代码,并控制经释放后的内存空间大于或等于所述最小内存空间,对于所述非关键业务进程,在所述内存溢出时刻向磁盘空间申请伪内存,并将所述非关键业务进程运行时所需的内存数据转移至所述伪内存。
[0008]可选地,所述通过所述内存壁垒程序获取所述服务侧中的关键业务线程所需的最小内存空间以及非关键业务进程的并发线程内存溢出时刻,具体包括:
[0009]获取所述服务侧的各个线上服务的业务线程;
[0010]通过所述内存壁垒程序对所述业务线程进行预设的机器学习,识别得到所述关键业务线程和所述非关键业务进程。
[0011]可选地,所述通过所述内存壁垒程序对所述业务线程进行预设的机器学习,识别得到所述关键业务线程和所述非关键业务进程,具体包括:
[0012]通过所述内存壁垒程序采集各个线上服务在线上运行时的运行数据;
[0013]在所述运行数据中记录各个线上服务处于正常运行时的参数信息,其中,所述参数信息包括线程数量、线程ID、线程名称、线程调用链、内存使用量、响应耗时以及内存生命周期。
[0014]可选地,所述通过所述内存壁垒程序对所述业务线程进行预设的机器学习,识别得到所述关键业务线程和所述非关键业务进程,还包括:
[0015]获取各个线上服务处于正常运行时的所述内存生命周期;
[0016]根据所述内存生命周期识别得到各个线上服务在线上运行时的所述关键业务线程和所述非关键业务进程。
[0017]可选地,所述通过所述内存壁垒程序获取所述服务侧中的关键业务线程所需的最小内存空间以及非关键业务进程的并发线程内存溢出时刻,还包括:
[0018]获取各个线上服务处于正常运行时的所述内存使用量和所述响应耗时;
[0019]根据所述内存使用量和所述响应耗时识别得到各个线上服务在线上运行时的线程所需内存空间。
[0020]可选地,所述对于所述关键业务线程,拦截预设的内存管理代码,并控制经释放后的内存空间大于或等于所述最小内存空间,包括:
[0021]将与所述关键业务线程对应的所述线程所需内存空间设置为所述最小内存空间;
[0022]当剩余内存减小至所述最小内存空间时,拦截所述内存管理代码,并控制经释放后的内存空间大于或等于所述最小内存空间。
[0023]可选地,所述对于所述非关键业务进程,在所述内存溢出时刻向磁盘空间申请伪内存,并将所述非关键业务进程运行时所需的内存数据转移至所述伪内存,还包括:
[0024]将剩余内存减小至与所述非关键业务进程对应的所述线程所需内存空间的时刻作为所述并发线程内存溢出时刻;
[0025]在所述内存溢出时刻,将所述非关键业务进程运行时所需的内存数据全部转移至所述伪内存。
[0026]可选地,所述方法还包括:
[0027]当执行所述内存管理代码的拦截操作或所述伪内存的申请操作后,抓取所述关键业务线程或所述非关键业务进程的堆栈日志;
[0028]根据所述堆栈日志分析所述关键业务线程或所述非关键业务进程的运行状态、调用链以及内存消耗,获取与所述拦截操作或所述申请操作相关联的内存泄露点。
[0029]本专利技术还提出了一种内存溢出时的拦截处理设备,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的内存溢出时的拦截处理方法的步骤。
[0030]本专利技术还提出了一种计算机可读存储介质,该计算机可读存储介质上存储有内存溢出时的拦截处理程序,内存溢出时的拦截处理程序被处理器执行时实现如上述任一项所述的内存溢出时的拦截处理方法的步骤。
[0031]实施本专利技术的内存溢出时的拦截处理方法、设备及计算机可读存储介质,通过在各个服务侧进程中插入预设的内存壁垒程序,并通过所述内存壁垒程序获取所述服务侧中的关键业务线程所需的最小内存空间以及非关键业务进程的并发线程内存溢出时刻;对于所述关键业务线程,拦截预设的内存管理代码,并控制经释放后的内存空间大于或等于所述最小内存空间,对于所述非关键业务进程,在所述内存溢出时刻向磁盘空间申请伪内存,并将所述非关键业务进程运行时所需的内存数据转移至所述伪内存。实现了一种时效性更佳的内存溢出拦截处理方案,降低了服务侧内存的增加频次,提升了用户侧的软件使用体
Division Multiple Access 2000,码分多址2000)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、TD

SCDMA(Time Division

Synchronous Code Division Multiple Access,时分同步码分多址)、FDD

LTE(Frequency Division Duplexing

Long Term Evolution,频分双工长期演进)和TDD

LTE(Time Division Duplexing

Long Term Evolution,分时双工长期演进)等。
[0050]WiFi属于短距离无线传输技术,移动终端通过WiFi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存溢出时的拦截处理方法,其特征在于,所述方法包括:在各个服务侧进程中插入预设的内存壁垒程序,并通过所述内存壁垒程序获取所述服务侧中的关键业务线程所需的最小内存空间以及非关键业务进程的并发线程内存溢出时刻;对于所述关键业务线程,拦截预设的内存管理代码,并控制经释放后的内存空间大于或等于所述最小内存空间,对于所述非关键业务进程,在所述内存溢出时刻向磁盘空间申请伪内存,并将所述非关键业务进程运行时所需的内存数据转移至所述伪内存。2.根据权利要求1所述的内存溢出时的拦截处理方法,其特征在于,所述通过所述内存壁垒程序获取所述服务侧中的关键业务线程所需的最小内存空间以及非关键业务进程的并发线程内存溢出时刻,具体包括:获取所述服务侧的各个线上服务的业务线程;通过所述内存壁垒程序对所述业务线程进行预设的机器学习,识别得到所述关键业务线程和所述非关键业务进程。3.根据权利要求2所述的内存溢出时的拦截处理方法,其特征在于,所述通过所述内存壁垒程序对所述业务线程进行预设的机器学习,识别得到所述关键业务线程和所述非关键业务进程,具体包括:通过所述内存壁垒程序采集各个线上服务在线上运行时的运行数据;在所述运行数据中记录各个线上服务处于正常运行时的参数信息,其中,所述参数信息包括线程数量、线程ID、线程名称、线程调用链、内存使用量、响应耗时以及内存生命周期。4.根据权利要求3所述的内存溢出时的拦截处理方法,其特征在于,所述通过所述内存壁垒程序对所述业务线程进行预设的机器学习,识别得到所述关键业务线程和所述非关键业务进程,还包括:获取各个线上服务处于正常运行时的所述内存生命周期;根据所述内存生命周期识别得到各个线上服务在线上运行时的所述关键业务线程和所述非关键业务进程。5.根据权利要求3所述的内存溢出时的拦截处理方法,其特征在于,所述通过所述内存壁垒程序获取所述服务侧中的关键业务线程所需的最小内存空间以及非关键业务进程的并发线程内存溢出时刻,还包括:获...

【专利技术属性】
技术研发人员:倪秉炬
申请(专利权)人:努比亚技术有限公司
类型:发明
国别省市:

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

1