CN108073441B - 一种虚拟机内存监管方法与设备 - Google Patents
一种虚拟机内存监管方法与设备 Download PDFInfo
- Publication number
- CN108073441B CN108073441B CN201611029385.XA CN201611029385A CN108073441B CN 108073441 B CN108073441 B CN 108073441B CN 201611029385 A CN201611029385 A CN 201611029385A CN 108073441 B CN108073441 B CN 108073441B
- Authority
- CN
- China
- Prior art keywords
- memory
- early warning
- virtual machine
- occupied space
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请的目的是提供一种虚拟机内存监管方法与设备;包括,对占用虚拟机内存的一个或多个对象进行内存数据分析;基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。与现有技术相比,本申请可以对现有的虚拟机,如JAVA虚拟机的内存占用情况进行有效监管,从而极大地减少了虚拟机内存溢出发生的概率,降低由于某个或某几个对象的内存泄漏给其他对象造成了运行中断的影响,避免了内存溢出给虚拟机正常运行带来的灾难性影响。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种虚拟机内存监管技术。
背景技术
目前Java平台中,JVM(Java Virtual Machine,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)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种虚拟机内存监管的方法流程图。
本申请实施例提供了一种虚拟机内存监管的方法,所述方法可以在相应的虚拟机内存监管设备端实现。其中,所述虚拟机内存监管设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或云服务器,其中,所述云服务器可以是运行在分布式系统中的、由一群松散耦合的计算机集组成的一个虚拟超级计算机,其用以实现简单高效、安全可靠、处理能力可弹性伸缩的计算服务。在本申请中,所述虚拟机内存监管设备可以指代为虚拟机内存监管设备1(可以参考图2中所示的虚拟机内存监管设备1)。在一种实现方式中,所述虚拟机内存监管设备1中可以运行有Java系统,例如Java虚拟机。在一种实现方式中,所述设备还可以运行有其他种类的虚拟机。
具体地,所述虚拟机内存监管方法包括步骤S11、步骤S12和步骤S13。
在步骤S11中,虚拟机内存监管设备1可以对占用所述虚拟机内存的一个或多个对象进行内存数据分析。以所述虚拟机内存监管设备1中运行Java虚拟机为例,当Java程序创建一个类的实例或者数组时,会在Java堆中为新的对象分配内存,有时当对象被分配某段内存后,由于程序设计上的错误,例如,未设计释放或者是认为不必处理等原因,失去了对该段内存的控制,从而造成了该段内存的浪费,即出现内存泄漏。为了防止内存泄漏造成内存溢出的情况出现,可以通过所述内存数据分析,对各个对象过去一段时间、或是当前一段时间的内存占用情况的分析,以此判断所述对象当前是否为有内存泄漏的高危对象,或是判断所述对象在未来一段时间内是否会因为其内存泄漏给整个系统带来内存溢出的风险。
在此,为了有效防止内存泄漏造成内存溢出的情况出现,在一种实现方式中,所述方法还包括步骤S14(未示出),在步骤S14中,虚拟机内存监管设备1可以获取虚拟机内存的占用空间总量;接着,在步骤S11中,若所述占用空间总量大于或等于第一占用空间预警阈值,虚拟机内存监管设备1对占用所述虚拟机内存的对象进行内存数据分析。在一种实现方式中,所述虚拟机内存监管设备1可以通过抓取快照的方法获取到当前虚拟机内存的占用空间总量。以所述虚拟机内存监管设备1中运行Java虚拟机为例,可以通过Java虚拟机中的守护进程周期性、或是在任意自定义时间内抓取快照。例如,可以一次抓取整个Java堆中的占用空间总量对应的快照信息;又如,还可以先抓取占用所述虚拟机内存的一个或多个对象当前的使用快照信息以获得该对象的占用空间信息,再由各个对象的占用空间信息确定出当前虚拟机内存的占用空间总量。在一种实现方式中,可以设置相应的第一占用空间预警阈值,当各个所述对象的内存使用的总量信息等于或是大于该第一占用空间预警阈值时,判断为出现较严重的内存泄漏问题,并开启对占用所述虚拟机内存的各个对象进行内存数据分析。在此,通过设置第一占用空间预警阈值,可以对虚拟机内存的占用空间状态进行实时监控,将在虚拟机内存溢出之前、内存空间的占用异常初现之时,即采取及时操作,从而有效减少了虚拟机内存溢出发生的概率。
在一种实现方式中,所述内存数据分析可以包括内存占用空间的数值分析,例如,计算所述对象对应的内存占用空间,如计算各个对象的内存占用大小、或是各个对象的内存占用比例等;还可以包括内存占用空间的增长趋势分析,例如,基于各个对象在当前一段时间内的内存占用空间增长率确定对应的增长趋势信息等;还可以包括多种内存数据分析的结合,例如,上述内存占用空间的数值分析和内存占用空间的增长趋势分析的结合;又如,该两种内存数据分析与可用于本申请的其他内存数据分析的结合。在本实施例中,通过为不同的应用场景匹配对应的内存数据分析,可以针对性地准确定位出真正导致内存溢出危险的预警对象,从而保证了后续对于该预警对象的内存管理能够准确、有效地化解所述虚拟机中潜在的内存溢出隐患。
一种实现方式中,所述方法还包括步骤S15(未示出),在步骤S15中,虚拟机内存监管设备1可以获取占用所述虚拟机内存的对象的使用快照信息;接着,在步骤S11中,虚拟机内存监管设备1可以对所述占用所述虚拟机内存的对象的使用快照信息进行内存数据分析。在此,所述内存数据分析,例如内存占用空间的数值分析、内存占用空间的增长趋势分析等所依据的数据基础可以来源于虚拟机内存监管设备1周期性、或基于任意预设时间抓取的对象使用快照信息,该使用快照信息中可以包含与该对象占用内存相关的任意信息,一种实现方式中,所述使用快照信息中可以包含所述对象对应的内存占用空间信息,如各个对象的内存占用大小信息。
接着,在步骤S12中,虚拟机内存监管设备1可以基于所述内存数据分析的分析结果,在所述占用所述虚拟机内存的对象中确定预警对象。一种实现方式中,通过所述内存占用空间的增长趋势分析,可以发现部分所述对象在一段时间内内存消耗持续增长且增长斜率较高,进而可以推定这些对象为所述预警对象。一种实现方式中,通过所述内存占用空间的数值分析,发现部分所述对象的内存空间占比远远高出其他对象,则该部分对象出现内存泄漏的机率较高,且进一步导致内存溢出的可能性也较大,则可以推定该部分对象为预警对象。一种实现方式中,还可以同时结合所述内存占用空间的增长趋势分析和所述内存占用空间的数值分析,确定一段时间内内存消耗持续增长且增长斜率较高、并且内存使用占比较高的对象为所述预警对象。
接着,在步骤S13中,虚拟机内存监管设备1可以将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。在本申请的一种实现方式中,可以在所述虚拟机内存中开辟一片相对集中的区域作为内存保护区,将确定的预警对象转移进入内存保护区,从而便于对高危对象进行集中的监控和处理。
一种实现方式中,所述内存管理可以包括获取所述预警对象对应的第一预警信息;进而将该第一预警信息提供至用户。具体地,所述用户,可以是所述对象对应的应用、如Java应用的运维人员或技术支持人员等。在此,可以将拉取的对象日志信息直接作为第一预警信息提供给所述用户;此外,还可以先基于所拉取的对象日志信息生成风险提示信息,该风险提示信息可以包括预计该对象存在什么类型、级别的风险,或是包括若问题严重,则需要运维人员加急处理等信息,然后将上述风险提示信息作为第一预警信息,提供至所述用户。在此实现方式中,第一预警信息的发出,有望借助用户,例如应用技术人员或运维人员的技术支持,及时地发现内存泄漏的问题所在,快速从问题源头解决危局,保障了Java系统运行的稳定性。
一种实现方式中,所述内存管理还可以包括若所述占用空间总量大于或等于第二占用空间预警阈值,拒绝所述内存保护区内一个或多个所述预警对象的内存分配请求,其中,所述第二占用空间预警阈值大于或等于所述第一占用空间预警阈值。具体地,在实际应用中,为了更有效地减少内存泄漏、降低内存溢出的概率,还可以设置在所述占用空间总量满足第二占用空间预警阈值时,通过停止为疑似内存泄漏的高危对象分配新的内存的方法,来保护虚拟机中剩余内存的分配使用。在一种实现方式中,可以选择停止内存泄漏风险最高或较高的一个或多个预警对象的内存分配请求。在一种实现方式中,所述第二占用空间预警阈值可以大于或等于所述第一占用空间预警阈值。在一种实现方式中,可以在内存监管过程中设计单层、或是多层的预警机制,分别对应不同的预警阈值以满足不同级别的预警需要。进一步,一种实现方式中,所述内存管理还可以包括获取所述预警对象对应的第二预警信息;进而将该第二预警信息提供至用户。所述第二预警信息与第一预警信息的内容或形式相同或相似,在此不再赘述。
在此实现方式中,通过对当前内存保护区内的部分或全部预警对象停止分配新的内存空间的方法直接有效遏制了存在内存泄漏等高危风险的预警对象对内存空间的进一步消耗,避免不良内存占用的持续进行,从而对于当前剩余可用内存空间起到有效的保护作用。并且伴随着第二预警信息的发出,有望借助用户,例如应用技术人员或运维人员的技术支持,及时地发现内存泄漏的问题所在,快速从问题源头解决危局,保障了Java系统运行的稳定性。
在本申请实施例中,对占用所述虚拟机内存的对象进行内存数据分析,并基于内存数据分析的分析结果,确定预警对象,从而将预警对象移入在虚拟机内存中开辟的内存保护区,以实现在对该内存保护区内的预警对象的内存管理。通过本申请可以对现有的虚拟机,如JAVA虚拟机的内存占用情况进行有效监管,例如,及时确定存在内存泄漏风险的预警对象,并将其移入对应的内存保护区进行有效监控和预警,从而极大地减少了虚拟机内存溢出发生的概率,降低由于某个或某几个对象的内存泄漏给其他对象造成了运行中断的影响,避免了内存溢出给虚拟机正常运行带来的灾难性影响。
一种实现方式中,所述内存占用空间的增长趋势分析可以包括基于所述对象的内存占用空间增长率确定对应的增长趋势信息;接着,在步骤S12中,虚拟机内存监管设备1可以基于所述对象的内存占用空间的增长趋势信息,确定预警对象。
具体地,在此,所述增长趋势分析包括基于所述对象的内存占用空间增长率确定对应的增长趋势信息。一种实现方式中,可以基于单位时间内的内存占用空间的增长量确定所述内存占用空间增长率,例如,在T1时刻,所述对象占有内存空间的数值是M,到了T2时刻,该对象占有内存空间的数值变化为N,则可以确定,该对象在T1至T2这一段时间内的内存占用空间增长率为(N-M)/(T2-T1)。基于此可以确定出对应的增长趋势信息,即若数值越大,则增长斜率越高,说明该对象内存占用空间的消耗速度快,其为预警对象的机率就越高;反之若是数值下降,或是甚至为负值,则一般判定为正常对象。
一种实现方式中,在步骤S12中,若对象的内存占用空间的增长趋势信息中对象的内存占用空间增长率持续大于预设的第一增长率阈值,则将确定所述对象为预警对象。在此,为了更加客观、准确地确定出所述需要特别监管的预警对象,可以计算多个时间段内所述对象的内存占用空间增长率,若是所述对象的内存占用空间增长率在连续的多个时间段内持续满足预设的第一增长率阈值,可以确定所述对象为预警对象。
一种实现方式中,所述方法还包括步骤S16(未示出)和步骤S17(未示出),在步骤S16中,虚拟机内存监管设备1可以基于所述内存保护区内所述预警对象的内存占用空间的增长趋势信息,确定内存占用空间增长率持续降低或空内存占用空间增长率低于预设的第二增长率阈值的所述预警对象为移出对象;接着,在步骤S17中,虚拟机内存监管设备1可以将所述移出对象移出所述内存保护区。本申请所述的虚拟机的内存监管可以是实时动态的过程,因为所述虚拟机中的对象其占用内存的状态可以在不断变化,例如,之前被移入保护区的预警对象可能因为及时有效地处理,其内存消耗异常得以解决。此时,对于已经不再具有内存泄漏风险的、或是风险降低的预警对象,可以将其及时移除所述内存保护区,从而有效地保持内存保护区内的管理工作的效率,防止所述内存保护区中由于不断接纳新的预警对象带来的相应管理工作的增加。
一种实现方式中,所述内存占用空间的数值分析包括:计算所述对象对应的内存占用空间;接着,在步骤S12中,虚拟机内存监管设备1可以基于所述对象的内存占用空间,确定预警对象。在此,所述对象的内存占用空间的计算可以包括但不限于所述对象的内存占用大小、或内存占比等多种数值形式。
进一步,一种实现方式中,虚拟机内存监管设备1可以基于所述对象的内存占用空间,对占用所述虚拟机内存的多个所述对象进行内存占用排序,再基于所述内存占用排序和预设的排序筛选条件,确定预警对象。一种实现方式中,可以基于各个所述对象的内存占用大小,或是内存占比大小对各个所述对象进行相应的内存占用排序,例如从大至小排序。进一步,可以同时结合预设的排序筛选条件,确定一个或多个预警对象,例如,所述预设的排序筛选条件可以是以内存占用大小,或是内存占比大小为TOPN的对象为所述预警对象,其中,N≥1,且为正整数;又如,所述预设的排序筛选条件可以是内存占用大小大于M,或是内存占比大小大于L%的一个或多个所述对象为所述预警对象。
一种实现方式中,所述内存占用空间的数值分析可以包括:计算所述对象对应的内存占用空间,所述内存占用空间的增长趋势分析可以包括:基于所述对象的内存占用空间增长率确定对应的增长趋势信息;其中,在步骤S12中,虚拟机内存监管设备1可以基于所述对象的内存占用空间及内存占用空间的增长趋势信息确定预警对象。在此,可以将内存占用空间增长率持续满足预设的第一增长率阈值、且内存占用空间满足预设的排序筛选条件的一个或多个对象确定为预警对象。由此,通过不同内存分析方法的结合,可以准确地确定出高危的预警对象,从而保证了后续对于该预警对象的内存管理能够准确、有效地化解所述虚拟机中潜在的内存溢出隐患。
图3示出根据本申请一个方面的一种虚拟机内存监管方法的示例图。在此,以Java虚拟机为例,当JVM应用启动并运行后,会基于守护进程的请求提供相应占用所述虚拟机内存的对象的内存快照,守护进程会基于所获取的内存快照获取到JVM的占用空间总量,若是当前的占用空间总量满足预设的占用空间预警阈值,则进行内存数据分析,在一种实现方式中,所述占用空间预警阈值可以对应为预设的第一占用空间预警阈值;通过所述内存数据分析,若是分析结果显示某一个或多个对象内存占用的增长斜率持续上升,或某一个或多个对象内存占比较大,或某一个或多个对象同时呈现上述两种结果,则可以进一步进行判断,若是确认为预警对象,则将其移入内存保护区。在一种实现方式中,对于所述保护区内的预警对象,还可以通过停止为其分配新的内存空间的方法,降低其内存泄漏的风险,进一步,还可以设置第二占用空间预警阈值,在满足所述第二占用空间预警阈值时,对所述内存保护区内的一个或多个预警对象实施上述停止操作。在一种实现方式中,对于内存保护区内的预警对象,可以触发预警信息的发送,从而通过调用守护进程将相应的预警信息提供至相关管理对象,以便对存在内存泄漏可能的预警对象进行及时处理。在一种实现方式中,对于内存占用空间增长率持续降低或空内存占用空间增长率低于预设的第二增长率阈值的一个或多个预警对象,可以在接收到守护进程的移出内存保护区指令后,将其作为移出对象、移出所述内存保护区。
图4示出根据本申请一种实现方式的基于本申请虚拟机内存监管方法与现有虚拟机内存使用状态的技术效果对比图。在此,图4示出了一个对比图组,即未使用内存监管方法的内存趋势图和使用了本申请中所述内存监管方法的内存趋势图。在此,以Java虚拟机使用场景为例,假设初始化的Java堆内存为256M,最大Java堆内存使用大小为1024M,设定的阈值为900M,在此,所述阈值可以对应为本申请中的第一占用空间预警阈值,也可以对应为第二占用空间预警阈值。通过该图组对比,未使用本申请内存监管方法的场景下,已出现了内存溢出(OOM,Out Off Memory),应用程序服务停止,而基于本申请内存监管方法的场景中,并没有出现内存溢出,只是部分功能不可用。由此可见,本申请的运用可以极大地减少了虚拟机内存溢出发生的概率,降低由于某个或某几个对象的内存泄漏给其他对象造成了运行中断的影响,避免了内存溢出给虚拟机正常运行带来的灾难性影响。
图2示出根据本申请一个方面的一种虚拟机内存监管设备的设备示意图。
本申请实施例还提供了一种虚拟机内存监管设备,包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或云服务器,其中,所述云服务器是运行在分布式系统中的、由一群松散耦合的计算机集组成的一个虚拟超级计算机,其用以实现简单高效、安全可靠、处理能力可弹性伸缩的计算服务。本申请中,所述虚拟机内存监管设备可以指代为图2中的虚拟机内存监管设备1。
具体地,虚拟机内存监管设备1包括内存数据分析装置21、预警对象确定装置22和移入装置23。
内存数据分析装置21可以对占用虚拟机内存的一个或多个对象进行内存数据分析。以所述虚拟机内存监管设备1中运行Java虚拟机为例,当Java程序创建一个类的实例或者数组时,会在Java堆中为新的对象分配内存,有时当对象被分配某段内存后,由于程序设计上的错误,例如,未设计释放或者是认为不必处理等原因,失去了对该段内存的控制,从而造成了该段内存的浪费,即出现内存泄漏。为了防止内存泄漏造成内存溢出的情况出现,可以通过所述内存数据分析,对各个对象过去一段时间、或是当前一段时间的内存占用情况的分析,以此判断所述对象当前是否为有内存泄漏的高危对象,或是判断所述对象在未来一段时间内是否会因为其内存泄漏给整个系统带来内存溢出的风险。
在此,为了有效防止内存泄漏造成内存溢出的情况出现,在一种实现方式中,所述设备还包括占用空间总量获取装置(未示出),用于获取虚拟机内存的占用空间总量;接着,若所述占用空间总量大于或等于第一占用空间预警阈值,内存数据分析装置21对占用所述虚拟机内存的对象进行内存数据分析。在一种实现方式中,占用空间总量获取装置可以通过抓取快照的方法获取到当前虚拟机内存的占用空间总量。以虚拟机内存监管设备1中运行Java虚拟机为例,可以通过Java虚拟机中的守护进程周期性、或是在任意自定义时间内抓取快照。例如,可以一次抓取整个Java堆中的占用空间总量对应的快照信息;又如,还可以先抓取占用所述虚拟机内存的一个或多个对象当前的使用快照信息以获得该对象的占用空间信息,再由各个对象的占用空间信息确定出当前虚拟机内存的占用空间总量。在一种实现方式中,可以设置相应的第一占用空间预警阈值,当各个所述对象的内存使用的总量信息等于或是大于该第一占用空间预警阈值时,判断为出现较严重的内存泄漏问题,并开启对占用所述虚拟机内存的各个对象进行内存数据分析。在此,通过设置第一占用空间预警阈值,可以对虚拟机内存的占用空间状态进行实时监控,将在虚拟机内存溢出之前、内存空间的占用异常初现之时,即采取及时操作,从而有效减少了虚拟机内存溢出发生的概率。
在一种实现方式中,所述内存数据分析可以包括内存占用空间的数值分析,例如,计算所述对象对应的内存占用空间,如计算各个对象的内存占用大小、或是各个对象的内存占用比例等;还可以包括内存占用空间的增长趋势分析,例如,基于各个对象在当前一段时间内的内存占用空间增长率确定对应的增长趋势信息等;还可以包括多种内存数据分析的结合,例如,上述内存占用空间的数值分析和内存占用空间的增长趋势分析的结合;又如,该两种内存数据分析与可用于本申请的其他内存数据分析的结合。在本实施例中,通过为不同的应用场景匹配对应的内存数据分析,可以针对性地准确定位出真正导致内存溢出危险的预警对象,从而保证了后续对于该预警对象的内存管理能够准确、有效地化解所述虚拟机中潜在的内存溢出隐患。
一种实现方式中,虚拟机内存监管设备1还包括使用快照信息获取装置(未示出),可以用于获取占用所述虚拟机内存的对象的使用快照信息;接着,内存数据分析装置21对所述占用所述虚拟机内存的对象的使用快照信息进行内存数据分析。在此,所述内存数据分析,例如内存占用空间的数值分析、内存占用空间的增长趋势分析等所依据的数据基础可以来源于虚拟机内存监管设备1周期性、或基于任意预设时间抓取的对象使用快照信息,该使用快照信息中可以包含与该对象占用内存相关的任意信息,一种实现方式中,所述使用快照信息中可以包含所述对象对应的内存占用空间信息,如各个对象的内存占用大小信息。
接着,预警对象确定装置22可以基于所述内存数据分析的分析结果,在所述占用所述虚拟机内存的对象中确定预警对象。一种实现方式中,通过所述内存占用空间的增长趋势分析,可以发现部分所述对象在一段时间内内存消耗持续增长且增长斜率较高,进而可以推定这些对象为所述预警对象。一种实现方式中,通过所述内存占用空间的数值分析,发现部分所述对象的内存空间占比远远高出其他对象,则该部分对象出现内存泄漏的机率较高,且进一步导致内存溢出的可能性也较大,则可以推定该部分对象为预警对象。一种实现方式中,还可以同时结合所述内存占用空间的增长趋势分析和所述内存占用空间的数值分析,确定一段时间内内存消耗持续增长且增长斜率较高、并且内存使用占比较高的对象为所述预警对象。
接着,移入装置23可以将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。在本申请的一种实现方式中,可以在所述虚拟机内存中开辟一片相对集中的区域作为内存保护区,将确定的预警对象转移进入内存保护区,从而便于对高危对象进行集中的监控和处理。
一种实现方式中,所述内存管理包括获取所述预警对象对应的第一预警信息;进而将该第一预警信息提供至用户。具体地,所述用户,可以是所述对象对应的应用、如Java应用的运维人员或技术支持人员等。在此,可以将拉取的对象日志信息直接作为第一预警信息提供给所述用户;此外,还可以先基于所拉取的对象日志信息生成风险提示信息,该风险提示信息可以包括预计该对象存在什么类型、级别的风险,或是包括若问题严重,则需要运维人员加急处理等信息,然后将上述风险提示信息作为第一预警信息,提供至所述用户。在此实现方式中,第一预警信息的发出,有望借助用户,例如应用技术人员或运维人员的技术支持,及时地发现内存泄漏的问题所在,快速从问题源头解决危局,保障了Java系统运行的稳定性。
一种实现方式中,所述内存管理还包括若所述占用空间总量大于或等于第二占用空间预警阈值,拒绝所述内存保护区内一个或多个所述预警对象的内存分配请求,其中,所述第二占用空间预警阈值大于或等于所述第一占用空间预警阈值。具体地,在实际应用中,为了更有效地减少内存泄漏、降低内存溢出的概率,还可以设置在所述占用空间总量满足第二占用空间预警阈值时,通过停止为疑似内存泄漏的高危对象分配新的内存的方法,来保护虚拟机中剩余内存的分配使用。在一种实现方式中,可以选择停止内存泄漏风险最高或较高的一个或多个预警对象的内存分配请求。在一种实现方式中,所述第二占用空间预警阈值可以大于或等于所述第一占用空间预警阈值。在一种实现方式中,可以在内存监管过程中设计单层、或是多层的预警机制,分别对应不同的预警阈值以满足不同级别的预警需要。进一步,一种实现方式中,所述内存管理还包括获取所述预警对象对应的第二预警信息;进而将该第二预警信息提供至用户。所述第二预警信息与第一预警信息的内容或形式相同或相似,在此不再赘述。
在此实现方式中,通过对当前内存保护区内的部分或全部预警对象停止分配新的内存空间的方法直接有效遏制了存在内存泄漏等高危风险的预警对象对内存空间的进一步消耗,避免不良内存占用的持续进行,从而对于当前剩余可用内存空间起到有效的保护作用。并且伴随着第二预警信息的发出,有望借助用户,例如应用技术人员或运维人员的技术支持,及时地发现内存泄漏的问题所在,快速从问题源头解决危局,保障了Java系统运行的稳定性。
在本申请实施例中,对占用所述虚拟机内存的对象进行内存数据分析,并基于内存数据分析的分析结果,确定预警对象,从而将预警对象移入在虚拟机内存中开辟的内存保护区,以实现在对该内存保护区内的预警对象的内存管理。通过本申请可以对现有的虚拟机,如JAVA虚拟机的内存占用情况进行有效监管,例如,及时确定存在内存泄漏风险的预警对象,并将其移入对应的内存保护区进行有效监控和预警,从而极大地减少了虚拟机内存溢出发生的概率,降低由于某个或某几个对象的内存泄漏给其他对象造成了运行中断的影响,避免了内存溢出给虚拟机正常运行带来的灾难性影响。
一种实现方式中,所述内存占用空间的增长趋势分析包括基于所述对象的内存占用空间增长率确定对应的增长趋势信息;接着,预警对象确定装置22可以基于所述对象的内存占用空间的增长趋势信息,确定预警对象。具体地,在此,所述增长趋势分析包括基于所述对象的内存占用空间增长率确定对应的增长趋势信息。一种实现方式中,可以基于单位时间内的内存占用空间的增长量确定所述内存占用空间增长率,例如,在T1时刻,所述对象占有内存空间的数值是M,到了T2时刻,该对象占有内存空间的数值变化为N,则可以确定,该对象在T1至T2这一段时间内的内存占用空间增长率为(N-M)/(T2-T1)。基于此可以确定出对应的增长趋势信息,即若数值越大,则增长斜率越高,说明该对象内存占用空间的消耗速度快,其为预警对象的机率就越高;反之若是数值下降,或是甚至为负值,则一般判定为正常对象。
一种实现方式中,预警对象确定装置22可以当对象的内存占用空间的增长趋势信息中对象的内存占用空间增长率持续大于预设的第一增长率阈值时,则确定所述对象为预警对象。在此,为了更加客观、准确地确定出所述需要特别监管的预警对象,可以计算多个时间段内所述对象的内存占用空间增长率,若是所述对象的内存占用空间增长率在连续的多个时间段内持续满足预设的第一增长率阈值,可以确定所述对象为预警对象。
一种实现方式中,虚拟机内存监管设备1还包括移出对象确定装置(未示出)和移出装置(未示出)。其中,移出对象确定装置可以基于所述内存保护区内所述预警对象的内存占用空间的增长趋势信息,确定内存占用空间增长率持续降低或空内存占用空间增长率低于预设的第二增长率阈值的所述预警对象为移出对象;接着,移出装置可以将所述移出对象移出所述内存保护区。本申请所述的虚拟机的内存监管可以是实时动态的过程,因为所述虚拟机中的对象其占用内存的状态可以在不断变化,例如,之前被移入保护区的预警对象可能因为及时有效地处理,其内存消耗异常得以解决。此时,对于已经不再具有内存泄漏风险的、或是风险降低的预警对象,可以将其及时移除所述内存保护区,从而有效地保持内存保护区内的管理工作的效率,防止所述内存保护区中由于不断接纳新的预警对象带来的相应管理工作的增加。
一种实现方式中,所述内存占用空间的数值分析包括:计算所述对象对应的内存占用空间;接着,预警对象确定装置22可以基于所述对象的内存占用空间,确定预警对象。在此,所述对象的内存占用空间的计算可以包括但不限于所述对象的内存占用大小、或内存占比等多种数值形式。
进一步,一种实现方式中,预警对象确定装置22可以基于所述对象的内存占用空间,对占用所述虚拟机内存的多个所述对象进行内存占用排序,再基于所述内存占用排序和预设的排序筛选条件,确定预警对象。一种实现方式中,可以基于各个所述对象的内存占用大小,或是内存占比大小对各个所述对象进行相应的内存占用排序,例如从大至小排序。进一步,可以同时结合预设的排序筛选条件,确定一个或多个预警对象,例如,所述预设的排序筛选条件可以是以内存占用大小,或是内存占比大小为TOPN的对象为所述预警对象,其中,N≥1,且为正整数;又如,所述预设的排序筛选条件可以是内存占用大小大于M,或是内存占比大小大于L%的一个或多个所述对象为所述预警对象。
一种实现方式中,所述内存占用空间的数值分析包括:计算所述对象对应的内存占用空间,所述内存占用空间的增长趋势分析包括:基于所述对象的内存占用空间增长率确定对应的增长趋势信息;其中,预警对象确定装置22可以基于所述对象的内存占用空间及内存占用空间的增长趋势信息确定预警对象。在此,可以将内存占用空间增长率持续满足预设的第一增长率阈值、且内存占用空间满足预设的排序筛选条件的一个或多个对象确定为预警对象。由此,通过不同内存分析方法的结合,可以准确地确定出高危的预警对象,从而保证了后续对于该预警对象的内存管理能够准确、有效地化解所述虚拟机中潜在的内存溢出隐患。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (25)
1.一种虚拟机内存监管方法,其中,所述方法包括:
通过守护进程获取虚拟机内存的占用空间总量;
对占用虚拟机内存的一个或多个对象进行内存数据分析,其中,若所述占用空间总量大于或等于第一占用空间预警阈值,对占用虚拟机内存的一个或多个对象进行内存数据分析;
基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;
将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。
2.根据权利要求1所述的方法,其中,所述内存管理包括:
获取所述预警对象对应的第一预警信息;
将所述第一预警信息提供至用户。
3.根据权利要求1所述的方法,其中,所述内存管理包括:
若所述占用空间总量大于或等于第二占用空间预警阈值,拒绝所述内存保护区内一个或多个预警对象的内存分配请求。
4.根据权利要求3所述的方法,其中,所述内存管理还包括:
获取所述预警对象对应的第二预警信息;
将所述第二预警信息提供至用户。
5.根据权利要求1所述的方法,其中,所述方法还包括:
获取占用所述虚拟机内存的对象的使用快照信息;
其中,对占用虚拟机内存的对象进行内存数据分析包括:
对占用虚拟机内存的对象的使用快照信息进行内存数据分析。
6.根据权利要求1至5中任一项所述的方法,其中,所述内存数据分析包括以下至少任一项:
内存占用空间的数值分析;
内存占用空间的增长趋势分析。
7.根据权利要求6所述的方法,其中,所述内存占用空间的增长趋势分析包括:基于对象的内存占用空间增长率确定对应的增长趋势信息;
其中,所述基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象包括:
基于对象的内存占用空间的增长趋势信息,确定预警对象。
8.根据权利要求7所述的方法,其中,所述基于对象的内存占用空间的增长趋势信息,确定预警对象包括:
若对象的内存占用空间的增长趋势信息中对象的内存占用空间增长率持续大于预设的第一增长率阈值,则确定所述对象为预警对象。
9.根据权利要求7所述的方法,其中,所述方法还包括:
基于所述内存保护区内预警对象的内存占用空间的增长趋势信息,确定内存占用空间增长率持续降低或内存占用空间增长率低于预设的第二增长率阈值的预警对象为移出对象;
将所述移出对象移出所述内存保护区。
10.根据权利要求6所述的方法,其中,所述内存占用空间的数值分析包括:计算对象对应的内存占用空间;
其中,所述基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象包括:
基于对象的内存占用空间,确定预警对象。
11.根据权利要求 10所述的方法,其中,所述基于对象的内存占用空间,确定预警对象包括:
基于对象的内存占用空间,对占用所述虚拟机内存的多个对象进行内存占用排序;
基于所述内存占用排序和预设的排序筛选条件,确定预警对象。
12.根据权利要求6所述的方法,其中,所述内存占用空间的数值分析包括:计算对象对应的内存占用空间,所述内存占用空间的增长趋势分析包括:基于对象的内存占用空间增长率确定对应的增长趋势信息;
其中,所述基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象包括:
基于对象的内存占用空间及内存占用空间的增长趋势信息确定预警对象。
13.一种虚拟机内存监管设备,其中,所述设备包括:
占用空间总量获取装置,用于通过守护进程获取虚拟机内存的占用空间总量;
内存数据分析装置,用于对占用虚拟机内存的一个或多个对象进行内存数据分析,其中,若所述占用空间总量大于或等于第一占用空间预警阈值,对占用虚拟机内存的一个或多个对象进行内存数据分析;
预警对象确定装置,用于基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;
移入装置,用于将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。
14.根据权利要求13所述的设备,其中,所述内存管理包括:
获取所述预警对象对应的第一预警信息;
将所述第一预警信息提供至用户。
15.根据权利要求13所述的设备,其中,所述内存管理包括:
若所述占用空间总量大于或等于第二占用空间预警阈值,拒绝所述内存保护区内一个或多个所述预警对象的内存分配请求。
16.根据权利要求15所述的设备,其中,所述内存管理还包括:
获取所述预警对象对应的第二预警信息;
将所述第二预警信息提供至用户。
17.根据权利要求13所述的设备,其中,所述设备还包括:
使用快照信息获取装置,用于获取占用所述虚拟机内存的对象的使用快照信息;
其中,所述内存数据分析装置用于:
对占用所述虚拟机内存的对象的使用快照信息进行内存数据分析。
18.根据权利要求13至17中任一项所述的设备,其中,所述内存数据分析包括以下至少任一项:
内存占用空间的数值分析;
内存占用空间的增长趋势分析。
19.根据权利要求18所述的设备,其中,所述内存占用空间的增长趋势分析包括:基于对象的内存占用空间增长率确定对应的增长趋势信息;
其中,所述预警对象确定装置用于:
基于所述对象的内存占用空间的增长趋势信息,确定预警对象。
20.根据权利要求19所述的设备,其中,所述预警对象确定装置用于:
若所述对象的内存占用空间的增长趋势信息中对象的内存占用空间增长率持续大于预设的第一增长率阈值,则确定所述对象为预警对象。
21.根据权利要求19所述的设备,其中,所述设备还包括:
移出对象确定装置,用于基于所述内存保护区内预警对象的内存占用空间的增长趋势信息,确定内存占用空间增长率持续降低或空内存占用空间增长率低于预设的第二增长率阈值的预警对象为移出对象;
移出装置,用于将所述移出对象移出所述内存保护区。
22.根据权利要求18所述的设备,其中,所述内存占用空间的数值分析包括:计算对象对应的内存占用空间;
其中,所述预警对象确定装置用于:
基于对象的内存占用空间,确定预警对象。
23.根据权利要求22所述的设备,其中,所述预警对象确定装置用于:
基于对象的内存占用空间,对占用所述虚拟机内存的多个所述对象进行内存占用排序;
基于所述内存占用排序和预设的排序筛选条件,确定预警对象。
24.根据权利要求18所述的设备,其中,所述内存占用空间的数值分析包括:计算对象对应的内存占用空间,所述内存占用空间的增长趋势分析包括:基于对象的内存占用空间增长率确定对应的增长趋势信息;
其中,所述预警对象确定装置用于:
基于对象的内存占用空间及内存占用空间的增长趋势信息确定预警对象。
25.一种虚拟机内存监管设备,其中,所述设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
通过守护进程获取虚拟机内存的占用空间总量;
对占用虚拟机内存的一个或多个对象进行内存数据分析,其中,若所述占用空间总量大于或等于第一占用空间预警阈值,对占用虚拟机内存的一个或多个对象进行内存数据分析;
基于所述内存数据分析的分析结果,在占用所述虚拟机内存的对象中确定预警对象;
将所述预警对象移入内存保护区以对所述预警对象进行内存管理,其中,所述内存保护区设置于所述虚拟机内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611029385.XA CN108073441B (zh) | 2016-11-14 | 2016-11-14 | 一种虚拟机内存监管方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611029385.XA CN108073441B (zh) | 2016-11-14 | 2016-11-14 | 一种虚拟机内存监管方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108073441A CN108073441A (zh) | 2018-05-25 |
CN108073441B true CN108073441B (zh) | 2022-05-10 |
Family
ID=62161320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611029385.XA Active CN108073441B (zh) | 2016-11-14 | 2016-11-14 | 一种虚拟机内存监管方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073441B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804289A (zh) * | 2018-06-04 | 2018-11-13 | 郑州云海信息技术有限公司 | 一种进程监控的方法、装置及计算机存储介质 |
CN110297691A (zh) * | 2019-07-03 | 2019-10-01 | 四川长虹电器股份有限公司 | 一种优化Android系统ART虚拟机内存管理的方法 |
CN110362451B (zh) * | 2019-07-17 | 2023-09-26 | 北京小米移动软件有限公司 | 一种监控方法、装置及介质 |
CN110569108B (zh) * | 2019-09-04 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 小游戏虚拟机执行环境的创建方法及相关产品 |
CN110704313B (zh) * | 2019-09-25 | 2023-07-25 | 北京宝兰德软件股份有限公司 | Java虚拟机内存泄漏检测方法及装置 |
CN111949377B (zh) * | 2020-08-25 | 2021-08-31 | 深圳市广通软件有限公司 | Web中间件的jvm参数优化方法、装置、服务器及存储介质 |
CN112906447A (zh) * | 2020-09-22 | 2021-06-04 | 西南石油大学 | 基于视频监控高危地的异常事件检测系统 |
CN112231066B (zh) * | 2020-10-29 | 2024-02-13 | 北京思特奇信息技术股份有限公司 | 一种基于jvm内存使用的优化处理方法及系统 |
CN113326072B (zh) * | 2021-05-24 | 2023-11-24 | 北京计算机技术及应用研究所 | 一种飞腾服务器平台下基于非易失内存的实时监控方法 |
CN113342604B (zh) * | 2021-06-07 | 2022-06-24 | 平安证券股份有限公司 | 内存使用率的检测方法、装置、终端及存储介质 |
CN113391882B (zh) * | 2021-06-28 | 2023-12-22 | 北京字节跳动网络技术有限公司 | 虚拟机内存管理方法、装置、存储介质及电子设备 |
CN113505042A (zh) * | 2021-07-28 | 2021-10-15 | 中国工商银行股份有限公司 | 服务器内存动态监控方法、装置、设备及存储介质 |
CN113672390A (zh) * | 2021-08-23 | 2021-11-19 | 杭州安恒信息技术股份有限公司 | 一种服务器内存回收方法、装置、设备及可读存储介质 |
CN115904864B (zh) * | 2022-11-10 | 2023-09-19 | 贝壳找房(北京)科技有限公司 | 内存溢出的监测方法、电子设备、介质及计算机程序产品 |
CN116010204A (zh) * | 2022-12-30 | 2023-04-25 | 千寻位置网络有限公司 | 程序内存的溢出预警方法及相关装置 |
CN116340102B (zh) * | 2023-03-28 | 2023-10-03 | 北京基调网络股份有限公司 | 一种内存溢出监测方法、装置、设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009211654A (ja) * | 2008-03-06 | 2009-09-17 | Nec Corp | メモリ管理装置、システム、方法、及び、プログラム |
CN101561775A (zh) * | 2009-05-12 | 2009-10-21 | 华为技术有限公司 | 内存监控方法和装置 |
CN101599048A (zh) * | 2009-07-01 | 2009-12-09 | 福建星网锐捷网络有限公司 | 一种内存监控的方法和装置 |
CN102279797A (zh) * | 2011-08-30 | 2011-12-14 | 深圳宝德科技集团股份有限公司 | 一种检测内存泄漏的方法及系统 |
CN102375947A (zh) * | 2010-08-16 | 2012-03-14 | 伊姆西公司 | 用于隔离计算环境的方法和系统 |
CN103049376A (zh) * | 2012-12-10 | 2013-04-17 | 北京小米科技有限责任公司 | 一种进程的内存溢出测试方法、装置及设备 |
CN103440161A (zh) * | 2013-08-15 | 2013-12-11 | 北京京东尚科信息技术有限公司 | 一种Java虚拟机内部对象监控方法、装置和系统 |
CN103714004A (zh) * | 2014-01-02 | 2014-04-09 | 金蝶软件(中国)有限公司 | Jvm在线内存泄露分析方法及系统 |
CN104182320A (zh) * | 2013-05-23 | 2014-12-03 | 联想(北京)有限公司 | 一种监控内存泄漏的方法及装置 |
CN105260294A (zh) * | 2015-11-16 | 2016-01-20 | 曙光信息产业(北京)有限公司 | 一种应用程序占用内存的监控方法及装置 |
CN105446871A (zh) * | 2014-08-26 | 2016-03-30 | 华为技术有限公司 | 一种资源泄漏检测方法、装置及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7552153B2 (en) * | 2004-12-28 | 2009-06-23 | Sap Ag | Virtual machine monitoring using shared memory |
US7434206B2 (en) * | 2005-03-10 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | Identifying memory leaks in computer systems |
US7895483B2 (en) * | 2007-05-25 | 2011-02-22 | International Business Machines Corporation | Software memory leak analysis using memory isolation |
CN101339533B (zh) * | 2007-07-04 | 2012-10-10 | 国际商业机器公司 | 基于分区的诊断Java系统的内存泄漏的方法及装置 |
US9588798B2 (en) * | 2013-02-28 | 2017-03-07 | Nec Corporation | Software safe shutdown system, software safe shutdown method, and program to prevent a problem caused by a system failure |
-
2016
- 2016-11-14 CN CN201611029385.XA patent/CN108073441B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009211654A (ja) * | 2008-03-06 | 2009-09-17 | Nec Corp | メモリ管理装置、システム、方法、及び、プログラム |
CN101561775A (zh) * | 2009-05-12 | 2009-10-21 | 华为技术有限公司 | 内存监控方法和装置 |
CN101599048A (zh) * | 2009-07-01 | 2009-12-09 | 福建星网锐捷网络有限公司 | 一种内存监控的方法和装置 |
CN102375947A (zh) * | 2010-08-16 | 2012-03-14 | 伊姆西公司 | 用于隔离计算环境的方法和系统 |
CN102279797A (zh) * | 2011-08-30 | 2011-12-14 | 深圳宝德科技集团股份有限公司 | 一种检测内存泄漏的方法及系统 |
CN103049376A (zh) * | 2012-12-10 | 2013-04-17 | 北京小米科技有限责任公司 | 一种进程的内存溢出测试方法、装置及设备 |
CN104182320A (zh) * | 2013-05-23 | 2014-12-03 | 联想(北京)有限公司 | 一种监控内存泄漏的方法及装置 |
CN103440161A (zh) * | 2013-08-15 | 2013-12-11 | 北京京东尚科信息技术有限公司 | 一种Java虚拟机内部对象监控方法、装置和系统 |
CN103714004A (zh) * | 2014-01-02 | 2014-04-09 | 金蝶软件(中国)有限公司 | Jvm在线内存泄露分析方法及系统 |
CN105446871A (zh) * | 2014-08-26 | 2016-03-30 | 华为技术有限公司 | 一种资源泄漏检测方法、装置及系统 |
CN105260294A (zh) * | 2015-11-16 | 2016-01-20 | 曙光信息产业(北京)有限公司 | 一种应用程序占用内存的监控方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种基于虚拟机的动态内存泄露检测方法;蔡志强 等;《计算机应用与软件》;20120915;第29卷(第9期);9-13,153 * |
Also Published As
Publication number | Publication date |
---|---|
CN108073441A (zh) | 2018-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073441B (zh) | 一种虚拟机内存监管方法与设备 | |
CN112346829B (zh) | 一种用于任务调度的方法及设备 | |
US7890712B2 (en) | Method, apparatus and program product for managing memory in a virtual computing system | |
US9495201B2 (en) | Management of bottlenecks in database systems | |
US10423462B2 (en) | Dynamic load balancing for data allocation to servers | |
CN111309644B (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
CN109739627B (zh) | 任务的调度方法、电子设备及介质 | |
CN106452818A (zh) | 一种资源调度的方法和系统 | |
CN111866045B (zh) | 信息处理方法及其装置、计算机系统及计算机可读介质 | |
TWI671708B (zh) | 一種流速控制方法及裝置 | |
US20190104081A1 (en) | Dynamic buffer allocation in similar infrastructures | |
CN111314158B (zh) | 大数据平台监控方法、装置及设备、介质 | |
CN103902364A (zh) | 一种物理资源管理方法、装置及智能终端设备 | |
CN112100034A (zh) | 一种业务监控方法和装置 | |
CN114780240A (zh) | 一种基于gpu分时复用的工作流调度方法、设备及存储介质 | |
CN111240936A (zh) | 一种数据完整性校验的方法及设备 | |
CN117519929A (zh) | 实例的调度方法、装置、存储介质及电子设备 | |
CN116127494A (zh) | 用户并发访问的控制方法及相关装置 | |
CN110837428B (zh) | 存储设备管理方法及装置 | |
CN108616583B (zh) | 一种基于计算机云的存储空间分配方法 | |
CN115794553A (zh) | 一种内存泄露检测方法、装置、设备及介质 | |
US9298576B2 (en) | Collecting processor usage statistics | |
US20130247063A1 (en) | Computing device and method for managing memory of virtual machines | |
CN115442262A (zh) | 一种资源评估方法、装置、电子设备及存储介质 | |
CN114741218A (zh) | 操作系统的异常指标提取方法、装置、设备、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230613 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |