使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏制造技术

技术编号:37503463 阅读:16 留言:0更新日期:2023-05-07 09:39
一种设备包括处理装置,所述处理装置被配置为:响应于指定的事件,发起监控与给定的应用程序相关联的内存分配和解除分配操作;维护包括条目的内存分配操作数据结构,每个条目对应于没有相关联的内存解除分配操作的内存分配操作;以及基于所述内存分配操作数据结构来确定所述给定的应用程序的内存使用是否对应于一组异常内存使用模式规则中的任一者。所述处理装置还被配置为:响应于确定所述给定的应用程序的所述内存使用对应于所述异常内存使用模式规则中的一者或多者,将所述给定的应用程序识别为内存泄漏的原因;以及响应于将所述给定的应用程序识别为所述内存泄漏的所述原因,执行用于防止或解决所述内存泄漏的补救动作。作。作。

【技术实现步骤摘要】
使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏


[0001]本领域总体上涉及信息处理,并且更具体地涉及用于管理信息处理系统的技术。

技术介绍

[0002]当应用程序错误地管理内存分配时会发生内存泄漏。例如,当应用程序从可用内存资源池分配内存但之后没有将已分配的内存解除分配或释放回到可用内存资源池时,可能会发生内存泄漏。内存泄漏可对系统性能造成严重的负面影响,包括导致减速和潜在地崩溃或其他系统故障。然而,诊断内存泄漏是通常要求程序员或开发者对应用程序源代码进行详细的手动检查的有挑战性且耗时的过程。

技术实现思路

[0003]本公开的说明性实施方案提供了用于使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏的技术。
[0004]在一个实施方案中,一种设备包括至少一个处理装置,所述至少一个处理装置包括联接到存储器的处理器。所述至少一个处理装置被配置为执行以下步骤:响应于指定的事件,发起监控与一组应用程序中的至少一个给定的应用程序相关联的内存分配和解除分配操作;维护包括一个或多个条目的内存分配操作数据结构,所述一个或多个条目中的每一者对应于与没有相关联的内存解除分配操作的所述给定的应用程序相关联的被监控的内存分配操作;以及至少部分地基于所述内存分配操作数据结构的对于所述给定的应用程序的所述一个或多个条目来确定所述给定的应用程序的内存使用是否对应于一组异常内存使用模式规则中的任一者。所述至少一个处理装置还被配置为执行以下步骤:响应于确定所述给定的应用程序的所述内存使用对应于所述一组异常内存使用模式规则中的一者或多者,将所述给定的应用程序识别为至少具有成为至少一个内存泄漏的原因的指定的阈值可能性;以及响应于将所述给定的应用程序识别为至少具有成为所述至少一个内存泄漏的所述原因的所述指定的阈值可能性,执行用于防止和解决所述至少一个内存泄漏中的至少一项的一个或多个补救动作。
[0005]这些和其他说明性实施方案包括但不限于方法、设备、网络、系统以及处理器可读存储介质。
附图说明
[0006]图1是说明性实施方案中的被配置用于使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏的信息处理系统的框图。
[0007]图2是说明性实施方案中的用于使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏的示例性过程的流程图。
[0008]图3示出了说明性实施方案中的用于实现内存分配和解除分配操作钩子的伪代
码。
[0009]图4示出了说明性实施方案中的用于执行对内存泄漏的基于规则的异常检测的工作流程。
[0010]图5和图6示出了说明性实施方案中的可用于实现信息处理系统的至少一部分的处理平台的示例。
具体实施方式
[0011]本文中将参考示例性信息处理系统和相关联的计算机、服务器、存储装置和其他处理装置来描述说明性实施方案。然而,应当理解,实施方案不限于与所示的特定说明性系统和装置配置一起使用。因此,如本文所用的术语“信息处理系统”意欲按广义来解释,以便涵盖例如包括云计算和存储系统的处理系统,以及包括物理和虚拟处理资源的各种组合的其他类型的处理系统。因此,信息处理系统可包括例如至少一个数据中心或其他类型的基于云的系统,所述其他类型的基于云的系统包括托管访问云资源的租户的一个或多个云。
[0012]图1示出了根据说明性实施方案配置的信息处理系统100。假定信息处理系统100建立在至少一个处理平台上,并且该信息处理系统提供用于使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏的功能。信息处理系统100包括内存泄漏分析服务102和一组客户端装置104

1、104

2、
……
104

M(统称为客户端装置104),该组客户端装置经由网络108联接到信息技术(IT)基础设施105,该IT基础设施包括一组IT资产106

1、106

2、
……
106

N(统称为IT资产106)。IT资产106可包括例如物理和虚拟计算资源。物理计算资源可包括物理硬件,诸如服务器、存储系统、网络设备、物联网(IoT)装置、健康监测装置或其他类型的可穿戴装置、卫星装置、其他类型的处理和计算装置等。虚拟计算资源可包括虚拟机(VM)、软件容器(在本文中也称为容器)等。
[0013]假定客户端装置104访问或以其他方式利用IT基础设施105的IT资产106。客户端装置104可包括例如按任意组合的物理计算装置,诸如IoT装置、移动电话、膝上型计算机、平板计算机、台式计算机或企业成员利用的其他类型的装置。此类装置是在本文中更一般地称为“处理装置”的示例。这些处理装置中的一些在本文中还一般地称为“计算机”。客户端装置104还或替代地包括虚拟计算资源,诸如VM、容器等。
[0014]在一些实施方案中,客户端装置104包括与特定公司、组织或其他企业相关联的相应计算机。另外,系统100的至少部分在本文中还可称为共同地构成“企业”。涉及广泛多种不同类型和布置的处理节点的许多其他操作场景是可能的,如本领域技术人员将理解。
[0015]在一些实施方案中,IT基础设施105由企业操作,并且客户端装置104由企业的用户操作。因此,IT基础设施105可称为企业系统。如本文所用,术语“企业系统”意欲按广义解释为包括任何组的系统或其他计算装置。在一些实施方案中,企业系统包括云基础设施,该云基础设施包括一个或多个云(例如,一个或多个公共云、一个或多个私有云、一个或多个混合云、它们的组合等)。云基础设施可托管内存泄漏分析服务102和/或客户端装置104的至少一部分。给定的企业系统可托管与多个企业(例如,两个或更多个不同的商家、组织或其他实体)相关联的IT资产106。在一些实施方案中,IT基础设施105可包括企业数据中心,诸如主机托管数据中心,所述企业数据中心托管由客户端装置104的终端用户访问的IT资产106。
[0016]假定将内存泄漏分析服务102、客户端装置104和IT基础设施105相联接的网络108包括全球计算机网络,诸如因特网,但可使用其他类型的网络,包括广域网(WAN)、局域网(LAN)、卫星网络、电话或有线网络、蜂窝网络、无线网络(诸如WiFi或WiMAX网络)或这些和其他类型网络的各个部分或组合。
[0017]尽管图1中未明确地示出,但可使用诸如键盘、显示器或其他类型的输入

输出装置的一个或多个输入

