监控存储器消耗的制作方法

文档序号:7722686阅读:166来源:国知局

专利名称::监控存储器消耗的制作方法
技术领域
:本发明涉及监控存储器消耗。
背景技术
:应用服务器,诸如Java应用服务器,常常执行处理大量服务请求的任务。因此,即使是在只有少量请求导致消耗相对较大量的存储器时,服务器性能也会急剧下降。为此,监控这些系统中的存储器消耗对于维持总体系统稳定性是有用的。但是,当系统被高度利用时,监控存储器的活动本身会显著影响系统性能。
发明内容根据本公开的一个方面,提供一种计算机实现的方法,包括监控存储器垃圾收集事件和节点内容服务请求的发生;确定节点内容服务请求和存储器垃圾收集事件之间的相关性;和报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足与所述相关性相关联的预先选择的标准。根据本公开的另一个方面,提供一种计算机实现的方法,包括监控存储器垃圾收集事件与包括统一资源定位符信息的节点内容服务请求之间的时间关系;确定节点内容服务请求与存储器垃圾收集事件之间的相关性;和报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足与所述相关性相关联的预先选择的标准。根据本公开的再一个方面,提供一种计算机可读介质,其中存储有指令,用于使得计算机实现一种方法,该方法包括监控存储器垃圾收集事件和节点内容服务请求的发生;确定节点内容服务请求与存储器垃圾收集事件之间的相关性;和报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足与所述相关性相关联的预先选择的标准。根据本公开的再一个方面,提供一种装置,包括监控模块,用于检测存储器垃圾收集事件和节点内容服务请求的发生;处理器实现的相关性模块,用于确定节点内容服务请求与存储器垃圾收集事件之间的相关性;和报告模块,用于报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足与所述相关性相关联的预先选择的标准。图1示出了根据本发明的各种实施例的、监控存储器消耗的过程。图2是根据本发明的各种实施例的、用于监控存储器消耗的装置的框图。图3是根据本发明的各种实施例的、用于监控存储器消耗的系统的框图。图4是示出根据本发明的各种实施例的、监控存储器消耗的方法的流程图。图5是示出根据本发明的各种实施例的、监控存储器消耗的附加方法的流程图。图6是根据本发明的各种实施例的、以计算机系统为示例形式的机器的框图。具体实施例方式"会话"可以被表征为当特定连接激活时发生的通信终点之间的一系列交互。为了发起会话,诸如客户端的一个节点可以请求与诸如服务器的另一个节点连接。如果节点达成一致,就可以交换命令和数据。所述交换构成会话的一部分。当在两端建立连接时会话开始,并且在连接终止时会话终止。发起附加会话的进一步请求是一样的。为了在对系统性能影响相对较小的情况下容纳大量服务请求,这里所描述的机制可以用于实现基于相关性分析的存储器消耗监控。例如,在许多实施例中,可以利用对垃圾收集(GarbageCollection,GC)事件与服务请求活动之间相关性的统计评价来识别可疑请求活动,这些可疑请求活动被认为会导致过度的存储器使用。识别和调节这种请求能够提高系统操作稳定性。例如,在一些实施例中,这些机制被用作管理接口的一部分,用于监控发生在Java应用服务器中的存储器消耗。应当注意,尽管在这里以示例的方式描述了使用Java应用和Java应用服务器,但是所描述的各种实施例并不局限于此。在结合任意编程语言进行操作的数据处理系统内的任何具有存储器的设备,且所述存储器可用作容纳服务请求的资源,则这样的设备都可以如这里所描述的那样针对过度存储器消耗被监控。为了本文件的目的,"应用"指的是能够被处理器执行的指令的集合。这些应用包括浏览器、文字处理器、电子表格处理器、演示文稿处理器、数据库处理器和绘图处理器等等。所述应用可被用于处理电子内容。"电子内容"包括可以呈现(例如,可视或可听地呈现)给用户的任意数字数据,诸如电子文档、诸如页面描述(page-descriptive)电子文档的页面描述电子内容、媒体流、网页、超文本文档、图像、数字视频或视频记录、数字音频或音频记录、动画、诸如例如包括超文本标记语言(HTML)或XML的文档之类的标记语言文档、具有待填写部分的表格、或者描述图形用户界面(GUI)的应用的数据。电子内容可以包括各种内容元素。"内容元素"包括被定义为或者可辨识为一部分或一份(ashare)的电子内容的任意一部分或一份。例如,可以根据内容元素本身的特征(例如,电子文档的段落或者文件格式标记)自动辨识内容元素,或者可以由用户人工定义内容元素(例如,由用户选择的电子文档中的一组字词、由用户选择的数字图像的一部分)。内容元素的例子包括页面描述文档或其它电子文档的部分,诸如例如若干电子文本或其它资料,如电子文档内的一组指令;媒体流的部分的形式的动态内容,诸如数字视频的若干段、或者数字视频或数字音频的若干帧或若干帧的集合;动画片段或动画帧形式的动态内容;电子表格;表格模板;表格元素;表格数据;可激励元素说明或可执行指令;以及电子内容中可呈现或用户可访问的各种元素,包括脚本和非脚本动态内容实例等等。这里将特定应用或过程描述为包括多个模块。"模块"是具有独特功能的单元,其能够向其它模块提供信息以及从其它模块接收信息。因此,所描述的模块可以被视为被可通信地连接。模块还可以发起与输入或输出设备的通信,或者可以对资源(例如,信息的集合)进行操作。适应于各种实施例的具体实现方式,模块可以包括硬件电路、光学元件、单个或多个处理器电路、存储器电路、软件程序模块和对象、固件、以及上述的组合。术语"模块"可以包括代码、数据或计算对象(诸如文档应用)的可识别的部分,其被设计为实现特定功能、操作、处理或过程。"节点"可以包括服务器、客户机或能够接收服务请求的任何独立的计算设备。"资源"包括网页、磁盘上的文件或者计算机内部的任何表现形式的信息。资源的其它例子包括地址册条目、数据库条目和日程表约会等等。这里所公开的各种实施例可操作用于实现存储器消耗监控,同时对被监控系统产生相对较小的影响。现在将更加详细地描述包括这类操作的一些示范实施例。图1示出了根据本发明的各种实施例的监控存储器消耗的过程100。例如,考虑正在执行应用104的服务器114。服务器114可以利用一个或多个网络124耦接到互联网150。作为访问各种资源156的一部分,可以通过网络124提交许多统一资源定位符(URL)服务请求120。举例来说,这些请求可能是许多客户机160使用浏览器的结果,这些客户机160进行操作以频繁地访问特定网站。服务请求120中的一些请求可能导致大量消耗服务器114内的存储器140。在Java虚拟机(JVM)中,用于存储诸如变量之类的项的存储器140被称为堆空间(he即space)。堆空间可以被分为较小的空间,称为代(generation)。在堆内通常存在若干代,包括年轻代空间(younggenerationspace),年轻代空间包括Eden(伊甸)空间、Survivor(幸存者)0空间和Survivor1空间。对象根据其年龄(age)落入特定的代。放入存储器中的新生存储器对象通常首先在Eden空间中被创建。当Eden空间满了时,仍然存活的存储器项被移到Survivor0空间中,并且将JVM不再需要的旧对象从Eden空间清除。这就为新到来的对象提供了空间。当Survivor0空间填满时,该空间中仍然存活的对象被移到Survivorl空间,并且对Survivor0空间进行清除。存储器140中的空间部分地由JVM通过GC活动进行管理。垃圾收集器将存储器堆空间中的内容来回移动并且确定是保留还是丢弃特定项。如果没有GC活动,可用存储器140将会相对较快地用尽。因此,在一定数量的服务请求120(诸如URL请求)之后,GC事件将发生,以便释放不再需要的存储器140。为了本公开的目的,可以假设,相同的服务请求导致大约相同量的存储器消耗。对于第一次访问URL来说,情况可能是这样也有可能不是这样,这是因为,例如,可能存在由于类加载、高速缓存填充等等所产生的额外存储器分配。但是,在第一次访问操作期间消耗的存储器总量可以弃之不计,或者可以将其作为特殊过程的一部分进行考虑。后续的URL服务请求应当更能代表平均消耗值。对于JVM和其它利用GC例程的进程来说,可以假设一旦所定义的存储器区域(例如,Eden空间)用尽,就将触发GC例程。结果是,可以预期,服务器或其它牵涉的机器能够在不经历GC事件的情况下处理固定数量的服务请求。因此,如果特定请求(例如,请求访问特定URL)使用大量存储器,那么GC间隔之间的请求的总数量通常将减少。因此,可以使用相关性(correlation)分析来找出包括和不包括这种"可疑"请求的间隔的差异(variance)。图2是根据本发明的各种实施例的、用于监控存储器消耗的装置214的框图。装置214可以包括节点,所述节点可能类似于或等同于图1的服务器114。现在转向图2,可以看到,装置214包括硬件,其提供数据以作为若干模块的输入。在这种情况下的硬件包括处理器和存储器216,所述数据包括GC事件226和到来的(incoming)服务请求228(例如,URL访问请求)。模块包括监控模块244、相关性模块248和分析/报告模块252。GC事件226和到来的请求228可以是作为处理器和存储器216部分的活动结果而提供的。随着到来的请求228的发生,以及随着作为响应的存储器分配,GC事件226也将发生。当请求228和事件226发生时,可以在对性能产生很小影响的情况下将与它们的发生相关的信息存档。为了识别可疑请求以供进一步分析,可以将注意力集中在那些发生较少服务请求的GC事件226之间的时间间隔上。这是因为,这些情况是存储器消耗活动的特征。因此,可以在某个选定数量的间隔INT上评价各个服务请求,其中所述间隔INT由GC事件226的周期性发生所定义。在一些实施例中,监控存储器消耗可以包括通过以下方式处理GC事件226和到来的请求228:1.使用监控模块244将事件226和请求228存档,并且可能计算在选定数量的、包含给定服务请求类型(例如,包括URL引用的请求)的GC事件间间隔INT中发生的、给定类型请求的平均数量X。2.使用监控模块244来计算不包含给定请求的间隔INT中请求的平均数量Y。3.使用相关性模块248计算r=(X_Y)/MAX(X,Y)作为相关值,其中MAX(X,Y)是X和Y中的最大值。这给出了特定请求类型(例如,包含特定URL)的发生与任意GC间隔之间的相关性。负相关值(例如,r值接近-1)表示正在评价的请求(例如,给定请求)的操作使GC事件226之间的请求数量显著减少,从而表现出比其它请求消耗更多存储器。因此,导致负相关值r的服务请求可以被认定为"可疑请求"。可以使用分析/报告模块252将可疑请求报告给用户和/或管理员。在一些实施例中,可以对可疑请求进行更加详细的分析,可能是离线分析,以便调查结合特定请求所分配的实际存储器量。可以使用分析/报告模块252实现的所述分析可以包括从可疑请求中提取一个或多个URL,通过将受影响的节点设置为维护模式,来从负载均衡服务中去除该节点,然后切换为分析器(profiler)模式,以对节点性能进行详细分析。在这点上,可以合计每个类的存储器消耗,并且可以隔离对过度存储器消耗负有责任的源代码。在一些实施例中,针对所选定的服务请求组合计算相关性。例如,可以在某选定数量的具有一起出现的多个URL请求X(URL1、URL2、.)禾PY(URL1、URL2、.)的GC间隔INT上确定相关性。除了两个或多个请求的组合被同时处理之外,可以应用与先前描述相同的计算过程。当请求紧密结合时或者当两个或更多个服务请求与使用大约相同存储器量的URL相关联,并且这些组合导致存储器使用量显著多于与其它请求相关联的存储器使用量时,对这种组合的分析会是有用的。对于没有GC活动从而不发生GC事件226的装置214来说,可以用对待GC间隔同样的方式来对待一系列具有基本恒定长度的时间间隔。从而,如果系统没有垃圾收集器,也可以实施相同的计算,来确定在每个时间间隔期间的存储器均衡。也可以实现其他的实施例。例如,除了上述的相关性分析之外,还可以,可能平行地,进行定量分析。这对于估计相关性分析所提供的相关性的有效值(significance)会是有用的。考虑下面的例子,其中接收到三个请求类型A、B和C:A(大小=8个单位),B(大8小=4个单位)和C(大小=2个单位),并且其中,当当前所接收到的多种请求的所占用的存储器大小为20个单位时垃圾收集开始(例如,GC(大小=20))。假设在三个GC间隔中,接收到下列数量的请求<table>tableseeoriginaldocumentpage9</column></row><table>可以针对每行(也即,每个GC间隔)计算下列元组(tupel):SIZE_MIN=估计该请求的最小大小SIZE_AVG=假定所有请求具有同样大小,估计平均值SIZE_MAX=假定除当前请求之外的所有请求的大小为零,估计大小在每次计算期间,可以针对每个请求进行两个估计(a)每个请求可能消耗相同的存储器量,和(b)每个请求可能消耗零存储器。从而,对于每个GC间隔来说,存在可以针对每个请求估计出的三个可能的值(l)被分析的请求可能消耗零存储器,(2)间隔内的所有请求具有相同大小的存储器消耗,或者(3)除了被分析的请求之外的所有请求都具有零存储器消耗。从(1)可以估计出第一个值,即SIZE—MIN二0。从(2)可以估计出第二个值,即SIZE_AVG=1/(所有请求的数量)。从(3)可以估计第三个值,即SIZE—MAX二1/(被分析请求的数量)。可以针对每个GC间隔完成所述计算。在每次元组计算之后,可以使用MIN-MAX运算将在前元组的值组合如下SIZE_MIN=(所有MIN的)MAXSIZE_AVG=小于MAX的(所有AVG的)MAXSIZE_MAX=(所有MAX的)MIN从而,对于本讨论,SIZE_MIN=0,每个请求的SIZE_AVG被组合如下MIN(MAX(SIZE_AVG(实际的),SIZE_AVG(组合的)),SIZE_MAX(组合的))。然后计算SIZE_MAX为MIN(SIZE_MAX(实际的),SIZE_MAX(组合的))。通过这样的方式,将针对第一间隔的计算结果与从第二间隔得到的计算结果进行组合。然后将针对第三间隔的计算结果与从第一和第二间隔得到的结果的组合组合在一起,等等。从上面的例子,在第一次计算中确定下列元组<table>tableseeoriginaldocumentpage9</column></row><table>在第二次计算中,对于类型C的请求,确定这些值,如下MIN=没有任何其它信息的情况下,我们可以估计C为零AVG=我们估计,所有请求具有相同大小MAX=我们估计,除C之外的所有请求为零<table>tableseeoriginaldocumentpage10</column></row><table>然后,在第三次计算中,第一和第二次计算的结果被组合<table>tableseeoriginaldocumentpage10</column></row><table>然后,在第四次计算中,对于类型C的请求,SIZE—AVG被计算为SIZE_AVG=MIN(MAX(1/6,1/9),1/8)=1/8。SIZE_AVG的值应当增大,因为最小请求的值被估计得过高而所有其它值被估计得过低。如果假定所有请求消耗相同的存储器量,那么使用较少存储器的请求已经被估计得过高,而使用较多存储器的请求已经被估计得过低。该运算假定,使用较少存储器的请求将随着时间由SIZE—MAX减少,同时,使用MAX运算,使用较多存储器的请求将由SIZE—AVG增加。通过这种方式,先前的假设将随着时间而改进。<table>tableseeoriginaldocumentpage10</column></row><table>在第五次计算中,第四次计算的结果与第三次计算的结果组合<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>结果是,可以估计每个请求的大小(利用的GC间隔越多,估计就变得越精确)<table>tableseeoriginaldocumentpage11</column></row><table>知道了定量分析值结果,就可以就去除固定值的相关性以及建立加权相关性是否有用作出决定。可以使用加权相关性,以便将已知去除了最小URL请求之后在GC间隔内的存储器消耗考虑在内。任何其它出现的URL请求在所定义的GC存储器间隔内工作,这可以作为因子被添加到相关性函数中。例如,假定类型C的请求占用GC存储器的1/10,那么从计算中去除类型C的请求将意味着,类型A和B的请求的发生占用原始存储器空间的(1-2*0.1=0.8)。还可以实现其它实施例。例如,图3是根据本发明的各种实施例的、用于监控存储器消耗的系统310的框图。在系统310内操作的装置314的一些实施例(例如,作为服务器工作的节点)包括监控模块344,用于检测存储器GC事件和节点内容服务请求的发生;和处理器实现的相关性模块348,用于确定节点内容服务请求和存储器GC事件之间的相关性。装置314还可以包括报告模块352,用于报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足预先选择的与相关性相关联的标准(例如,相关性r<0,或者1~<-0.5)。监控模块344和报告模块352可以集成到单个模块中,或者作为两个分离的模块存在(如图所示)。在一些实施例中,装置314包括存储器340,用于记录与存储器GC事件相关联的时间信息。从而,与不同的存储器GC事件相关联的开始时间、结束时间或者二者都可以存储在存储器340中。装置314还可以包括显示器334,其要么集成在装置314中、要么远程耦接到装置314(如图所示,使用有线或无线网络324)。耦接到装置314的设备318(例如,节点)可以用于安置(house)显示器334。从而,显示器334和模块344、348、352可以包括在分离的设备中(如图所示),诸如包括在客户机和服务器中。显示器334和模块344、348、352还可以集成在单个设备中,诸如服务器或客户机中,或者独立的设备,诸如便携式计算机、PDA或移动电话中。显示器334可以用于连同与可疑节点内容服务请求相关联的信息一起显示警告消息374。通过这样的方式,高相关值(例如,r〈-0.5)可以用于引发可视警报,以警告系统管理员在系统310内的过度存储器使用。还可以实现其它实施例。这些实施例中的一些包括各种方法。例如,图4是示出根据本发明的各种实施例的、监控存储器消耗的方法411的流程图。方法411在机器可访问和可读介质中实现,并且可以在网络内和网络之间的进程中运行。网络可以是有线的、无线的或者有线和无线的组合。方法411可以被实现为指令,当所述指令被机器访问时,执行在图1-3中绘出的且针对图l-3所示的元件和过程描述的处理。假定是这样的上下文,现在参照图4讨论监控存储器消耗。在一些实施例中,计算机实现的监控存储器消耗的方法411可以从块421开始,并且继续到块425,以监控存储器GC事件和节点内容服务请求的发生。为了确定相关性,记录GC事件的时间会是有用的,以便可以计算由GC事件开始时间、GC事件结束时间或者它们二者所定义的任意特定时间间隔内的节点内容服务请求的数量。从而,块425处的监控活动可以包括记录存储器GC事件的开始时间或结束时间中的至少一个。类似地,可以记录节点内容服务请求的时间,因为它们与存储器GC事件的发生相关。从而,可以记录节点内容服务请求的时间,并且可以注意到在节点内容服务请求时间所定义的间隔上发生的垃圾收集事件的数量。因此,块425处的监控活动可以包括记录节点内容服务请求的开始时间或结束时间中的至少一个。这样的方法可用于处理器活动与存储器消耗相关的环境。但是,在每种情况下,应当将逝去的时间与处理器使用时间区分开来(例如,空闲线程不消耗存储器)。节点内容服务请求的存在和/或时间可以记录在队列中,该队列使得当期望进行相关性分析时相关联的信息可用于周期性的提取。从而,块425处的监控活动可以包括将节点内容服务请求记录在队列中。还可以记录作为包括在节点内容服务请求中的特定种类的信息的URL信息。从而,块425处的监控活动可以包括记录作为节点内容服务请求的一部分的URL信息。方法411可以继续进行到块429,以确定节点内容服务请求与存储器GC事件之间的相关性。如前所述,可以确定在由存储器GC事件定义的时间间隔上的节点内容服务请求的数量之间的相关性。在一些实施例中,诸如当URL组成服务请求的一部分时,通过使用包括所选定的URL的节点内容服务请求的平均数量以及排除所选定的URL的节点内容服务请求的平均数量来确定相关性。从而,块429处的活动可以包括确定在由存储器GC事件定义的时间间隔上,包括选定URL的节点内容服务请求的包括性平均数量(inclusiveaveragenumber)与不包括选定URL的节点内容服务请求的排除性平均数量(exclusiveaveragenumber)之间的相关性。在一些实施例中,如前面所讨论的那样,可以以特定方式组合这些平均以确定相关性。从而,块429处的活动可以包括将相关性计算为包括性平均与排除性平均之间的差,除以包括性平均和排除性平均中的最大值。在一些实施例中,GC收集间隔可以被定义为第一GC事件的开始时间直到第二GC事件的开始时间之间的间隔、或者第一GC事件的结束时间直到第二GC事件的结束时间之间的间隔。从而,用于在块429处确定相关性的时间间隔可以由GC事件的开始时间和GC事件的结束时间之一来定义。为了确定两个或更多个紧密结合的服务请求是否会导致过度的存储器使用,块429处的活动可以包括确定在由存储器GC事件定义的时间间隔上某一数量的节点内容服务请求之间的相关性,其中,例如,节点内容服务请求的数量是基于多个公共URL值的。方法411可以继续到块433,以检测相关性已经超过与预先选择的标准相关联的阈值,该标准指示节点内容服务请求与存储器GC事件之间的相关性足以触发对节点内容服务请求中可疑请求的附加分析。例如,当相关性超越预定阈值(例如,r<-0.5)时,可以启动对可疑节点内容服务请求的附加分析。从而,如果在块433没有发现可疑请求,那么方法411可以返回块425,以继续监控GC事件和到来的节点内容服务请求。否则,如果请求由于满足与相关性确定相关联的预先选择的标准而被识别为可疑请求,那么方法411就可以继续到块437,以报告与可疑节点内容服务请求相关联的报告信息(例如,一个或多个URL)。在块437处的报告活动还可以包括显示与节点内容服务请求中的可疑请求相关联的相关性或信息中的至少一个,以作为GUI的一部分。通过这样的方式,通过监控GC事件和到来的请求,可以以对系统性能相对较低的影响,识别和报告与特定服务器内容服务请求相关的可疑存储器消耗活动。可以实现更多的实施例。例如,图5是示出根据本发明的各种实施例的、监控存储器消耗的附加方法511的流程图。方法511可以在机器可访问和可读介质中实施,并且可以在网络内和网络之间的进程中运行。网络可以是有线的、无线的或者有线和无线的组合。方法511可以被实现为指令,当所述指令被机器访问时,执行在图1-4中绘出且针对图1-4的元件和活动描述的处理。假定是这样的上下文,现在参照图5讨论监控存储器消耗。在一些实施例中,计算机实现的监控存储器消耗的方法511可以在块521开始并且继续到块525,以监控存储器GC事件和包括URL信息的节点内容服务请求之间的时间关系。方法511可以继续到块529,以确定节点内容服务请求与存储器GC事件之间的相关性。例如,可以使用在由GC事件定义的时间间隔上的节点内容服务请求的平均来确定相关性。从而,在块529处的活动可以包括确定在选定数量的、由存储器GC事件定义的间隔上的节点内容服务请求的包括性平均数量与在选定数量的、由存储器GC事件定义的间隔上的节点内容服务请求的排除性平均数量之间的相关性。如前所述,来自请求的组合的URL可以用于相关性分析,以确定所选择的URL—起操作是否消耗了大量存储器。从而,块529处的活动可以包括组合与多个节点内容服务请求相关联的URL信息,以确定所述多个节点内容服务请求中的各个请求之间的相关性。方法511可以继续到块533,以便确定是否已经识别出任何可疑请求。如果尚未发现这样的请求,那么方法511可以返回到块525,以继续监控GC事件和节点访问请求。否则,如果识别出满足与相关性相关联的预先选择的标准的请求,那么将其表征为可疑请求,然后,方法511可以继续到块537,以报告与可疑节点内容服务请求相关联的信息。从而,在一些实施例中,方法511可以操作为监控特别涉及URL使用的GC时间关系,而非监控可能涉及也可能不涉及URL的请求的发生。可以使用诸如平板显示器那样的显示器表面上的互联网浏览器或者标题部分(banner)来显示与可疑请求相关联的信息。从而,块537处的报告活动可以包括显示网页窗口或者工具条(sidebar)窗口或者它们二者,以作为GUI的一部分(例如,参见图3的警告消息374)。方法511可以继续到块541,以命令网络节点进入维护模式,以使得节点内容服务请求不再由该节点处理。通过这样的方式,可以使用维护模式将接收可疑请求的节点从网络脱离,以进行进一步分析。作为块541处的活动的一部分,方法511可以包括命令节点进入分析器模式。在选定的时间,可以停止GC事件,以便允许对响应于节点内容服务请求的行为进行更加详细的分析。例如,在JVM实施例中,可以禁止Java方法"System.gc"(虽然还可以使用Java虚拟机(JVM)工具接口(TI)Jvmti->ForceGarbageCollection来触发GC)。从而,方法511可以包括在块545选择性地禁止存储器GC事件。在一些实施例中,可以在分析器模式下确定作为可疑请求的结果而使用的存储器,也可以以该模式下确定由GC事件恢复的存储器。从而,方法511可以继续到块549,以便包括确定在节点内分配给一个或多个可疑节点内容服务请求的第一存储器量,以及确定由存储器GC事件所解除分配(deallocate)的第二存储器量。如果所分配的存储器一直大于所恢复的存储器,那么可能存在存储器泄漏,或者存在由于被调查的可疑节点内容服务请求而造成的随时间一直存在的存储器损失。从而,方法511可以包括在块553处将第一存储器量与第二存储器量进行比较,以便确定是否存在存储器泄漏。然后,方法511可以在块557处结束。本领域的普通技术人员将认识到,图5中所示的方法元素中的每一个都可以添加到图4中所示的方法元素中或者替换图4所示的方法元素中的任意一个。此外,本领域的普通技术人员还将认识到,图4-5的方法元素中的每一个都可以以多种方式组合,以便使用来自各个附图的元素,以串行、并行、循环和/或重复的方式形成多种方法。图6是根据本发明的各种实施例的、以计算机系统600为示例形式的机器602的框图。计算机系统600可以包括指令集612,用于使系统600执行这里所讨论的任意一个或多个活动,包括图4-5中所示的那些活动。系统600可以类似于或等同于图3的系统310或者它的元素中的任意一个,诸如装置314或设备318。在图6中,可以看到,机器602的组件可以包括主存储器620、静态或非易失性存储器624和海量储存器606。耦接到处理器604的其它组件可以包括输出设备628,诸如视频显示器;输入设备632,诸如键盘;和光标控制设备636,诸如鼠标。用于将处理器604和其它组件耦接到网络644的网络接口设备640也可以耦接到总线616。处理器604、存储器620、624以及储存设备606可以各自包括指令612,指令612在被执行时使机器602执行这里所描述的方法中的任何一个或多个。还可以利用多种熟知的传输协议中的任意一种(例如,超文本传输协议),经由网络接口设备640通过网络644发送或接收指令612。取决于待实现的特定实施例,耦接到总线616的这些元件中的任意一个可以不存在、存在单个、或者存在多个。在一些实施例中,机器602作为单个设备工作,或者可以连接(例如,联网)到其它机器而工作。在联网环境中,机器602可以以节点的能力工作,诸如服务器-客户机网络环境中的服务器或客户机设备,或者对等(或者分布式)网络环境中的对等机器。机器602可以包括个人计算机(PC)、写字板PC、机顶盒(STB)、PDA、移动电话、网络设备、网络路由器、交换机或网桥、或者能够执行指令集(顺序的或者其它)的任何其它机器,所述指令集规定将由机器执行的动作。而且,尽管只示出单个机器602,但是术语"机器"也可以被视为包括任意的机器的集合,所述机器单独地或联合地执行指令集(或多个指令集),以便执行这里所讨论的方法中的任何一个或多个。尽管机器可读介质608被示为单个介质,但是术语"机器可读介质"应当被视为包括存储一个或多个指令集612的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器,和/或各种存储介质,诸如处理器604寄存器、存储器620、624和储存设备606)。术语"机器可读介质"还应当被视为包括能够存储、编码或携带指令集以供机器运行并使机器602执行本发明的方法中的任何一个或多个的任何介质,或者能够存储、编码或携带被这样的指令集利用或者与这样的指令集相关联的数据结构的任何介质。因此,术语"机器可读介质"或"计算机可读介质"应当被视为包括有形介质,诸如固态存储器以及光和磁介质。总而言之,可以看到,当使用这里所述的相关性分析来监控存储器消耗时,可以对系统性能产生非常小的影响。因此,通过这些更加直接地与存储器操作交互的解决方案能够提高总体系统性能,以使得在许多实例中,可以快速地_也许及时地得到分析结果,以用于补救存储器消耗情况,否则的话所述存储器消耗情况可能导致系统操作崩溃。本发明的实施例可以实施在各种架构平台、操作系统和服务器系统、设备、系统或应用上。因此,这里所给出的任何特定的架构布局或实现方式仅是为了说明和理解的目的而被提供,并且不意在限制各种实施例。本公开摘要的提供是为了使读者能够快速弄清本技术公开的本质。在这样的理解下提交本公开的摘要其将不被用于解释或限制权利要求的范围和含义。在具体实施方式部分中,为了使本公开更加流畅,在单个实施例中将许多特征组合在一起。这种公开方法不被解释为暗示要求保护的实施例具有的特征多于各个权利要求中明确表述的特征。而且,如权利要求所反映的那样,发明主题存在于少于所公开的单个实施例的所有特征的特征中。因此,特此将权利要求并入具体实施方式中,每个权利要求基于其自身作为单独的实施例。1权利要求一种计算机实现的方法,包括监控存储器垃圾收集事件和节点内容服务请求的发生;确定节点内容服务请求和存储器垃圾收集事件之间的相关性;和报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足与所述相关性相关联的预先选择的标准。2.如权利要求l所述的方法,其中,所述监控包括记录存储器垃圾收集事件的开始时间或结束时间中的至少一个。3.如权利要求l所述的方法,其中,所述监控包括记录节点内容服务请求的开始时间或结束时间中的至少一个。4.如权利要求l所述的方法,其中,所述监控包括在队列中记录节点内容服务请求。5.如权利要求l所述的方法,其中,所述监控包括记录作为节点内容服务请求的一部分的统一资源定位符信息。6.如权利要求l所述的方法,其中,所述确定包括确定在由存储器垃圾收集事件定义的时间间隔上的节点内容服务请求的数量之间的相关性。7.如权利要求l所述的方法,其中,所述确定包括确定在由存储器垃圾收集事件定义的时间间隔上的包括性平均数量与排除性平均数量之间的相关性,其中,所述包括性平均数量是包括选定的统一资源定位符的节点内容服务请求的平均数量,所述排除性平均数量是不包括该选定的统一资源定位符的节点内容服务请求的平均数量。8.如权利要求7所述的方法,还包括将相关性计算为包括性平均与排除性平均之间的差除以包括性平均与排除性平均中的最大值。9.如权利要求7所述的方法,其中,所述时间间隔由垃圾收集事件的开始时间和垃圾收集事件的结束时间中的一个来定义。10.如权利要求l所述的方法其中,所述确定包括确定在由存储器垃圾收集事件定义的时间间隔上的节点内容服务请求的数量之间的相关性,其中,所述节点内容服务请求的数量是基于多个公共通用资源定位符值的。11.如权利要求l所述的方法,还包括执行对服务请求的定量分析,以提供至少一个用于所述相关性的加权因子。12.—种计算机实现的方法,包括监控存储器垃圾收集事件与包括统一资源定位符信息的节点内容服务请求之间的时间关系;确定节点内容服务请求与存储器垃圾收集事件之间的相关性;禾口报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足与所述相关性相关联的预先选择的标准。13.如权利要求12所述的方法,其中,所述确定包括确定在选定数量的由存储器垃圾收集事件定义的间隔上节点内容服务请求的包括性平均数量与在所述选定数量的由存储器垃圾收集事件定义的间隔上节点内容服务请求的排除性平均数量之间的相关性。14.如权利要求12所述的方法,其中,所述报告包括显示网页窗口或工具条窗口中的至少一个,以作为图形用户界面的一部分。15.如权利要求12所述的方法,还包括命令网络中的节点进入维护模式,以使得节点内容服务请求不再由该节点处理。16.如权利要求15所述的方法,还包括命令所述节点进入分析器模式;以及确定在所述节点内分配给节点内容服务请求中的至少一个可疑请求的第一存储器量。17.如权利要求16所述的方法,还包括确定由存储器垃圾收集事件中的一个解除分配的第二存储器量。18.如权利要求17所述的方法,还包括将第一存储器量与第二存储器量进行比较,以确定是否存在存储器泄漏。19.如权利要求12所述的方法,还包括选择性地禁止存储器垃圾收集事件。20.如权利要求12所述的方法,还包括将与多个节点内容服务请求相关联的统一资源定位符信息进行组合,以确定所述多个节点内容服务请求中各个请求之间的相关性。21.—种计算机可读介质,其中存储有指令,用于使得计算机实现一种方法,该方法包括监控存储器垃圾收集事件和节点内容服务请求的发生;确定节点内容服务请求与存储器垃圾收集事件之间的相关性;禾口报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足与所述相关性相关联的预先选择的标准。22.如权利要求21所述的介质,其中,所述方法包括检测所述相关性已经超过与所述预先选择的标准相关联的阈值,指示节点内容服务请求与存储器垃圾收集事件之间的相关性足以触发对节点内容服务请求中的可疑请求进行附加分析。23.如权利要求21所述的介质,其中,所述报告包括显示所述相关性或者与节点内容服务请求中的可疑请求相关联的信息中的至少一个,以作为图形用户界面的一部分。24.—种装置,包括监控模块,用于检测存储器垃圾收集事件和节点内容服务请求的发生;处理器实现的相关性模块,用于确定节点内容服务请求与存储器垃圾收集事件之间的相关性;和报告模块,用于报告与节点内容服务请求中的可疑请求相关联的信息,所述可疑请求满足与所述相关性相关联的预先选择的标准。25.如权利要求24所述的装置,还包括存储器,用于记录与存储器垃圾收集事件相关联的时间信息。26.如权利要求24所述的装置,还包括、显示器,用于连同与节点内容服务请求中的可疑请求相关联的信息一起显示警告消全文摘要本发明涉及监控存储器消耗,公开了装置、系统和方法,进行如下操作监控存储器垃圾收集事件和节点内容服务请求的发生,确定节点内容服务请求与存储器垃圾收集事件之间的相关性,以及报告与节点内容服务请求中的可疑请求相关联的信息。可以将那些满足与相关性相关联的预先选择的标准的请求识别为可疑请求。还公开了其他的装置、系统和方法。文档编号H04L12/26GK101753380SQ200910259220公开日2010年6月23日申请日期2009年12月16日优先权日2008年12月16日发明者艾伯特·齐德利兹,让-巴普蒂斯特·杜迪亚申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1