一种虚拟机内存监管方法与设备技术

技术编号:18049707 阅读:34 留言:0更新日期:2018-05-26 07:52
本申请的目的是提供一种虚拟机内存监管方法与设备;包括,对占用虚拟机内存的一个或多个对象进行内存数据分析;基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。与现有技术相比,本申请可以对现有的虚拟机,如JAVA虚拟机的内存占用情况进行有效监管,从而极大地减少了虚拟机内存溢出发生的概率,降低由于某个或某几个对象的内存泄漏给其他对象造成了运行中断的影响,避免了内存溢出给虚拟机正常运行带来的灾难性影响。

【技术实现步骤摘要】
一种虚拟机内存监管方法与设备
本申请涉及计算机领域,尤其涉及一种虚拟机内存监管技术。
技术介绍
目前Java平台中,JVM(JavaVirtualMachine,Java虚拟机)是其核心和基础,而在JVM运行中,Java虚拟机内存溢出,如Java堆内存溢出是个很普遍的问题,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可以回收时,就会抛出内存溢出这个异常。这个异常一旦发生,通常所有的对象生成请求都会被拒绝,服务基本都会停止并且不断抛出异常,造成所有业务中断。因此,对Java虚拟机进行有效的内存管理是维持Java系统稳定性的重要保证,但是在现有技术中,当遇到内存泄漏时,并没有有效的预警或保护机制,通常只能任由JVM消耗的内存不断增长,并最终超出设置的可使用的内存最大值,进而通常各个线程会被迫退出,各个业务都会中断运行,造成了严重后果。此外,上述内存溢出不仅在Java虚拟机运行中、而且在其他类型的虚拟机运行中都是普遍存在的问题,并缺乏有效的解决方案。
技术实现思路
本申请的目的是提供一种虚拟机内存监管方法与设备,以解决现有技术中对虚拟机内存溢出现象无法有效监管的问题。根据本申请的一个方面,提供了一种虚拟机内存监管的方法,包括:对占用虚拟机内存的一个或多个对象进行内存数据分析;基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。根据本申请的另一方面,还提供了一种虚拟机内存监管设备,包括:内存数据分析装置,用于对占用虚拟机内存的一个或多个对象进行内存数据分析;预警对象确定装置,用于基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;移入装置,用于将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。根据本申请的另一方面,还提供了一种虚拟机内存监管设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:对占用虚拟机内存的一个或多个对象进行内存数据分析;基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。与现有技术相比,本申请中,对占用虚拟机内存的一个或多个对象进行内存数据分析,并基于内存数据分析的分析结果,确定预警对象,从而将预警对象移入在虚拟机内存中开辟的内存保护区,以实现在对该内存保护区内的预警对象的内存管理。通过本申请可以对现有的虚拟机,如JAVA虚拟机的内存占用情况进行有效监管,例如,及时确定存在内存泄漏风险的预警对象,并将其移入对应的内存保护区进行有效监控和预警,从而极大地减少了虚拟机内存溢出发生的概率,降低由于某个或某几个对象的内存泄漏给其他对象造成了运行中断的影响,避免了内存溢出给虚拟机正常运行带来的灾难性影响。进一步,在本申请的一种实现方式中,获取虚拟机内存的占用空间总量,并当所述占用空间总量大于或等于第一占用空间预警阈值时,对占用所述虚拟机内存的对象进行内存数据分析。在此,通过设置第一占用空间预警阈值,可以对虚拟机内存的占用空间状态进行实时监控,将在虚拟机内存溢出之前、内存空间的占用异常初现之时,即采取及时操作,从而有效减少了虚拟机内存溢出发生的概率。进一步,在本申请的一种实现方式中,所述内存管理包括若所述占用空间总量满足第二占用空间预警阈值,拒绝所述内存保护区内一个或多个所述预警对象的内存分配请求,其中,所述第二占用空间预警阈值大于或等于所述第一占用空间预警阈值。在此,本申请在所述占用空间总量满足第二内存预警阈值时,会对当前内存保护区内的部分或全部预警对象停止分配新的内存空间,以此直接有效遏制了存在内存泄漏等高危风险的预警对象对内存空间的进一步消耗,避免不良内存占用的持续进行,从而对于当前剩余可用内存空间起到有效的保护作用。进一步,在一种实现方式中,伴随着第二预警信息的发出,有望借助用户,例如应用技术人员或运维人员的技术支持,及时地发现内存泄漏的问题所在,快速从问题源头解决危局,保障了Java系统运行的稳定性。进一步,在本申请的一种实现方式中,所述内存数据分析可以包括内存占用空间的增长趋势分析或是内存占用空间的数值分析中的任一项或是两者的结合,在此,基于实时监控获取到的占用所述虚拟机内存的对象的内存使用情况,结合合理的内存数据分析方法,可以准确地确定出真正导致内存溢出危险的预警对象,从而保证了后续对于该预警对象的内存管理能够准确、有效地化解所述虚拟机中潜在的内存溢出隐患。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1示出根据本申请一个方面的一种虚拟机内存监管的方法流程图;图2示出根据本申请一个方面的一种虚拟机内存监管设备的设备示意图;图3示出根据本申请一个方面的一种虚拟机内存监管方法的示例图;图4示出根据本申请一种实现方式的基于本申请虚拟机内存监管方法与现有虚拟机内存使用状态的技术效果对比图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式下面结合附图对本申请作进一步详细描述。在本申请一个典型的配置中,终端、服务网络的设备和可信方均可以包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性媒体、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。图1示出根据本申请一个方面的一种虚拟机内存监管的方法流程图。本申请实施例提供了一种虚拟机内存监管的方法,所述方法可以在相应的虚拟机内存监管设备端实现。其中,所述虚拟机内存监管设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或云服务器,其中,所述云服务器可以是运行在分布式系统中的、由一群松散耦合的计算机集组成的一个虚拟超级计算机,其用以实现简单高效、安全可靠、处理能力可弹性伸缩的计算服务。在本申请中,所述虚拟机内存监管设备可以指代为虚拟机内存监管设备1(可以参考图2中所示的虚拟机内存监管设备1)。在一种实现方式中,所述虚拟机内存监管设备1中可以运行有Java系统本文档来自技高网...
一种虚拟机内存监管方法与设备

