预测并减轻计算机系统中的内存泄漏技术方案

技术编号:37437057 阅读:19 留言:0更新日期:2023-05-06 09:09
本公开涉及预测并减轻计算机系统中的内存泄漏。系统基于预定的时间间隔确定计算系统中的进程的内存使用的第一快照和第二快照,其中,针对相应的进程,相应的快照指示与包括私有内存和共享内存的内存类型相对应的内存使用。系统针对第一快照和第二快照共同的进程,基于以下各项计算针对进程和内存类型的内存泄漏的可能性:堆内存和私有内存的量的增加;共享内存的量的增加;以及私有内存和共享内存的总量的增加。系统将针对进程的计算出的可能性与预定阈值进行比较。响应于确定针对进程的计算出的可能性超过预定阈值,系统执行校正动作以解决与进程相关联的内存泄漏。作以解决与进程相关联的内存泄漏。作以解决与进程相关联的内存泄漏。

【技术实现步骤摘要】
预测并减轻计算机系统中的内存泄漏


[0001]本公开总体上涉及数据管理领域。更具体地,本公开涉及一种用于预测并减轻计算机系统中的内存泄漏的方法和系统。
附图说明
[0002]图1图示了根据本申请的一方面的具有促进预测并减轻计算机系统中的内存泄漏的实体和通信的环境。
[0003]图2图示了根据本申请的一方面的描绘了由进程使用的各种类型的内存的表。
[0004]图3呈现了图示根据本申请的一方面的促进预测并减轻计算机系统中的内存泄漏的方法的流程图。
[0005]图4A呈现了图示根据本申请的一方面的包括如本文所描述的步骤1至4的促进预测并减轻计算机系统中的内存泄漏的方法的流程图。
[0006]图4B呈现了图示根据本申请的一方面的包括如本文所描述的步骤5至12的促进预测并减轻计算机系统中的内存泄漏的方法的流程图。
[0007]图4C呈现了图示根据本申请的一方面的包括如本文所描述的步骤13至15的促进预测并减轻计算机系统中的内存泄漏的方法的流程图。
[0008]图5A呈现了根据本申请的一方面的所描述的方法的步骤1至8的结果。
[0009]图5B呈现了根据本申请的一方面的所描述的方法的步骤11的结果,包括总内存使用增加的进程的列表。
[0010]图5C呈现了根据本申请的一方面的所描述的方法的步骤13的结果,包括总内存使用增加的进程以及计算出的指标(criterion)和健康状态的列表。
[0011]图6呈现了描绘根据本申请的一方面的随时间推移的内存使用以及根据两个内存快照之间的数据点的指标计算的图。
[0012]图7图示了根据本申请的一方面的促进预测并减轻计算机系统中的内存泄漏的计算机系统。
[0013]图8图示了根据本申请的一方面的促进预测并减轻计算机系统中的内存泄漏的装置。
[0014]在这些附图中,相似的附图标记指代相同的附图元素。
具体实施方式
[0015]呈现以下描述以使得本领域的任何技术人员能够制造和使用各方面和示例,并且在特定应用及其要求的上下文中提供以下描述。对所公开方面的各种修改对于本领域技术人员来说将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文所定义的一般原理可以应用于其他方面和应用。因此,本文所描述的各方面不限于所示出的方面,而旨在符合与本文所公开的原理和特征一致的最大范围。
[0016]计算系统可以包括同时运行的多个进程。每个进程可消耗计算系统的内存。如果
特定进程的内存使用增长至超过某个阈值(例如,超出界限),则系统可能需要结束并重新启动该进程以避免完全重启系统。虽然许多计算系统可以以冗余方式(例如,使用活动设备和备用设备)运行,但可能期望避免从活动设备移动到备用设备以处理由一个(或多个)进程导致的显著内存泄漏。
[0017]本申请的所描述的方面提供了一种系统,该系统可以监测由整个系统和由各个进程对内存的使用,并且可以预测观测到的内存增长是否可能导致潜在的内存泄漏。随后,系统可以执行校正动作以解决识别出的内存泄漏。
[0018]所描述的系统可以使用内存使用快照工具,该工具可以基于预定且可配置的时间间隔(如每30分钟、每小时、每2小时等)确定计算系统中的进程的内存使用的快照。系统或用户可以实时配置或更改时间间隔。本公开中的术语“用户”可以指管理员、管理用户或被授权访问内存快照、接收对内存泄漏的通知和执行校正动作的其他用户。如果内存使用随时间推移开始更快地增长,则系统或用户可以减小快照之间的间隔,以便允许系统在这些“更快的泄漏”影响整个系统的操作之前捕获它们。系统还可以通过使用滑动窗口或跳跃窗口在两个不同的快照之间移动,其中,每个窗口可以包括可配置的参数以根据系统特性来调整行为。
[0019]每个快照可以指示在相应时间运行的一组进程的信息。例如,第一快照可以指示与用于给定进程的各种类型的内存相对应的内存使用以及随机存取存储器(RAM)磁盘内存的各个段的内存使用。两种类型是通用内存可以包括进程内存和基于RAM的文件系统(例如,Linux的tmpfs)中的文件。系统可以将进程内存和RAM磁盘内存视为单独的内存空间,即使这两种类型都可以驻留在物理RAM内存中。RAM磁盘内存(即,文件支持的内存)可以细分为可配置的各种固定大小的单独空间。这些空间中的每一个空间都可以存储特定类型的文件,例如,日志文件、临时文件和配置文件。
[0020]每个进程可以使用两种基本类型的内存:私有内存;以及共享内存,如下面关于图2所描述的。私有内存可以包括堆内存和内存映射文件输入/输出(I/O)。共享内存可以包括共享库和共享内存,该共享内存是在多个进程之间共享的内存。
[0021]系统的所描述的方面可以包括基于获得和存储的内存快照的各种步骤,如下面关于图1和图3以及图4A至图4C的步骤1至15所描述的。系统可以向用户显示某些结果,包括基于内存使用的增加或减少的结果,该内存使用的增加或减少基于用于进程、一组进程、系统或其他数据分组的内存类型。下面关于图5A至图5C描述了显示结果的示例。基于所存储或所显示的信息,系统还可以计算这样的指标,该指标指示针对给定进程的内存泄漏的可能性和/或给定进程的内存类型使用。该指标可以基于预定数量的时间单位,并且可以基于进程或系统所使用的每种类型的内存的量的增加使用最小二乘线性拟合来计算。系统可以定义一组范围来指示健康状况或严重级别,并且可以在(例如通过将计算出的指标与预定义的范围或预定阈值进行比较)健康状况或严重级别(基于给定的计算出的指标)落在某个范围内时触发通知。如本文所述,这些范围可以由用户预定义或配置或被设置为默认值。系统可以将通知发送给用户,例如作为警报。该通知可以使得系统或用户执行校正动作以解决与特定进程相关联的内存泄漏,例如,终止并重新启动进程,或通知/报告问题。
[0022]促进预测并减轻内存泄漏的通信
[0023]图1图示了根据本申请的一方面的具有促进预测并减轻计算机系统中的内存泄漏
的实体和通信的环境100。环境100可以包括:设备102、相关联的用户112和相关联的显示屏114;设备104和相关联的或所包括的存储设备105;以及设备106、107和108。用户112可以是管理用户、网络管理员或被授权执行与本文描述的用户相关联的操作的其他用户。设备102、104和106至108可以经由网络110彼此通信。设备102可以是客户端计算设备,例如,膝上型计算机、移动电话、智能电话、平板计算机、台式计算机和手持设备。设备102、104和106至108可以是计算设备(例如,服务器、联网实体和通信设备),并且可以包括在任何给定时间运行的多个进程。设备106至108可以为彼此提供冗余,例如,设备106可以被配置为活动设备,并且设备107可以被配置为相关联的备用设备。
[0024]在操作期间,设备104可以经由例如通信150、152和154,通过使用内存使用快照工具或其他类似的功能来拍摄或获得在设备106、107和108中运本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机实施的方法,包括:基于预定的时间间隔确定计算系统中的进程的内存使用的第一快照和第二快照,其中,针对相应的进程,相应的快照指示与内存类型相对应的内存使用,所述内存类型包括私有内存和共享内存;针对所述第一快照和所述第二快照共同的进程,基于以下各项计算针对进程和内存类型的内存泄漏的可能性:由所述进程使用的堆内存和私有内存的量的增加;由所述进程使用的共享内存的量的增加;以及由所述进程使用的私有内存和共享内存的总量的增加;将针对所述进程的计算出的可能性与预定阈值进行比较;以及响应于确定针对所述进程的所述计算出的可能性超过所述预定阈值,执行校正动作以解决与所述进程相关联的内存泄漏。2.如权利要求1所述的方法,进一步包括通过以下操作验证已核算所述第一快照与所述第二快照之间的内存使用的所有变化:执行第一组计算,所述第一组计算包括:确定所述共同进程的私有内存的增加或减少;确定所述共同进程的堆内存的增加或减少;确定所述共同进程的比例集大小(PSS)共享内存的增加或减少;对所述共同进程的共享内存的增加进行求和;以及对所述共同进程的共享内存的减少进行求和;基于所述第一组计算来计算所述第一快照的总内存使用的净变化;以及验证所述第一快照的计算出的净变化与所述第二快照的总内存使用相匹配。3.如权利要求1所述的方法,进一步包括:针对所述共同进程显示包括以下各项的信息:由所述进程使用的比例集大小(PSS)共享内存的量的增加或减少;由所述进程使用的所述堆内存的量的增加或减少;由所述进程使用的所述私有内存的量的增加或减少;由所述进程使用的所述共享内存的量的增加或减少;以及由所述进程使用的所述私有内存和共享内存的总量的增加。4.如权利要求3所述的方法,其中,基于以下中的至少一项来显示所述信息:基于由所述进程使用的所述私有内存和共享内存的总量的增加的降序;以及基于由所述进程使用的所述私有内存和共享内存的总量的减少的升序。5.如权利要求4所述的方法,其中,所述降序用于显示第一组共同进程,其中由每个进程使用的所述私有内存和共享内存的总量增加,并且其中,所述升序用于显示第二组共同进程,其中由每个进程使用的所述私有内存和共享内存的总量减少。6.如权利要求1所述的方法,其中,所显示的信息进一步包括针对以下中的至少一项的所述计算出的可能性和相关联的健康状态:
由其使用的所述私有内存的量增加的进程;由其使用的所述共享内存的量增加的进程;由其使用的所述私有内存和共享内存的总量增加的进程;每个进程中的数据点的私有内存使用的总和;每个进程中的数据点的共享内存使用的总和;以及每个进程中的数据点的总内存使用的总和,所述总内存使用包括所述私有内存使用和所述共享内存使用。7.如权利要求6所述的方法,其中,所述可能性包括基于预定数量的时间单位的指标,并且其中,所述相关联的健康状态基于针对所述进程的所述计算出的可能性与所述预定阈值的比较,并且包括基于所述预定数量的时间单位的多个预定义的范围。8.如权利要求7所述的方法,其中,所显示的信息进一步包括针对系统的与以下中的至少一项相关联的所述计算出的可能性和所述相关联的健康状态:所述第一快照和所述第二快照;以及所述共同进程。9.如权利要求1所述的方法,其中,计算所述可能性包括基于由所述进程使用的堆内存、私有内存、共享内存以及总私有内存和共享内存的量的增加来计算最小二乘线性拟合。10.如权利要求1所述的方法,进一步包括:计算与文件支持的内存段相关联的所述内存泄漏的可能性以及基于预定水印的相关联的健康状态。11.一种计算机系统,包括:处理器;以及存储器,所述存储器耦接到所述处理器并且存储指令,所述指令当由所述处理器执行时使所述处理器执行方法,所述方法包括:基于预定的时间间隔确定计算系统中的进程的内存使用的第一快照和第二快照,其中,针对相应的进程,相应的快照指示与内存类型相对应的内存使用,所述内存类型包括私有内存和共享内存;针对所述第一快照和所述第二快照共同的进程,基于以下各项计算针对进程和内存类型的内存泄漏的可能性:由所述进程使用的堆内存和私有内存的量的增加;由所述进程使用的共享内存的量的增加;以及由所述进程使用的私有内存和共享内存的总量的增加;将针对所述进程的计算出的可能性与预定阈值进行比较;以及响应于确定针对所述进程的所述计算出的可能性超过所述预定阈值,执行校正动作以解决与所...

【专利技术属性】
技术研发人员:G
申请(专利权)人:慧与发展有限责任合伙企业
类型:发明
国别省市:

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

1