CN102955719A - 疑似内存泄漏的确定方法及装置 - Google Patents

疑似内存泄漏的确定方法及装置 Download PDF

Info

Publication number
CN102955719A
CN102955719A CN2011102541836A CN201110254183A CN102955719A CN 102955719 A CN102955719 A CN 102955719A CN 2011102541836 A CN2011102541836 A CN 2011102541836A CN 201110254183 A CN201110254183 A CN 201110254183A CN 102955719 A CN102955719 A CN 102955719A
Authority
CN
China
Prior art keywords
handling capacity
use amount
internal memory
application server
preset range
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.)
Granted
Application number
CN2011102541836A
Other languages
English (en)
Other versions
CN102955719B (zh
Inventor
吴海珊
杨杰
余涛
邱杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201110254183.6A priority Critical patent/CN102955719B/zh
Priority to US13/596,095 priority patent/US8977908B2/en
Publication of CN102955719A publication Critical patent/CN102955719A/zh
Application granted granted Critical
Publication of CN102955719B publication Critical patent/CN102955719B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提出了一种用于探测疑似内存泄漏的方法,包括:采样应用服务器的吞吐量以及内存使用量;根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内;响应于所述吞吐量的持续下降以及所述内存使用量稳定在预定范围内,确定所述服务器疑似发生内存泄漏。采用本发明的方案可以使得管理员从人工辨认可疑服务器的工作中解脱出来,可在服务器在运行时识别可疑服务器并进一步判断是否实际发生了内存泄漏。

Description

疑似内存泄漏的确定方法及装置
技术领域
本发明涉及对疑似内存泄漏进行确定的技术领域,特别涉及一种改善了的探测内存泄漏的方法和系统。
背景技术
内存泄漏是服务器会出现的一种典型问题,会导致服务器可用内存和性能持续下降,最终将导致服务器内存不足宕机,不能响应任何请求,其危害相当严重。现有技术中存在多种内存泄漏的分析方法,但都是用于对疑似发生内存泄漏的服务器进行分析以确定是否实际发生内存泄漏并且分析其根本原因,即,现有的解决方案是基于内存泄漏已经发生或者已经疑似发生内存泄漏的前提下进行的。
作为通常采用的方式,疑似发生内存泄漏的服务器是在发生宕机时管理员根据分析日志人为辨认出来的,然后应用现有技术中的技术方案进行内存泄漏的分析。但这种方式过于依赖于管理员的经验,特别的是,对于大规模部署的应用服务器,通过分析日志挑选出可疑的应用服务器,会非常的耗时。
此外,由于现有的内存泄漏的分析方法运行开销很高(high runtimeoverhead),而且应用服务器中有大量的对象以及对象间之复杂关系,导致内存泄漏问题的探测和分析均比较复杂,无法在运行(runtime)的情况进行疑似内存泄漏的探测。
由此可见,迫切的需要一种使得管理员从人工辨认可疑服务器的工作中解脱出来,可在服务器在运行时识别可疑服务器的技术方案,现有的技术仍然存在着改进的空间。
发明内容
根据本发明的第一个方面,提供了一种确定疑似内存泄漏的方法,包括:采样应用服务器的吞吐量以及内存使用量;根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内;响应于所述吞吐量的持续下降以及所述内存使用量稳定在所述预定范围内,确定所述应用服务器疑似发生内存泄漏。
根据本发明的第二个方面,提供了一种确定疑似内存泄漏的装置,包括:采样部件,配置为采样应用服务器的吞吐量以及内存使用量;监控部件,配置为根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内;确定部件,配置为响应于所述吞吐量的持续下降以及所述内存使用量稳定在所述预定范围内,确定所述应用服务器疑似发生内存泄漏。
采用本申请的技术方案,使得管理员从人工辨认可疑服务器的工作中解脱出来,可在服务器在运行时识别可疑服务器是否发生了内存泄漏。
附图说明
所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性的实施例的详细说明可更好地理解发明本身以及其优选使用模式、目标、特征以及优点,在附图中:
图1示出了用来实现本发明实施方式的示例性计算系统。
图2示出了本申请的探测疑似内存泄漏方法流程图。
图3A示出了未发生内存泄漏时的示意图。
图3B示出了发生内存泄漏时的示意图。
图4示出图2步骤202监控吞吐量的持续下降的一个实施例。
图5示出图2中步骤202监控内存使用量稳定在预定范围的一个实施例。
图6示出了疑似内存泄漏探测装置的结构示意图。
图7示出了一个实施例中需要进行疑似内存泄漏探测的系统框图。
具体实施例
所属技术领域的技术人员知道,本发明可以体现为系统、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质,计算机可读存储介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质、或前述各项的任何适当的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或前述各项的任何适当的组合。在本文语境中,计算机可读存储介质可以是任何含有或存储供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的有形介质。
计算机可读信号介质可以包括例如在基带中或作为载波的一部分传播的带有计算机可读程序代码的数据信号。这样一种传播信号可以采取任何适当的形式,包括-但不限于-电磁的、光的或其任何适当的组合。计算机可读信号介质可以是不同于计算机可读存储介质的、可以传达、传播或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的任何一种计算机可读介质。
包含在计算机可读介质中的程序代码可以采用任何适当的介质传输,包括-但不限于-无线、有线、光缆、射频等等、或上述各项的任何适当的组合。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
现参看图1,示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
图2示出了本申请的探测内存泄漏方法流程图,包括:
步骤201,采样应用服务器的吞吐量以及内存使用量。
其中,吞吐量信息是每个应用服务器单位时间内能够服务的请求数量,例如,每秒钟服务的请求数。内存使用信息是该应用服务器内存的整体消耗或占用的情况,例如内存占用百分比信息,可用内存数量信息等。在后续的实施例中,均以内存占用百分比进行说明,但所属领域技术人员能够想到其它类型的内存应用信息同样适用这些实施例。可以周期或非周期的方式进行上述信息的收集。
在一个实施例中,按照控制流量的周期进行所述采样,所述控制流量是根据所述内存使用量控制所述应用服务器的吞吐量,使得所述内存使用量不超过目标内存使用量。在一个实施例中,可应用流量控制器来控制流量,流量控制器以及如何控制流量是该领域的公知技术,在此不作赘述。在另一个实施例中,还可以在进行垃圾收集(Garbage Collection)之后收集上述信息,以提高所收集信息精确度。
步骤202,根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内。
参看图3A,是未发生内存泄漏时的正常情况下,内存占用百分比,以及吞吐量的示意图。在流量控制器的作用下,内存占用百分比稳定在目标值附近,而该应用服务器单位时间所处理的请求也是稳定的,具有稳定的吞吐量。
参看图3B,是发生内存泄漏时的示意图,随着未被释放的内存的增加,应用服务器的吞吐量会持续下降,甚至最终会下降为零。而越来越多的应用服务器被用来服务(host)发生内存泄漏的应用。因此,在一个实施方式中,吞吐量的持续下降是判断发生内存泄漏的一个依据。此外,还需判断内存占用的百分比是否维持在一定范围之内,原因在于,发生了内存泄漏时内存会越来越不够用,因此,在该实施方式中内存占用百分比通常会维持在较高范围内是判断发生内存泄漏的另一个依据。据此,可排除因流量控制器的故障、或者对应用服务器的请求速率降低导致吞吐量降低时内存占用百分比的不再预定范围之内等情形,而在该些情形下虽然会出现吞吐量的持续降低,但并不是内存泄漏引起的。
此外,持续下降的含义并要求严格的持续下降,有时会出现短暂的波动,但仍可认为是持续下降。而对短暂波动的容许,则可根据所属领域技术人员对疑似发生内存泄漏的要求而定。
接下来继续说明图2中的步骤203,在该步骤中,响应于所述吞吐量的持续下降以及所述内存使用量稳定在所述预定范围内,确定所述服务器疑似发生内存泄漏。
可针对单个或一组应用服务器进行内存泄漏的探测。在针对一组服务器进行探测时,该组应用服务器可提供相同、相似或者不同的应用。
在一个改进的实施例中,所述一组应用服务器是运行着相同或相似应用的簇(cluster),通常内存泄漏的发生与所部署的应用有关,故针对簇进行内存泄漏进行检测,可以提高判断的准确度。例如,可以响应于计数值超过50%簇大小,将所述计数置零,给出该簇中的哪些应用服务器疑似发生内存泄漏的警告。
在一个实施例中,在步骤203之后,还可进一步判断疑似内存泄漏的应用服务器是否实际发生内存泄漏。当确定了疑似发生内存泄漏的应用服务器,可采用任一种现有的方式进行是否实际发生内存泄漏的进一步确认。现有技术中并不缺乏对特定应用服务器进行内存泄漏服务器进行检测方法。例如已公开的美国专利US 7434206,通过分析内存中的对象(object)分配和释放的特性,获取是否存在内存泄露的结论。或者已经公开的美国专利US 7870170,通过对内存中存储的对象特性进行分析,确定是否有内存泄露。然而,由于这些方法都不适用于在运行时(runtime)探测疑似发生内存泄漏的服务器,而采用本申请之技术方案,可在运行时找到疑似出现内存泄漏的应用服务器,以供进一步的分析和判断。
图4示出了图2中步骤202中监控吞吐量是否持续下降的一个实施例,包括:
步骤401,计算多个时间窗口中每个时间窗口期间所述吞吐量的统计值。以预定步长进行滑动以计算到多个时间窗口的吞吐量的统计值,所属领域技术人员可根据具体情况设定步长,既可以大于也可小于窗口的大小,根据步长的取值不同,相邻的窗口间可以重叠或者具有间隔。
根据大小为N的窗口内的吞吐量信息计算该窗口内吞吐量的统计值。窗口内的吞吐量信息表示一时间段内的吞吐量信息,窗口的大小N即该时间段的大小。较大的N可以提高探测的准确度,较小的N则可以提高探测的灵活度,所属领域技术人员可以根据具体情况对N的取值进行设定。在一个实施例中,窗口的大小为100个时钟周期。
在该窗口期间,共有多个图2中步骤201所收集的吞吐量信息,据此计算吞吐量的统计值。所述吞吐量的统计值选自以下几种之一:所述窗口内的最小吞吐量、最大吞吐量或吞吐量平均值。在一个实施例中,用minRate(i)代表第i个窗口内的最小吞吐量。
步骤402,根据所述统计值的下降趋势,确定监控到所述吞吐量的持续下降。所述监控到统计值的下降趋势是监控到至少一次两个以上相邻时间窗口统计值的依次降低。在一个实施例中,如果minRate(i)>=minRate(i+1),则可认为吞吐量是下降的。作为替代的方式,还可以根据minRate(i)>=minRate(i+1)的次数达到预设的阈值来确定是否出现持续下降,这可适用于吞吐量临时反弹时的情形。
图5示出了图2中步骤202中监控内存使用量是否稳定在所述预定范围之内的一个实施例,同样,也可采用窗口的方式来进行检测,主要包括:
步骤501,判断一时间窗口期间的内存使用量介于所述预定范围之内的情况。可以预定步长滑动所述时间窗口以进行所述内存使用量稳定在预定范围之内的实时监控。所属领域技术人员可根据具体情况设定步长,既可以大于也可小于窗口的大小,根据步长的取值不同,相邻的窗口间可以重叠或者具有间隔。该窗口的大小M的取值类似于前述窗口的取值,既可以与前述窗口相同,也可不同。该预定范围可以内存占用目标值周围的一个区间,在一个实施例中,如内存占用目标值为80%,则可设置该预定范围为对称的区间75%~85%,或者可以是非对称的区间75%~88%。显然,所属领域技术人员可以根据实际情况的需要对内存占用目标以及相应的预定范围进行调整。
步骤502,响应于所述时间窗口中介于所述预定范围的内存使用量的数量指标超过预定阈值,确定所述窗口中的内存使用量稳定在预定范围。当该数量指标可以是所述滑动窗口中介于预定范围的内存使用量的数目,此时,所述预定阈值是一个数目,例如在一个实施例中取值为90;该数量指标也可体现为一个相对的比例,即,介于预定范围的内存使用量的数目占该窗口期间所采样的全部内存使用量的比例,此时所述预定阈值是一个预定的比例值,例如,在一个实施例中取值为95%。
采样部件,配置为采样应用服务器的吞吐量以及内存使用量;
监控部件,配置为根据所采样的吞吐量监控到所述吞吐量的持续下降以及根据所采样的内存使用量监控到所述内存使用量稳定在预定范围内;
确定部件,配置为确定所述服务器疑似发生内存泄漏。
现在参看图6,示出了本申请的内存泄漏探测装置的结构示意图,用于探测疑似发生内存泄漏的应用服务器,包括:
采样部件601,配置为采样应用服务器的吞吐量信息以及内存应用信息。在一个实施例中,可以自流控制器(Flow Controller)获取吞吐量信息以及内存占用百分比。可在流量控制器的每个控制周期收集所述吞吐量信息以及内存占用百分比信息。在另一个实施例中,还可以在进行垃圾收集(Garbage Collection)之后收集上述信息,可以使的信息收集更加精确。
监控部件602,配置为根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内。该监控部件既可以位于应用服务器中,用于通知管理代理特的所述应用服务器的内存异常。该监控部件还可以位于代理服务器中,当位于代理服务器中时,每个应用服务器将其内存应用信息以及吞吐量信息发送至位于代理服务器中的采样部件。
确定部件603,配置为响应于监控到所述吞吐量的持续下降以及所述内存使用量稳定在预定范围内,确定所述服务器疑似发生内存泄漏。
在一个实施方式中,图6中监控部件包括:计算统计值部件,配置为计算多个时间窗口中每个时间窗口期间所述吞吐量的统计值;判断下降部件,配置为根据所述统计值的下降趋势,确定监控到所述吞吐量的持续下降。
在一个改进的实施例中,所述统计值的下降趋势是监控到至少一次两个以上相邻时间窗口统计值的依次降低。
在一个改进的实施例中,所述吞吐量的统计值选自以下几种之一:所述时间窗口内的最小吞吐量、最大吞吐量或吞吐量平均值。
在一个实施方式中,图6中监控部件包括:比较范围部件,配置为判断一时间窗口期间的内存使用量介于所述预定范围之内的情况;判断稳定部件,配置为响应于所述时间窗口中介于所述预定范围内的内存使用量的数目超过预定阈值,确定所述窗口中的内存使用量稳定在预定范围。
在一个改进的实施例中,还包括配置为按照控制流量的周期进行所述采样的部件,所述控制流量是根据所述内存使用量控制所述应用服务器的吞吐量,使得所述内存使用量不超过目标内存使用量。
在一个改进的实施例中,还包括配置为判断所述疑似内存泄漏的应用服务器是否实际发生内存泄漏的部件。
在一个改进的实施例中,还包括配置为响应于所述疑似内存泄漏的应用服务器的数量超过预定值,判断所述疑似内存泄漏的应用服务器是否实际发生内存泄漏的部件。
图7示出了一个具体实施例中可以采用本申请前述之技术方案进行内存泄漏探测系统框图,包括代理层(Proxy Tier)和应用服务器层(ApplicationServer Tier),其中的服务器可采用虚拟机(VM),例如,Java虚拟机(JVM)或物理计算机的形式。在一个实施方式中,可以在所述应用服务层中定义至少一个运行着相同或相似应用簇(cluster),或者任意确定一组应用服务器进行内存泄漏的探测。
代理服务器是介于用户和应用服务器之间的服务器,用户向代理服务器发出请求(Request),由代理服务器将其转发至应用服务器,并将应用服务器的处理结果返回给用户。
为了避免应用服务器的过载,可采用流量控制器(flow controller)对服务器的吞吐量进行控制,流量控制器是一种现有技术中通常采用的功能单元,用于根据被控服务器的内存使用量,控制被控服务器的吞吐量,以确保内存占用百分比不超过目标内存使用量,以达到最大化使用有效资源的目的,由于流量控制器属于现有技术,在此不作赘述。
图1至图6所示的方法及系统中的各个步骤和部件,可应用在图7所示的系统中,本领域技术人员可以根据实际需要将各个步骤或各个部件在代理层(Proxy Tier)和应用服务器层(Application Server Tier)之间进行布置。例如,在一个实施方式中,可将所有的步骤和部件均在每个应用服务器上实现,该探测步骤或部件位于应用服务器中,用于通知管理代理特的所述应用服务器的内存异常。而在另一个实施例中,该探测部件还可以位于代理服务器中,当位于代理服务器中时,每个应用服务器将其内存应用信息以及吞吐量信息发送至位于代理服务器中的收集部件。
应指出的是,以上描述仅为示例,而不是对本发明的限制。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (16)

1.一种确定疑似内存泄漏的方法,包括:
采样应用服务器的吞吐量以及内存使用量;
根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内;
响应于所述吞吐量的持续下降以及所述内存使用量稳定在所述预定范围内,确定所述应用服务器疑似发生内存泄漏。
2.如权利要求1所述的方法,其特征在于,所述根据所采样的吞吐量监控所述吞吐量是否持续下降包括:
计算多个时间窗口中每个时间窗口期间所述吞吐量的统计值;
根据所述统计值的下降趋势,确定所述吞吐量的持续下降。
3.如权利要求2所述的方法,其特征在于,所述统计值的下降趋势是至少一次两个以上相邻时间窗口统计值的依次降低。
4.如权利要求2所述的方法,其特征在于,所述吞吐量的统计值选自以下之一:所述时间窗口内的最小吞吐量、最大吞吐量或吞吐量平均值。
5.如权利要求1或2所述的任何一个方法,其特征在于,所述根据所采样的内存使用量监控内存使用量是否稳定在所述预定范围内包括:
判断一时间窗口期间的内存使用量介于所述预定范围之内的情况;
响应于所述时间窗口中介于所述预定范围的内存使用量的数量指标超过预定阈值,确定所述窗口中的内存使用量是稳定在预定范围。
6.如权利要求1所述的方法,其特征在于:按照控制流量的周期进行所述采样。
7.如权利要求1所述的方法,还包括:
判断所述疑似内存泄漏的应用服务器是否实际发生内存泄漏。
8.如权利要求1所述的方法,包括:
响应于所述疑似内存泄漏的应用服务器的数量超过预定值,判断所述疑似内存泄漏的应用服务器是否实际发生内存泄漏。
9.一种确定疑似内存泄漏的装置,包括:
采样部件,配置为采样应用服务器的吞吐量以及内存使用量;
监控部件,配置为根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内;
确定部件,配置为响应于所述吞吐量的持续下降以及所述内存使用量稳定在所述预定范围内,确定所述应用服务器疑似发生内存泄漏。
10.如权利要求9所述的装置,其特征在于,所述监控部件包括:
计算统计值部件,配置为计算多个时间窗口中每个时间窗口期间所述吞吐量的统计值;
判断下降部件,配置为根据所述统计值的下降趋势,确定所述吞吐量的持续下降。
11.如权利要求10所述的装置,其特征在于,所述统计值的下降趋势是至少一次两个以上相邻时间窗口统计值的依次降低。
12.如权利要求10所述的装置,其特征在于,所述吞吐量的统计值选自以下几种之一:所述时间窗口内的最小吞吐量、最大吞吐量或吞吐量平均值。
13.如权利要求9或10所述的任何一个装置,其特征在于,所述监控部件包括:
比较范围部件,配置为判断一时间窗口期间的内存使用量介于所述预定范围内的情况;
判断稳定部件,配置为响应所述时间窗口中介于所述预定范围的内存使用量的数量指标超过预定阈值,确定所述窗口中的内存使用量稳定在预定范围。
14.如权利要求9所述的装置,其特征在于:所述采样部件是按照控制流量的周期进行所述采样。
15.如权利要求9所述的装置,还包括:
配置为判断所述疑似内存泄漏的应用服务器是否实际发生内存泄漏的部件。
16.如权利要求9所述的装置,包括:
配置为响应于所述疑似内存泄漏的应用服务器的数量超过预定值,判断所述疑似内存泄漏的应用服务器是否实际发生内存泄漏的部件。
CN201110254183.6A 2011-08-31 2011-08-31 疑似内存泄漏的确定方法及装置 Expired - Fee Related CN102955719B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110254183.6A CN102955719B (zh) 2011-08-31 2011-08-31 疑似内存泄漏的确定方法及装置
US13/596,095 US8977908B2 (en) 2011-08-31 2012-08-28 Method and apparatus for detecting a suspect memory leak

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110254183.6A CN102955719B (zh) 2011-08-31 2011-08-31 疑似内存泄漏的确定方法及装置

Publications (2)

Publication Number Publication Date
CN102955719A true CN102955719A (zh) 2013-03-06
CN102955719B CN102955719B (zh) 2016-06-22

Family

ID=47745449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110254183.6A Expired - Fee Related CN102955719B (zh) 2011-08-31 2011-08-31 疑似内存泄漏的确定方法及装置

Country Status (2)

Country Link
US (1) US8977908B2 (zh)
CN (1) CN102955719B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289472B2 (en) 2014-08-26 2019-05-14 Huawei Technologies Co., Ltd. Resource leak detection method, apparatus, and system
CN110569203A (zh) * 2019-08-09 2019-12-13 华为技术有限公司 一种输入控制方法、装置及存储设备
CN113381895A (zh) * 2021-06-16 2021-09-10 杭州迪普科技股份有限公司 网络故障的检测方法及装置
CN113434364A (zh) * 2021-06-25 2021-09-24 青岛海尔科技有限公司 屏端设备内存检测方法、装置、存储介质及电子装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014078175A (ja) * 2012-10-11 2014-05-01 Canon Inc 情報処理装置、その制御方法、及びプログラム
US9282014B2 (en) * 2013-01-23 2016-03-08 International Business Machines Corporation Server restart management via stability time
US9317393B2 (en) 2013-06-13 2016-04-19 Oracle International Corporation Memory leak detection using transient workload detection and clustering
US9336138B2 (en) * 2013-08-30 2016-05-10 Verizon Patent And Licensing Inc. Method and apparatus for implementing garbage collection within a computing environment
JP6693308B2 (ja) * 2016-07-05 2020-05-13 富士通株式会社 負荷推定プログラム、負荷推定方法及び負荷推定装置
CN106354627A (zh) * 2016-07-21 2017-01-25 努比亚技术有限公司 一种应用程序内存泄漏的检测方法及系统
KR102536266B1 (ko) * 2018-08-02 2023-05-25 삼성전자주식회사 메모리 누수 검출 방법 및 그 전자 장치
US11269748B2 (en) * 2020-04-22 2022-03-08 Microsoft Technology Licensing, Llc Diagnosing and mitigating memory leak in computing nodes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793161B2 (en) * 2007-05-29 2010-09-07 International Business Machines Corporation Method and apparatus to anticipate memory exhaustion in an open services gateway initiative environment

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100420266B1 (ko) * 2001-10-23 2004-03-02 한국전자통신연구원 클러스터 컴퓨터 시스템의 소프트웨어 가용도 개선 방법및 그 장치
WO2003073291A1 (en) * 2002-02-21 2003-09-04 Bea Systems, Inc. System and method for dynamic activation of enterprise java beans
US7293263B2 (en) 2002-12-20 2007-11-06 Bea Systems, Inc. System and method for memory leak detection in a virtual machine environment
US7472144B2 (en) * 2003-07-28 2008-12-30 International Business Machines Corporation Method and system for resolving memory leaks and releasing obsolete resources from user session data
US7577943B2 (en) 2003-10-24 2009-08-18 Microsoft Corporation Statistical memory leak detection
US7496615B2 (en) 2004-03-11 2009-02-24 International Business Machines Corporation Method, system and article for detecting critical memory leaks causing out-of-memory errors in Java software
US7254750B1 (en) * 2004-03-30 2007-08-07 Unisys Corporation Health trend analysis method on utilization of network resources
US7434206B2 (en) 2005-03-10 2008-10-07 Hewlett-Packard Development Company, L.P. Identifying memory leaks in computer systems
US7870170B2 (en) 2005-05-03 2011-01-11 International Business Machines Corporation Method and apparatus for determining leaks in a Java heap
US7496795B2 (en) 2005-06-02 2009-02-24 International Business Machines Corporation Method, system, and computer program product for light weight memory leak detection
US8229979B2 (en) * 2006-04-28 2012-07-24 Sap Ag Method and system for inspecting memory leaks
US7734666B2 (en) * 2006-04-28 2010-06-08 Sap Ag Method and system for inspecting memory leaks and analyzing contents of garbage collection files
US7870358B2 (en) 2007-03-07 2011-01-11 Lsi Corporation Zero-penalty RAID controller memory leak detection and isolation method and system utilizing sequence numbers
US7895483B2 (en) * 2007-05-25 2011-02-22 International Business Machines Corporation Software memory leak analysis using memory isolation
CA2768220A1 (en) * 2009-07-15 2011-01-20 Rockstar Bidco, LP Method and apparatus for telecommunications network performance anomaly events detection and notification
US9274946B2 (en) 2009-12-30 2016-03-01 International Business Machines Corporation Pre-leak detection scan to identify non-pointer data to be excluded from a leak detection scan

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793161B2 (en) * 2007-05-29 2010-09-07 International Business Machines Corporation Method and apparatus to anticipate memory exhaustion in an open services gateway initiative environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YAN TANG,QI GAO,FENG QIN: "LeakSurvivor: Towards Safely Tolerating Memory Leaks for Garbage-Collected Languages", 《2008 USENIX ANNUAL TECHNICAL CONFERENCE》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289472B2 (en) 2014-08-26 2019-05-14 Huawei Technologies Co., Ltd. Resource leak detection method, apparatus, and system
CN110569203A (zh) * 2019-08-09 2019-12-13 华为技术有限公司 一种输入控制方法、装置及存储设备
CN113381895A (zh) * 2021-06-16 2021-09-10 杭州迪普科技股份有限公司 网络故障的检测方法及装置
CN113381895B (zh) * 2021-06-16 2022-06-24 杭州迪普科技股份有限公司 网络故障的检测方法及装置
CN113434364A (zh) * 2021-06-25 2021-09-24 青岛海尔科技有限公司 屏端设备内存检测方法、装置、存储介质及电子装置
CN113434364B (zh) * 2021-06-25 2024-03-22 青岛海尔科技有限公司 屏端设备内存检测方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
US8977908B2 (en) 2015-03-10
CN102955719B (zh) 2016-06-22
US20130055034A1 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
CN102955719A (zh) 疑似内存泄漏的确定方法及装置
US10229129B2 (en) Method and apparatus for managing time series database
CN108667856B (zh) 一种网络异常检测方法、装置、设备及存储介质
US9323652B2 (en) Iterative bottleneck detector for executing applications
US8682612B2 (en) Trend analysis methods and system for incipient fault prediction
CN110602105B (zh) 一种基于k-means的大规模并行化网络入侵检测方法
CN113159615A (zh) 一种工业控制系统信息安全风险智能测定系统及方法
US20120174231A1 (en) Assessing System Performance Impact of Security Attacks
CN108809760A (zh) 数据采样系统中采样周期的控制方法和装置
CN108664603A (zh) 一种修复时序数据的异常聚合值的方法及装置
CN107402851A (zh) 一种数据恢复控制方法及装置
US10359936B2 (en) Selecting a primary storage device
CN114726758A (zh) 工业网络异常确定方法、装置、计算机设备及存储介质
KR102158100B1 (ko) 이상 감지를 이용한 모니터링 자동화 방법 및 장치
CN108153654A (zh) 一种日志收集方法及装置
CN106899436A (zh) 一种云平台故障预测诊断系统
CN111241155B (zh) 时序数据异常检测方法、装置、设备及存储介质
KR102089450B1 (ko) 데이터이주장치 및 그 동작 방법
CN111770053A (zh) 一种基于改进的聚类与自相似性的恶意程序检测方法
KR102343139B1 (ko) 어노멀리 검출방법 및 그 장치
CN115686756A (zh) 虚拟机迁移方法、装置、存储介质以及电子设备
CN107566187B (zh) 一种sla违例监测方法、装置和系统
CN117390898B (zh) 一种医疗线缆可靠性预测方法及系统
KR102656541B1 (ko) 로그 타입별 분산 방식을 활용한 대용량 로그 데이터 분석 장치, 방법 및 프로그램
US8943177B1 (en) Modifying a computer program configuration based on variable-bin histograms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160622

Termination date: 20200831