【技术保护点】
一种虚拟机内存监管方法,其中,所述方法包括:对占用虚拟机内存的一个或多个对象进行内存数据分析;基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。

【技术特征摘要】
1.一种虚拟机内存监管方法,其中,所述方法包括:对占用虚拟机内存的一个或多个对象进行内存数据分析;基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。2.根据权利要求1所述的方法,其中,所述方法还包括:获取虚拟机内存的占用空间总量;其中,所述对占用虚拟机内存的一个或多个对象进行内存数据分析包括:若所述占用空间总量大于或等于第一占用空间预警阈值,对占用虚拟机内存的一个或多个对象进行内存数据分析。3.根据权利要求1或2所述的方法,其中,所述内存管理包括:获取所述预警对象对应的第一预警信息;将所述第一预警信息提供至用户。4.根据权利要求1或2所述的方法,其中,所述内存管理包括:若所述占用空间总量大于或等于第二占用空间预警阈值,拒绝所述内存保护区内一个或多个预警对象的内存分配请求。5.根据权利要求4所述的方法,其中,所述内存管理还包括:获取所述预警对象对应的第二预警信息;将所述第二预警信息提供至用户。6.根据权利要求1所述的方法,其中,所述方法还包括:获取占用所述虚拟机内存的对象的使用快照信息;其中,对占用虚拟机内存的对象进行内存数据分析包括:对占用虚拟机内存的对象的使用快照信息进行内存数据分析。7.根据权利要求1至6中任一项所述的方法,其中,所述内存数据分析包括以下至少任一项:内存占用空间的数值分析;内存占用空间的增长趋势分析。8.根据权利要求7所述的方法,其中,所述内存占用空间的增长趋势分析包括:基于对象的内存占用空间增长率确定对应的增长趋势信息;其中,所述基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象包括:基于对象的内存占用空间的增长趋势信息,确定预警对象。9.根据权利要求8所述的方法,其中,所述基于对象的内存占用空间的增长趋势信息,确定预警对象包括:若对象的内存占用空间的增长趋势信息中对象的内存占用空间增长率持续大于预设的第一增长率阈值,则确定所述对象为预警对象。10.根据权利要求8所述的方法,其中,所述方法还包括:基于所述内存保护区内预警对象的内存占用空间的增长趋势信息,确定内存占用空间增长率持续降低或内存占用空间增长率低于预设的第二增长率阈值的预警对象为移出对象;将所述移出对象移出所述内存保护区。11.根据权利要求7所述的方法,其中,所述内存占用空间的数值分析包括:计算对象对应的内存占用空间。其中,所述基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象包括:基于对象的内存占用空间,确定预警对象。12.根据权利要11所述的方法,其中,所述基于对象的内存占用空间,确定预警对象包括:基于对象的内存占用空间,对占用所述虚拟机内存的多个对象进行内存占用排序;基于所述内存占用排序和预设的排序筛选条件,确定预警对象。13.根据权利要求7所述的方法,其中,所述内存占用空间的数值分析包括:计算对象对应的内存占用空间,所述内存占用空间的增长趋势分析包括:基于对象的内存占用空间增长率确定对应的增长趋势信息;其中,所述基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象包括:基于对象的内存占用空间及内存占用空间的增长趋势信息确定预警对象。14.一种虚拟机内存监管设备,其中,所述设备包括:内存数据分析装置,用于对占用虚拟机内存的一个或多个对象进行内存数据分析;预警对象确定装置,用于基于所述内...

【专利技术属性】
技术研发人员:李兆伟孙辉
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1