《疑似内存泄漏的确定方法及装置.pdf》由会员分享,可在线阅读,更多相关《疑似内存泄漏的确定方法及装置.pdf(14页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102955719 A (43)申请公布日 2013.03.06 C N 1 0 2 9 5 5 7 1 9 A *CN102955719A* (21)申请号 201110254183.6 (22)申请日 2011.08.31 G06F 11/07(2006.01) G06F 12/02(2006.01) (71)申请人国际商业机器公司 地址美国纽约 (72)发明人吴海珊 杨杰 余涛 邱杰 (74)专利代理机构北京市中咨律师事务所 11247 代理人张亚非 于静 (54) 发明名称 疑似内存泄漏的确定方法及装置 (57) 摘要 本发明提出了一种用于探测疑似内存泄漏的 。
2、方法,包括:采样应用服务器的吞吐量以及内存 使用量;根据所采样的吞吐量监控所述吞吐量是 否持续下降以及根据所采样的内存使用量监控所 述内存使用量是否稳定在预定范围内;响应于所 述吞吐量的持续下降以及所述内存使用量稳定在 预定范围内,确定所述服务器疑似发生内存泄漏。 采用本发明的方案可以使得管理员从人工辨认可 疑服务器的工作中解脱出来,可在服务器在运行 时识别可疑服务器并进一步判断是否实际发生了 内存泄漏。 (51)Int.Cl. 权利要求书2页 说明书7页 附图4页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 7 页 附图 4 页 1/2页 2 1.。
3、一种确定疑似内存泄漏的方法,包括: 采样应用服务器的吞吐量以及内存使用量; 根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监 控所述内存使用量是否稳定在预定范围内; 响应于所述吞吐量的持续下降以及所述内存使用量稳定在所述预定范围内,确定所述 应用服务器疑似发生内存泄漏。 2.如权利要求1所述的方法,其特征在于,所述根据所采样的吞吐量监控所述吞吐量 是否持续下降包括: 计算多个时间窗口中每个时间窗口期间所述吞吐量的统计值; 根据所述统计值的下降趋势,确定所述吞吐量的持续下降。 3.如权利要求2所述的方法,其特征在于,所述统计值的下降趋势是至少一次两个以 上相邻时间窗口统计。
4、值的依次降低。 4.如权利要求2所述的方法,其特征在于,所述吞吐量的统计值选自以下之一:所述时 间窗口内的最小吞吐量、最大吞吐量或吞吐量平均值。 5.如权利要求1或2所述的任何一个方法,其特征在于,所述根据所采样的内存使用量 监控内存使用量是否稳定在所述预定范围内包括: 判断一时间窗口期间的内存使用量介于所述预定范围之内的情况; 响应于所述时间窗口中介于所述预定范围的内存使用量的数量指标超过预定阈值,确 定所述窗口中的内存使用量是稳定在预定范围。 6.如权利要求1所述的方法,其特征在于:按照控制流量的周期进行所述采样。 7.如权利要求1所述的方法,还包括: 判断所述疑似内存泄漏的应用服务器是否。
5、实际发生内存泄漏。 8.如权利要求1所述的方法,包括: 响应于所述疑似内存泄漏的应用服务器的数量超过预定值,判断所述疑似内存泄漏的 应用服务器是否实际发生内存泄漏。 9.一种确定疑似内存泄漏的装置,包括: 采样部件,配置为采样应用服务器的吞吐量以及内存使用量; 监控部件,配置为根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样 的内存使用量监控所述内存使用量是否稳定在预定范围内; 确定部件,配置为响应于所述吞吐量的持续下降以及所述内存使用量稳定在所述预定 范围内,确定所述应用服务器疑似发生内存泄漏。 10.如权利要求9所述的装置,其特征在于,所述监控部件包括: 计算统计值部件,配置为计。
6、算多个时间窗口中每个时间窗口期间所述吞吐量的统计 值; 判断下降部件,配置为根据所述统计值的下降趋势,确定所述吞吐量的持续下降。 11.如权利要求10所述的装置,其特征在于,所述统计值的下降趋势是至少一次两个 以上相邻时间窗口统计值的依次降低。 12.如权利要求10所述的装置,其特征在于,所述吞吐量的统计值选自以下几种之一: 所述时间窗口内的最小吞吐量、最大吞吐量或吞吐量平均值。 权 利 要 求 书CN 102955719 A 2/2页 3 13.如权利要求9或10所述的任何一个装置,其特征在于,所述监控部件包括: 比较范围部件,配置为判断一时间窗口期间的内存使用量介于所述预定范围内的情 况;。
7、 判断稳定部件,配置为响应所述时间窗口中介于所述预定范围的内存使用量的数量指 标超过预定阈值,确定所述窗口中的内存使用量稳定在预定范围。 14.如权利要求9所述的装置,其特征在于:所述采样部件是按照控制流量的周期进行 所述采样。 15.如权利要求9所述的装置,还包括: 配置为判断所述疑似内存泄漏的应用服务器是否实际发生内存泄漏的部件。 16.如权利要求9所述的装置,包括: 配置为响应于所述疑似内存泄漏的应用服务器的数量超过预定值,判断所述疑似内存 泄漏的应用服务器是否实际发生内存泄漏的部件。 权 利 要 求 书CN 102955719 A 1/7页 4 疑似内存泄漏的确定方法及装置 技术领域 。
8、0001 本发明涉及对疑似内存泄漏进行确定的技术领域,特别涉及一种改善了的探测内 存泄漏的方法和系统。 背景技术 0002 内存泄漏是服务器会出现的一种典型问题,会导致服务器可用内存和性能持续下 降,最终将导致服务器内存不足宕机,不能响应任何请求,其危害相当严重。现有技术中存 在多种内存泄漏的分析方法,但都是用于对疑似发生内存泄漏的服务器进行分析以确定是 否实际发生内存泄漏并且分析其根本原因,即,现有的解决方案是基于内存泄漏已经发生 或者已经疑似发生内存泄漏的前提下进行的。 0003 作为通常采用的方式,疑似发生内存泄漏的服务器是在发生宕机时管理员根据分 析日志人为辨认出来的,然后应用现有技术。
9、中的技术方案进行内存泄漏的分析。但这种方 式过于依赖于管理员的经验,特别的是,对于大规模部署的应用服务器,通过分析日志挑选 出可疑的应用服务器,会非常的耗时。 0004 此外,由于现有的内存泄漏的分析方法运行开销很高(high runtimeoverhead), 而且应用服务器中有大量的对象以及对象间之复杂关系,导致内存泄漏问题的探测和分析 均比较复杂,无法在运行(runtime)的情况进行疑似内存泄漏的探测。 0005 由此可见,迫切的需要一种使得管理员从人工辨认可疑服务器的工作中解脱出 来,可在服务器在运行时识别可疑服务器的技术方案,现有的技术仍然存在着改进的空间。 发明内容 0006 根。
10、据本发明的第一个方面,提供了一种确定疑似内存泄漏的方法,包括:采样应用 服务器的吞吐量以及内存使用量;根据所采样的吞吐量监控所述吞吐量是否持续下降以及 根据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内;响应于所述吞吐量 的持续下降以及所述内存使用量稳定在所述预定范围内,确定所述应用服务器疑似发生内 存泄漏。 0007 根据本发明的第二个方面,提供了一种确定疑似内存泄漏的装置,包括:采样部 件,配置为采样应用服务器的吞吐量以及内存使用量;监控部件,配置为根据所采样的吞吐 量监控所述吞吐量是否持续下降以及根据所采样的内存使用量监控所述内存使用量是否 稳定在预定范围内;确定部件,配置为响。
11、应于所述吞吐量的持续下降以及所述内存使用量 稳定在所述预定范围内,确定所述应用服务器疑似发生内存泄漏。 0008 采用本申请的技术方案,使得管理员从人工辨认可疑服务器的工作中解脱出来, 可在服务器在运行时识别可疑服务器是否发生了内存泄漏。 附图说明 0009 所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附 说 明 书CN 102955719 A 2/7页 5 图阅读下面对说明性的实施例的详细说明可更好地理解发明本身以及其优选使用模式、目 标、特征以及优点,在附图中: 0010 图1示出了用来实现本发明实施方式的示例性计算系统。 0011 图2示出了本申请的探测疑似内存泄。
12、漏方法流程图。 0012 图3A示出了未发生内存泄漏时的示意图。 0013 图3B示出了发生内存泄漏时的示意图。 0014 图4示出图2步骤202监控吞吐量的持续下降的一个实施例。 0015 图5示出图2中步骤202监控内存使用量稳定在预定范围的一个实施例。 0016 图6示出了疑似内存泄漏探测装置的结构示意图。 0017 图7示出了一个实施例中需要进行疑似内存泄漏探测的系统框图。 具体实施例 0018 所属技术领域的技术人员知道,本发明可以体现为系统、方法或计算机程序产品。 因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻 留软件、微代码等)、或者本文一般称。
13、为“电路”、“模块”或“系统”的软件部分与硬件部分的 组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的 计算机程序产品的形式,该介质中包含计算机可用的程序码。 0019 可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机 可读信号介质或计算机可读存储介质,计算机可读存储介质例如可以是但不限于 电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质、或前述各项 的任何适当的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下: 有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RA。
14、M)、只读存储 器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器 (CD-ROM)、光存储器件、磁存储器件、或前述各项的任何适当的组合。在本文语境中,计算机 可读存储介质可以是任何含有或存储供指令执行系统、装置或器件使用的或与指令执行系 统、装置或器件相联系的程序的有形介质。 0020 计算机可读信号介质可以包括例如在基带中或作为载波的一部分传播的带有计 算机可读程序代码的数据信号。这样一种传播信号可以采取任何适当的形式,包括-但不 限于-电磁的、光的或其任何适当的组合。计算机可读信号介质可以是不同于计算机可读 存储介质的、可以传达、传播或传输供指令执行。
15、系统、装置或器件使用的或与指令执行系 统、装置或器件相联系的程序的任何一种计算机可读介质。 0021 包含在计算机可读介质中的程序代码可以采用任何适当的介质传输,包括-但不 限于-无线、有线、光缆、射频等等、或上述各项的任何适当的组合。 0022 用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何 组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C+ 之类,还包括常规的过程式程序设计语言-诸如” C”程序设计语言或类似的程序设计语 言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立 的软件包执行、部分在。
16、用户的计算机上部分在远程计算机上执行、或者完全在远程计算机 或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络包括局域网 说 明 书CN 102955719 A 3/7页 6 (LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通 过因特网)连接到外部计算机。 0023 以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述本发明。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中 各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算 机、专用计算机或其它可编程数据处理装置的处理。
17、器,从而生产出一种机器,使得通过计算 机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规 定的功能/操作的装置。 0024 也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包 括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means) 的制造品。 0025 也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计 算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而 在计算机或其它可编程装置上。
18、执行的指令就提供实现流程图和/或框图中的方框中规定 的功能/操作的过程。 0026 现参看图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、键盘控制器10。
19、6、串行控制器107、并行控制器108和显示控制器109。 硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串 行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与 显示控制器109耦合。应当理解,图1所述的结构框图仅仅为了示例的目的而示出的,而不 是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。 0027 图2示出了本申请的探测内存泄漏方法流程图,包括: 0028 步骤201,采样应用服务器的吞吐量以及内存使用量。 0029 其中,吞吐量信息是每个应用服务器单位时间内能够服务的请求数量,例。
20、如,每秒 钟服务的请求数。内存使用信息是该应用服务器内存的整体消耗或占用的情况,例如内存 占用百分比信息,可用内存数量信息等。在后续的实施例中,均以内存占用百分比进行说 明,但所属领域技术人员能够想到其它类型的内存应用信息同样适用这些实施例。可以周 期或非周期的方式进行上述信息的收集。 0030 在一个实施例中,按照控制流量的周期进行所述采样,所述控制流量是根据所 述内存使用量控制所述应用服务器的吞吐量,使得所述内存使用量不超过目标内存使用 量。在一个实施例中,可应用流量控制器来控制流量,流量控制器以及如何控制流量是该 领域的公知技术,在此不作赘述。在另一个实施例中,还可以在进行垃圾收集(Ga。
21、rbage Collection)之后收集上述信息,以提高所收集信息精确度。 0031 步骤202,根据所采样的吞吐量监控所述吞吐量是否持续下降以及根据所采样的 说 明 书CN 102955719 A 4/7页 7 内存使用量监控所述内存使用量是否稳定在预定范围内。 0032 参看图3A,是未发生内存泄漏时的正常情况下,内存占用百分比,以及吞吐量的示 意图。在流量控制器的作用下,内存占用百分比稳定在目标值附近,而该应用服务器单位时 间所处理的请求也是稳定的,具有稳定的吞吐量。 0033 参看图3B,是发生内存泄漏时的示意图,随着未被释放的内存的增加,应用服务器 的吞吐量会持续下降,甚至最终会下。
22、降为零。而越来越多的应用服务器被用来服务(host) 发生内存泄漏的应用。因此,在一个实施方式中,吞吐量的持续下降是判断发生内存泄漏的 一个依据。此外,还需判断内存占用的百分比是否维持在一定范围之内,原因在于,发生了 内存泄漏时内存会越来越不够用,因此,在该实施方式中内存占用百分比通常会维持在较 高范围内是判断发生内存泄漏的另一个依据。据此,可排除因流量控制器的故障、或者对应 用服务器的请求速率降低导致吞吐量降低时内存占用百分比的不再预定范围之内等情形, 而在该些情形下虽然会出现吞吐量的持续降低,但并不是内存泄漏引起的。 0034 此外,持续下降的含义并要求严格的持续下降,有时会出现短暂的波动。
23、,但仍可认 为是持续下降。而对短暂波动的容许,则可根据所属领域技术人员对疑似发生内存泄漏的 要求而定。 0035 接下来继续说明图2中的步骤203,在该步骤中,响应于所述吞吐量的持续下降以 及所述内存使用量稳定在所述预定范围内,确定所述服务器疑似发生内存泄漏。 0036 可针对单个或一组应用服务器进行内存泄漏的探测。在针对一组服务器进行探测 时,该组应用服务器可提供相同、相似或者不同的应用。 0037 在一个改进的实施例中,所述一组应用服务器是运行着相同或相似应用的簇 (cluster),通常内存泄漏的发生与所部署的应用有关,故针对簇进行内存泄漏进行检测, 可以提高判断的准确度。例如,可以响应。
24、于计数值超过50簇大小,将所述计数置零,给出 该簇中的哪些应用服务器疑似发生内存泄漏的警告。 0038 在一个实施例中,在步骤203之后,还可进一步判断疑似内存泄漏的应用服务器 是否实际发生内存泄漏。当确定了疑似发生内存泄漏的应用服务器,可采用任一种现有的 方式进行是否实际发生内存泄漏的进一步确认。现有技术中并不缺乏对特定应用服务器进 行内存泄漏服务器进行检测方法。例如已公开的美国专利US 7434206,通过分析内存中的 对象(object)分配和释放的特性,获取是否存在内存泄露的结论。或者已经公开的美国专 利US 7870170,通过对内存中存储的对象特性进行分析,确定是否有内存泄露。然而。
25、,由于 这些方法都不适用于在运行时(runtime)探测疑似发生内存泄漏的服务器,而采用本申请 之技术方案,可在运行时找到疑似出现内存泄漏的应用服务器,以供进一步的分析和判断。 0039 图4示出了图2中步骤202中监控吞吐量是否持续下降的一个实施例,包括: 0040 步骤401,计算多个时间窗口中每个时间窗口期间所述吞吐量的统计值。以预定步 长进行滑动以计算到多个时间窗口的吞吐量的统计值,所属领域技术人员可根据具体情况 设定步长,既可以大于也可小于窗口的大小,根据步长的取值不同,相邻的窗口间可以重叠 或者具有间隔。 0041 根据大小为N的窗口内的吞吐量信息计算该窗口内吞吐量的统计值。窗口内。
26、的吞 吐量信息表示一时间段内的吞吐量信息,窗口的大小N即该时间段的大小。较大的N可以 提高探测的准确度,较小的N则可以提高探测的灵活度,所属领域技术人员可以根据具体 说 明 书CN 102955719 A 5/7页 8 情况对N的取值进行设定。在一个实施例中,窗口的大小为100个时钟周期。 0042 在该窗口期间,共有多个图2中步骤201所收集的吞吐量信息,据此计算吞吐量的 统计值。所述吞吐量的统计值选自以下几种之一:所述窗口内的最小吞吐量、最大吞吐量或 吞吐量平均值。在一个实施例中,用minRate(i)代表第i个窗口内的最小吞吐量。 0043 步骤402,根据所述统计值的下降趋势,确定监控。
27、到所述吞吐量的持续下降。所述 监控到统计值的下降趋势是监控到至少一次两个以上相邻时间窗口统计值的依次降低。在 一个实施例中,如果minRate(i)minRate(i+1),则可认为吞吐量是下降的。作为替代 的方式,还可以根据minRate(i)minRate(i+1)的次数达到预设的阈值来确定是否出 现持续下降,这可适用于吞吐量临时反弹时的情形。 0044 图5示出了图2中步骤202中监控内存使用量是否稳定在所述预定范围之内的一 个实施例,同样,也可采用窗口的方式来进行检测,主要包括: 0045 步骤501,判断一时间窗口期间的内存使用量介于所述预定范围之内的情况。可 以预定步长滑动所述时间。
28、窗口以进行所述内存使用量稳定在预定范围之内的实时监控。所 属领域技术人员可根据具体情况设定步长,既可以大于也可小于窗口的大小,根据步长的 取值不同,相邻的窗口间可以重叠或者具有间隔。该窗口的大小M的取值类似于前述窗 口的取值,既可以与前述窗口相同,也可不同。该预定范围可以内存占用目标值周围的一 个区间,在一个实施例中,如内存占用目标值为80,则可设置该预定范围为对称的区间 7585,或者可以是非对称的区间7588。显然,所属领域技术人员可以根据实 际情况的需要对内存占用目标以及相应的预定范围进行调整。 0046 步骤502,响应于所述时间窗口中介于所述预定范围的内存使用量的数量指标超 过预定阈。
29、值,确定所述窗口中的内存使用量稳定在预定范围。当该数量指标可以是所述滑 动窗口中介于预定范围的内存使用量的数目,此时,所述预定阈值是一个数目,例如在一个 实施例中取值为90;该数量指标也可体现为一个相对的比例,即,介于预定范围的内存使 用量的数目占该窗口期间所采样的全部内存使用量的比例,此时所述预定阈值是一个预定 的比例值,例如,在一个实施例中取值为95。 0047 采样部件,配置为采样应用服务器的吞吐量以及内存使用量; 0048 监控部件,配置为根据所采样的吞吐量监控到所述吞吐量的持续下降以及根据所 采样的内存使用量监控到所述内存使用量稳定在预定范围内; 0049 确定部件,配置为确定所述服。
30、务器疑似发生内存泄漏。 0050 现在参看图6,示出了本申请的内存泄漏探测装置的结构示意图,用于探测疑似发 生内存泄漏的应用服务器,包括: 0051 采样部件601,配置为采样应用服务器的吞吐量信息以及内存应用信息。在一个实 施例中,可以自流控制器(Flow Controller)获取吞吐量信息以及内存占用百分比。可在 流量控制器的每个控制周期收集所述吞吐量信息以及内存占用百分比信息。在另一个实施 例中,还可以在进行垃圾收集(Garbage Collection)之后收集上述信息,可以使的信息收 集更加精确。 0052 监控部件602,配置为根据所采样的吞吐量监控所述吞吐量是否持续下降以及根 。
31、据所采样的内存使用量监控所述内存使用量是否稳定在预定范围内。该监控部件既可以位 于应用服务器中,用于通知管理代理特的所述应用服务器的内存异常。该监控部件还可以 说 明 书CN 102955719 A 6/7页 9 位于代理服务器中,当位于代理服务器中时,每个应用服务器将其内存应用信息以及吞吐 量信息发送至位于代理服务器中的采样部件。 0053 确定部件603,配置为响应于监控到所述吞吐量的持续下降以及所述内存使用量 稳定在预定范围内,确定所述服务器疑似发生内存泄漏。 0054 在一个实施方式中,图6中监控部件包括:计算统计值部件,配置为计算多个时间 窗口中每个时间窗口期间所述吞吐量的统计值;判。
32、断下降部件,配置为根据所述统计值的 下降趋势,确定监控到所述吞吐量的持续下降。 0055 在一个改进的实施例中,所述统计值的下降趋势是监控到至少一次两个以上相邻 时间窗口统计值的依次降低。 0056 在一个改进的实施例中,所述吞吐量的统计值选自以下几种之一:所述时间窗口 内的最小吞吐量、最大吞吐量或吞吐量平均值。 0057 在一个实施方式中,图6中监控部件包括:比较范围部件,配置为判断一时间窗口 期间的内存使用量介于所述预定范围之内的情况;判断稳定部件,配置为响应于所述时间 窗口中介于所述预定范围内的内存使用量的数目超过预定阈值,确定所述窗口中的内存使 用量稳定在预定范围。 0058 在一个改。
33、进的实施例中,还包括配置为按照控制流量的周期进行所述采样的部 件,所述控制流量是根据所述内存使用量控制所述应用服务器的吞吐量,使得所述内存使 用量不超过目标内存使用量。 0059 在一个改进的实施例中,还包括配置为判断所述疑似内存泄漏的应用服务器是否 实际发生内存泄漏的部件。 0060 在一个改进的实施例中,还包括配置为响应于所述疑似内存泄漏的应用服务器的 数量超过预定值,判断所述疑似内存泄漏的应用服务器是否实际发生内存泄漏的部件。 0061 图7示出了一个具体实施例中可以采用本申请前述之技术方案进行内存泄漏探 测系统框图,包括代理层(Proxy Tier)和应用服务器层(Applicatio。
34、nServer Tier),其中 的服务器可采用虚拟机(VM),例如,Java虚拟机(JVM)或物理计算机的形式。在一个实施 方式中,可以在所述应用服务层中定义至少一个运行着相同或相似应用簇(cluster),或者 任意确定一组应用服务器进行内存泄漏的探测。 0062 代理服务器是介于用户和应用服务器之间的服务器,用户向代理服务器发出请 求(Request),由代理服务器将其转发至应用服务器,并将应用服务器的处理结果返回给用 户。 0063 为了避免应用服务器的过载,可采用流量控制器(flow controller)对服务器的 吞吐量进行控制,流量控制器是一种现有技术中通常采用的功能单元,用于。
35、根据被控服务 器的内存使用量,控制被控服务器的吞吐量,以确保内存占用百分比不超过目标内存使用 量,以达到最大化使用有效资源的目的,由于流量控制器属于现有技术,在此不作赘述。 0064 图1至图6所示的方法及系统中的各个步骤和部件,可应用在图7所示的系统中, 本领域技术人员可以根据实际需要将各个步骤或各个部件在代理层(Proxy Tier)和应用 服务器层(Application Server Tier)之间进行布置。例如,在一个实施方式中,可将所有 的步骤和部件均在每个应用服务器上实现,该探测步骤或部件位于应用服务器中,用于通 知管理代理特的所述应用服务器的内存异常。而在另一个实施例中,该探测。
36、部件还可以位 说 明 书CN 102955719 A 7/7页 10 于代理服务器中,当位于代理服务器中时,每个应用服务器将其内存应用信息以及吞吐量 信息发送至位于代理服务器中的收集部件。 0065 应指出的是,以上描述仅为示例,而不是对本发明的限制。附图中的流程图和框 图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、 功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的 一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可 执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附 。
37、图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有 时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中 的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专 用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。 说 明 书CN 102955719 A 10 1/4页 11 图1 图2 说 明 书 附 图CN 102955719 A 11 2/4页 12 图3A 图3B 说 明 书 附 图CN 102955719 A 12 3/4页 13 图4 图5 图6 说 明 书 附 图CN 102955719 A 13 4/4页 14 图7 说 明 书 附 图CN 102955719 A 14 。