输出装置来支持访问内存泄漏分析服务102、客户端装置104和IT基础设施105的一个或多个用户接口,以及支持内存泄漏分析服务102、客户端装置104、IT基础设施105与未明确地示出的其他相关系统和装置之间的通信。
[0018]在图1实施方案中,假定在IT基础设施105中操作的IT资产106运行利用相关联的内存的应用程序。如本文所用,术语“应用程序”意欲本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种设备,所述设备包括:至少一个处理装置,所述至少一个处理装置包括联接到存储器的处理器;所述至少一个处理装置被配置为执行以下步骤:响应于指定的事件,发起监控与一组应用程序中的至少一个给定的应用程序相关联的内存分配和解除分配操作;维护包括一个或多个条目的内存分配操作数据结构,所述一个或多个条目中的每一者对应于与没有相关联的内存解除分配操作的所述给定的应用程序相关联的被监控的内存分配操作;至少部分地基于所述内存分配操作数据结构的用于所述给定的应用程序的所述一个或多个条目来确定所述给定的应用程序的内存使用是否对应于一组异常内存使用模式规则中的任一者;以及响应于确定所述给定的应用程序的所述内存使用对应于所述一组异常内存使用模式规则中的一者或多者,将所述给定的应用程序识别为至少具有成为至少一个内存泄漏的原因的指定的阈值可能性;以及响应于将所述给定的应用程序识别为至少具有成为所述至少一个内存泄漏的所述原因的所述指定的阈值可能性,执行用于防止和解决所述至少一个内存泄漏中的至少一项的一个或多个补救动作。2.如权利要求1所述的设备,其中所述指定的事件包括以下至少一项:接收到请求来确定所述给定的应用程序是不是所述至少一个内存泄漏的原因;确定运行所述给定的应用程序的系统正在经历所述至少一个内存泄漏;以及确定运行所述给定的应用程序的系统正在经历降低的性能,所述降低的性能对应于一个或多个性能指标至少在指定的阈值时间段内低于一个或多个指定的性能指标阈值。3.如权利要求1所述的设备,其中监控与所述给定的应用程序相关联的内存分配和解除分配操作包括激活由运行所述给定的应用程序的系统暴露的内存分配和解除分配函数中的应用程序钩子。4.如权利要求1所述的设备,其中维护所述内存分配操作数据结构包括:响应于与所述给定的应用程序相关联的每个检测到的内存分配操作,在所述内存分配操作数据结构中创建条目;以及响应于每个检测到的内存解除分配操作,移除所述内存分配操作数据结构中的条目。5.如权利要求1所述的设备,其中所述内存分配操作数据结构中的所述条目中的一个给定条目包括所述给定的应用程序的标识符、所述给定的应用程序的给定发出内存分配请求的时间、运行所述给定的应用程序的系统的内存中响应于所述给定的内存分配请求而分配给所述给定的应用程序的给定部分的标识,以及运行所述给定的应用程序的所述系统的所述内存中响应于所述给定的内存分配请求而分配给所述给定的应用程序的所述给定部分的大小。6.如权利要求5所述的设备,其中所述给定的内存分配请求包括以下至少一项:对动态地指派具有指定大小的内存块的内存分配函数的调用;对动态地指派具有指定大小的两个或更多个内存块的连续内存分配函数的调用;以及对动态地改变至少一个先前指派的内存块的分配的内存重新分配函数的调用。
7.如权利要求1所述的设备,其中响应于附加的指定事件来执行确定所述给定的应用程序的所述内存使用是否对应于所述一组异常内存使用模式规则中的任一者,并且其中所述附加的指定事件包括以下至少一项:接收到请求来中断监控与所述给定的应用程序相关联的所述内存分配和解除分配操作;确定已经至少在指定的阈值时间段内监控与所述给定的应用程序相关联的所述内存分配和解除分配操作;确定运行所述给定的应用程序的系统不再经历所述至少一个内存泄漏;以及确定运行所述给定的应用程序的所述系统不再经历降低的性能,其中确定所述系统不再经历降低的性能是至少部分地基于一个或多个性能指标至少在指定的阈值时间段内处于或高于一个或多个指定的性能指标阈值。8.如权利要求1所述的设备,其中所述一组异常内存使用模式规则包括:第一内存使用模式,其中所述给定的应用程序的内存使用在第一指定的时间段内增加;以及第二内存使用模式,其中所述给定的应用程序的内存使用在第二指定的时间段内增加,而所述给定的应用程序的应用程序负载增加小于指定的阈值量。9.如权利要求8所述的设备,其中所述第一指定的时间段比所述第二指定的时间段长。10.如权利要求1所述的设备,其中所述一组异常内存使用模式规则包括:第一内存使用模式,其中运行所述给定的应用程序的系统的可用内存低于第一指定的可用内存阈值;以及第二内存使用模式,其中运行所述给定的应用程序的所述系统的所述可用内存低于第二指定的可用内存阈值并且运行所述给定的应用程序的所述系统的内存使用的增长率高于指定的内存使用增长率阈值,其中所述第二指定的可用内存阈值低于所述第一指定的可用内存阈值。11.如权利要求1所述的设备...

【专利技术属性】
技术研发人员:陈驰董海兰樊慧娟
申请(专利权)人:戴尔产品有限公司
类型:发明
国别省市:

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

1