一种内存过载控制的方法及装置的制作方法

文档序号:6354303阅读:480来源:国知局
专利名称:一种内存过载控制的方法及装置的制作方法
技术领域
本发明涉及内存管理方法及其装置。具体地,本发明涉及一种内存过载的控制方法与装置。
背景技术
在应用服务环境中,持续增加的内存应用一旦达到最大内存限制(maximum heapsize),就会导致应用服务器的崩溃,内存过载(memory overload)正在成为内存管理性能的关键挑战。现有技术中,当判断会发生内存过载时,采用内存垃圾回收(GarbageCollection,GC)提供一部分内存,但是,内存回收本身也需要占用大量的系统资源,在高内存占用率(heap utilization)时,频繁的内存垃圾回收(GC)往往会导致严重的后果,此夕卜,当内存占用率达到一定门限,即便频繁进行垃圾回收也不能避免内存过载。现有技术中,另外一种通常的内存过载管理方法是,当判断会发生内存过载,则丢弃掉进来的请求(incoming request)不作处理,以降低应用程序所导致的内存消耗,这种方法的缺点是丢弃了本应该处理的请求,牺牲了服务质量。综上,基于简单的是否会发生内存过载所进行的内存过载管理技术仍然存在改善的空间。

发明内容
本发明的目的提供一种是根据内存过载的预测参数进行内存管理的方法及装置。为实现上述目的,本发明提供一种内存过载管理的方法,用于包含至少一个节点的计算机系统中,所述方法包括采集所述节点的内存应用信息;基于所述内存应用信息,预测会发生内存过载的第一节点的内存过载期间和过载内存大小;根据所述内存过载期间和所述过载内存大小进行内存空间调度。本发明还提供一种可处理内存过载管理的系统,包括至少一个节点,其特征在于,还包括内存信息收集控制装置,用于收集所述节点的内存应用信息并发送至给内存管理控制器;所述内存管理控制器,用于,基于所述内存应用信息,预测会发生内存过载的第一节点,并计算所述第一节点的内存过载期间和过载内存大小;根据所述内存过载期间和所述过载内存大小进行内存空间调度。本发明还提供一种内存信息收集控制装置,应用于包括至少一个节点的计算机系统中,其特征在于所述内存信息收集控制装置与至少一个所述节点耦接,用于采集内存应用信息,发送至内存管理控制装置,所述内存过载管理控制装置用于预测会发生内存过载的第一节点,计算所述第一节点的内存过载期间和过载内存大小,并根据所述内存过载期间和所述过载内存大小,进行内存空间调度。本发明还提供一种内存过载控制装置,应用于包括多数个节点的计算机系统中,其特征在于所述内存过载控制装置用于根据所述节点的内存应用信息,预测会发生内存过载的第一节点,计算所述第一节点的内存过载期间和过载内存大小,根据所述内存过载期间和所述过载内存大小命令进行内存空间调度。


本发明的这些和其他特征将从伴随的详细描述和附图更显见,其中图I示出本发明一实施方式进行内存过载管理的方法的流程图;图2示出本发明一改进的内存空间调度方法流程图;图3示出预测过载期间T和过载内存大小R的方法流程图;图4示出应用最小二乘法的进行线性拟合的例子;图5不出根据拟合关系映射出内存负载时间分布;图6示出过载波峰的合并以及确定内存过载大小R的示意图;图7示出确定迁移目标之示意图;图8示出内存过载管理系统结构示意图;图9示出应用Websphere XD的节点。
具体实施例方式所属技术领域的技术人员知道,本发明可以体现为系统、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质,计算机可读存储介质例如可以是一但不限于一电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质、或前述各项的任何适当的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或前述各项的任何适当的组合。在本文语境中,计算机可读存储介质可以是任何含有或存储供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的有形介质。计算机可读信号介质可以包括例如在基带中或作为载波的一部分传播的带有计算机可读程序代码的数据信号。这样一种传播信号可以采取任何适当的形式,包括-但不限于-电磁的、光的或其任何适当的组合。计算机可读信号介质可以是不同于计算机可读存储介质的、可以传达、传播或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的任何一种计算机可读介质。包含在计算机可读介质中的程序代码可以采用任何适当的介质传输,包括-但不限于-无线、有线、光缆、射频等等、或上述各项的任何适当的组合。用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如” C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程 序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。下面结合附图详细描述本发明的具体实施方式
。图I是按照本发明一实施方式进行内存过载管理的方法的流程图。本实施方式所涉及的方法流程可以应用于包含至少一个节点的计算机系统中,特别是在一个例子中,应用于包含至少一个节点的集群中。采集所述节点的内存应用信息;基于所述内存应用信息,预测会发生内存过载的第一节点的内存过载期间和过载内存大小;根据所述内存过载期间和所述过载内存大小进行内存空间调度。在步骤101,采集节点的内存应用信息。内存应用信息是可以用来预测内存过载期间(T)和过载内存大小(R)的信息,可以包括节点服务请求率(request arrival rate),以及对应时刻的内存实际需求(required memory),该节点服务请求率(request arrivalrate)是指单位时间对节点服务请求的数量,当节点作为应用服务器时,就是发送给应用服务器的请求数量。该内存实际需求(required memory)是节点的内存使用状态。在该步骤中,既可以周期性的收集内存应用信息,也可以非周期性的收集。在步骤102,基于采集到的内存应用信息,预测会发生内存过载的第一节点的内存过载期间⑴和过载内存大小(R)。在该步骤中,内存过载期间(T)是会发生内存过载的时间段,至少包含一个发生过载的时间段。其中,过载内存大小(R)是发生内存过载的时间段内存溢出的大小。可选的,在该步骤中还可以增加一判断步骤,当预测到会发生内存过载时才进一步预测内存过载期间(T)和过载内存大小(R),如果不会发生内存过载,则返回步骤101。
在步骤103,根据所述内存过载期间和所述过载内存大小进行内存空间调度。作为优选的方式,通过该步骤的处理可调度出足够的内存空间。当然,即内存空间调度的结果也不一定会提供足够的内存空间,但也会在一定程度上减少丢弃的内存服务请求数量,或者在一定程度上降低内存过载的负面影响。用以处理会导致所述第一节点发生内存过载的节点服务请求。传统内存过载管理方法仅能够根据一预设的门限值确定过载是否要发生。由于节点实际提供的内存不会超出其自身内存的最大值,通过实测记录进行内存负载时间分布分析(memory load profile)是不可行的,不能确定内存过载的具体参数,特别是过载的持续期间、过载内存的大小,因此,现有技术中不具有根据内存过载的具体参数进行内存过载管理的可能性。本实施方式中重要改进之一就是提出了根据内存过载的具体参数进行更具针对性的进行内存空间调度,从而能够处理会导致所述第一节点发生内存过载的节点服务请求,处理该些节点服务请求会占用节点的内存。步骤103中内存空间调度的具体实现上,可以采用现有技术中的方式,例如,可以提前进行GC,以准备好足够的内存空间处理高峰时刻的节点服务请求。或者,可以提前用后备存储设备中准备足够的内存空间。虽然将步骤102与现有的内存空间调度技术结合作为完整的方案可以对内存过载的管理有了一定程度的改进,但是GC的处理仍然会影响节点的运行,或者还需要额外的内存设备,仍然存在进一步改进的空间。因此,步骤103中的内存空间调度也可采用相对于现有方式有所改进的内存空间调度方法,接下来叙述的图2涉及的内存空间调度方法就是一种可选的替代方式,能够起到进一步的改进的效果,提供更为有效的过载内存管理。图2示出图I中步骤103的一种改进的内存空间调度的方法流程,包括步骤201到步骤203。在步骤201,确定迁移目标,所述迁移目标包括至少一个第二节点,并且,所述迁移目标至少可以在所述内存过载期间(T)提供至少具有过载内存大小(R)的可用内存。在该步骤中,既可以单独由一个第二节点提供第一节点所需的可用内存,也可以由多个第二节点共同提供,即每个第二节点根据具体的情况贡献大小不同的可用内存,但需保证各个第二节点所提供的可用内存之和至少等于第一节点所需要的内存。在步骤202,将所述第一节点中所述过载内存大小(R)的迁移数据在所述内存过载期间(T)之前迁移到所述迁移目标。具体实现上,根据T、R以及迁移目标信息,发出迁移指令,所述迁移指令用于将所述第一节点中所述过载内存大小(R)的迁移数据在所述内存过载期间(T)之前迁移到所述迁移目标。
在一个例子中,可以将不迫切需要的内存数据转移到空闲的服务器上,例如是做备份数据(replica data),当然,不迫切需要的数据是所属领域技术人员根据实际情况自行确定的。通过预测过载内存大小(R)和内存过载期间(T),以及相应闲散资源的空间和时间间隔,把不迫切需要的数据迁移到被选定的空闲节点上,可以利用系统里的闲置资源来增大一个过载服务器的服务容量,“闲散”是由于每个业务负载随着时间的profile不一样,所认定的不迫切需要的数据。主数据(primary data)与备份数据(replica data)均会导致内存过载,因此,在另一个实施例中,还可以迁移主数据,特别是有些情形下,没有备份数据O^plica data)只有主数据(primary data)时,仍然可以执行迁移,将请求重定向到迁移后的节点进行处理,还需要迁移内存中的数据,并且把应用服务器的运行时逻辑也迁移过去,同时通知前台的请求分配系统这样的变化,才能够处理重定向后的请求。在步骤203,所述内存过载期间(T)结束后,所述目标节点将所述迁移数据恢复至所述第一节点。该步骤为一可选步骤。图3示出图I中预测所述过载期间T(即步骤102)的例子。图I中的步骤102可以包括步骤301到步骤302。在步骤301,根据内存实际需求(Required Memory)、节点服务请求率(requestarrival rate)的历史数据,生成完整的内存负载时间分布图。历史数据仅能记载部分实际发生的内存负载时间分布,不能提供包含内存溢出(Out of memory)时的完整的负载曲线(load profile)。在本申请的一个实施例中,巧妙的通过节点服务请求率(request arrival rate)与内存实际需求(Required Memory)之 间的关联关系生成完整的内存负载时间分布,即计算内存负载L与需求到来率Ar之间的关联关系Ar,L = f (Ar),从而得到包含了内存过载时的完整的内存负载时间分布。在图4所示的实施例中,可应用线性回归确定拟合关系的方式计算关联关系,即L与Ar为线性关系L = a*Ar+b,确定待定系数a和b。具体而言,在该实施例中,横坐标表示节点服务请求率(Request Arrival Rate),是指单位时间内节点服务请求的数量,该图中纵坐标表示需求内存数量(Required Memory),因此,每个采样数据点表示的是节点服务请求率与真实的需求内存数量之间的对应关系。进一步的,可采用最小二乘法完成线性拟合,确定出待定系数a和b,在该图所示的例子中,a = 0. 2, b = O。在关联关系的计算中,采用线性回归可以拟合处理所有情况,对于一些特殊的情况,应用线性回归可以实现基本的效果,而应用非线性回归则可以达到更好的效果,例如,在一个例子中,对于同一个session中的若干请求,可能是第一个请求出发了写操作,占用了内存,但是后面几个请求促发的是读操作,读取第一个请求写入内存的数据,这样后面几个请求不会占用和第一个请求一样比例的内存,因此是非线性关系的,这种情况非线性拟合效果会好于线性拟合。此外,在一个例子中,还可以同时执行线性拟合和非线性拟合,用方差作为评价两种方案的尺度,选择方差小的拟合方案执行映射。参看图5,采用上述方法流程,根据节点服务请求率(Request Arrival Rate)与内存实际需求(Required Memory)两者历史数据所拟合出的映射关系,可以得到完整的内存负载时间分布(memory load profile),内存负载时间分布可以数据文件的方式存在,所属领域技术人员可以灵活设定其存储位置。该内存负载时间分布可用来在后续步骤中计算内存过载期间(T)和过载内存大小(R),还可在后续步骤中用来确定迁移目标。内存负载时间分布既可以周期性或非周期性的生成,也可以按需生成。通常是统计一段时间内的内存应用信息,离线生成。在一个例子中,应用步骤101收集的信息,以离线的方式做每个节点服务的profile曲线,例如最近10个星期的统计,周一,周二,周三,周四,周五,分别给出一条profile的曲线。或者不区分周几统一给出profile的曲线。在步骤302,根据内存负载时间分布的过载峰值确定所述内存过载期间(T).
如果该内存负载时间分布是事先离线生成的,在发生过载的时候被调用来预测T和R。当然,也可以根据保存的内存应用信息按需以在线的方式生成。首先,确定会发生内存溢出(out of memory)的峰值期间,可设定一内存门限值Mthreshht5ld,内存负载时间分布中超过该门限值的部分就是会发生内存过载的部分。参看图6,在一个实施例中,如果两个峰值期间的间距小于预设的门限值Tinteval,则进行合并,从而形成最 右侧所示的曲线形状,可以避免进行频繁的负载迁移,所属领域技术人员可以基于具体情况确定Tinteval的数值。然后,根据超出内存过载门限M—的峰值的持续时间预测过载的持续期间。接下来,进一步描述图I中步骤102预测过载内存大小R的实施例。图I中的步骤102可以进一步包括步骤303到步骤304。步骤303 :通过比较确定,取得内存过载期间⑴内最大的需求内存值Mmax ;步骤304 :参看图6所示的确定内存过载大小R示意图,设定R = Mmax-Mttoeshhtjld,在另一个实施例中还可以考虑预测的误差Me,即R
Mmax Mthreshhold+Me。图7所示以两个特定节点为例,示意了如何确定迁移目标,用以辅助说明图2中的步骤202。第一节点,在一个实施例中,主要用于处理呼叫控制服务(call controlservice),具有如图7上部分所示的内存负载时间分布,通信的高峰通常出现在上班时间,因此在上午和下午所在的时间段会出现高峰。第二节点,在一个实施例中,主要用于处理C2C (Click to call)服务,具有如图7下部分所示的内存负载时间分布,其原因可能是该服务的高峰通常在下班后,因此,内存负载分布的高峰出现在晚上的时段。两者的内存负载时间分布具有不同时间分布特性,其背后所体现的日常生活规律仅是为了进行说明,而不是为了对本申请进行限制,由于各种原因所导致的处理不同应用的节点会具有的不同的内存负载profile,都可带来优化内存控制的空间。在图7所示的实施例中,步骤202的具体体现如下,负责呼叫控制服务(callcontrol service)的第一节点,在tl时刻发生内存过载,内存过载期间T是9个小时,内存过载大小R是2. 5GB。根据该分析结果,负责C2C服务的第二节点是适格的迁移目标,也就是说,第二节点在第一节点发生过载的9小时会有2. 5GB的空闲内存。进一步的,第二节点可在时刻tl之前进行迁移,将2. 5GB的复制数据发送至Node B。迁移时间可适当提前于实际发生过载的时刻,本领域技术人员可根据实际情况选择迁移的时间,以使得有足够的时间进行迁移。图8是按照本发明一实施方式用于内存过载管理的系统结构图。该系统中包含多数个节点801 805,多数个内存信息收集控制装置811 812,内存管理控制装置830。该系统可以用于解决节点内存在节点服务请求峰值阶段过载的问题。内存信息收集控制装置801 805分别与各节点801 805耦接,用于收集与其耦接的节点的内存应用信息并发送至内存管理控制装置830。各内存信息收集控制装置是独立的功能单元,具体的实施上,既可以用与节点相独立的装置来实现,也可以通过在节点增加内存信息收集控制功能来实现。内存管理控制器830用于进行内存管理,用于响应于内存应用信息,预测会发生内存过载的第一节点,计算所述第一节点的内存过载期间(T)和过载内存大小(R),还可用于根据所述内存过载期间和所述过载内存大小进行内存空间调度,用以处理会导致所述第一节点发生内存过载的节点服务请求。在一个实施例中,内存管理控制器830的功能可以拆分成多个子功能单元,例如包括过载分析器和内存管理控制器,其中,该过载分析器,响应于内存应用信息,预测会发生内存过载的第一节点,计算所述第一节点的内存过载期间(T)和过载内存大小(R),过载分析器可以实现图I、图2中中计算内存过载期间和过载内存大小的方法流程。其中,内存空间调度控制器,根据所述内存过载期间和所述过载内存大小进行内存空间调度,用以处理过载的节点服务请求。 如前所述,可以采用现有技术调度出足够的内存以处理过载的节点服务请求,从而形成完整的内存过载管理系统,但是,仍然存在进一步改进的空间。在图8所示的实施方式中,还对内存管理控制器830做了进一步的改进,可用于实现图I中步骤S103以应用新的内存空间调度方案,确定出迁移目标,迁移目标包括至少一个过载节点以外的第二节点,并且,所述迁移目标至少可以在所述内存过载期间(T)提供至少具有过载内存大小(R)的可用内存。上述改进的内存调度可在通过主数据(primary data)和备份数据(replicadata)的情形下应用,在该情形中,为了保证节点中主数据(primary data)的可靠性,主数据会被复制到内存复制系统(memory replication system)之中,这样的话如果有节点出问题,主数据可以完全恢复出来使得系统继续工作,这种分散是一种用来实现高可用性的部署。图8中节点801中主数据A在节点802、节点803中具有备份数据A’和A”,其它节点也具有类似的存储方式。此处需要强调的是,图8中所示节点的存储方式仅是为了说明改进的内存空间调度控制器,如果内存空间调度控制器采用传统的方式,则不必采用主数据与备份数据分散的存储方式。内存空间调度控制器确定出适格的迁移目标,该迁移目标仅包括804节点,然后在所述内存过载期间(T)之前发出进行数据迁移的命令,数据发送、接收模块根据该命令进行数据的迁移。由于数据发送接收装置是所属领域公知的技术,其具体实现细节在此不作赘述。需要说明的是,数据发送接收装置的位置是可选的,既可以独立设置,在一个例子中,当用于数据发送、接收的模块位于内存信息收集控制装置中时,则将数据迁移的命令发送给内存信息收集控制装置。信息收集控制装置将发生过载的第一节点中至少所述过载内存大小(R)的迁移数据在所述内存过载期间(T)之前迁移到所述迁移目标。对于图8所示的实施方式而言,参看虚线所示的方向,过载节点801中的备份数据C”被迁移到迁移目标804中。可选的,内存信息收集控制装置在所述内存过载期间(T)之后,将迁移数据恢复至所述第一节点。采用基于分析(profile-based)的解决方案,被选择的目标节点在将复制数据返回原节点时,也能够进一步避免内存过载。在一个改进的实施例中,内存应用信息包括节点服务请求率和实际内存负载需求,内存管理控制器830还用于根据所述需求到达速率和所述实际内存负载需求的历史记录计算出两者的关联关系,进而根据所述关联关系,计算出内存负载时间分布(profile),具体方案可应用图2、图3、图4所公开的方法,所属领域技术人员在此基础上,也可在其它装置中,例如,还可在内存信息收集控制装置上离线或在线计算内存负载时间分布。内存负载时间分布用于确定内存内存过载期间(T)以及所述过载内存大小(R),或者用于确定迁移目标。对于本领域技术人员而言,在图I至图7以及说明书中记载的各种方法流程的基础上,可以不费创造性的劳动在图8所示的系统中实现,因此,将不再一一赘述如何在图8中具体实现上述各个方法步骤。图9所示的是节点的一个具体实施方式
,表示在节点中应用IBM公司的WebSphereExtended Deployment (Websphere XD)时的系统不意图。WebSphere Extended Deployment, Websphere XD 包括 VE (Virtual Enterprise)和XS(eXtreme Scale)两个重要的组成部分,VE用于提供大规模应用托管(hosting)的能力,并且改善服务质量,XS是大规模的内存复制系统,可以提高VE的可用性(availability)。具体到图9所示的实施方式中,作为应用服务器的节点里面装载的VE是应用的运行时处理逻辑,负责处理应用请求APP#1,APP#2等。为了保证VE的应用数据(即主数据,primary data)的可靠性,应用数据会被复制到内存数据库之中,这样的话如果有VE节点出问题,应用数据可以完全恢复出来使得系统继续工作。XS通过primary和replica的分散来实现高可用性(High Availability,HA)。每个主数据(primary data)具有k个对应的备份碎片,在其它服务容器中(other servercontainer),当主数据fail的时候,它的备份(replica)立即会接管它的工作。VE和XS既可以被部署在虚拟机上,也可以被部署在实体计算机中,通常一个VE只服务于一个应用。由于XS的内存空间构成比例是预先配置的,即使发生内存过载,XS的内存空间构成也没有任何变化,这样的话,当预测到会有过载发生时,节点服务请求必须被丢弃,因此,该图所实例的节点可以作为实现以上技术方案的一个具体应用场景。需要强调的是,图9所示的实施例并不是对本申请的限制,其中,VE仅是应用程序虚拟基础设施的一种,应用程序虚拟基础设施是一种提供应用程序虚拟化的平台,它并不是应用服务器,而是在应用服务器之上运行,用来将应用服务器聚合成一个网格或虚拟化环境。本领域技术人员在本发明公开信息的基础上,还可以想到其它的替换方式,例如JBoss, Tomcat, BEA Weblogic 等。其中,XS 也是内存复制系统(In-Memory ReplicationSystem)的一种,内存复制系统能跨多个服务器动态缓存、分区、复制和管理应用数据与业务逻辑,本领域技术人员在本发明公开信息的基础上,还可以想到其它的替换方式,例如,Oracle Coherence、HStore、DynaCahe 等。在图9所示的实施例中,对于使用内存复制技术的应用服务器集群中,由于突发大量节点服务请求会造成内存过载,采用图I到图8所涉及的技术方案可以发现应用服务器集群中互补的内存资源,实现对资源进行合理的迁移,使得现有技术中会被丢弃掉的内存需求能够被处理。附图I到9中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
就以上教导而言,可以有许多本发明的修改和变体,且许多修改和变体对于本领域的技术人员而言是明显的。本发明的范围由所附的权利要求所界定。
权利要求
1.一种内存过载管理的方法,用于包含至少一个节点的计算机系统中,所述方法包括: 采集所述节点的内存应用信息; 基于所述内存应用信息,预测会发生内存过载的第一节点的内存过载期间和过载内存大小; 根据所述内存过载期间和所述过载内存大小进行内存空间调度。
2.如权利要求I所述的方法,其特征在于,所述根据所述内存过载期间和所述过载内存大小进行内存空间调度包括 确定迁移目标,所述迁移目标包括至少一个第二节点,至少可以在所述内存过载期间提供至少具有过载内存大小的可用内存; 发出迁移指令,所述迁移指令用于将所述第一节点中至少所述过载内存大小的迁移数据在所述内存过载期间之前迁移到所述迁移目标。
3.如权利要求2所述的方法,其特征在于,在所述内存过载期间之后,将所述迁移数据恢复至所述第一节点。
4.如权利要求2所述的方法,其特征在于,所述迁移数据为备份数据。
5.如权利要求2所述的方法,其特征在于,所述迁移数据为所述第一节点的主数据,并且将指向所述第一节点的节点服务请求重定向到所述迁移目标中。
6.如权利要求I或2所述的任一项方法,其特征在于, 所述内存应用信息包括节点服务请求率和实际内存负载需求; 根据所述节点服务请求率以及所述实际内存负载需求的历史记录确定两者的关联关系; 根据所述关联关系,确定内存负载时间分布。
7.如权利要求6所述的方法,其特征在于, 根据所述内存负载时间分布的过载峰值确定所述内存过载期间以及过载内存大小。
8.如权利要求6所述的方法,其特征在于,根据所述内存负载时间分布的过载峰值确定所述迁移目标.
9.如权利要求7所述的方法,其特征在于,如果两个所述过载峰值的间隙小于一预设的时间阈值,则合并该两个所述过载峰值所对应的波峰。
10.如权利要求6所述的方法,其特征在于, 取得所述内存过载期间的最大需求内存值,所述过载内存大小为所述最大需求内存值与内存过载门限值之差。
11.一种内存过载管理系统,包括至少一个节点,其特征在于,还包括 内存信息收集控制装置,用于收集所述节点的内存应用信息并发送至给内存管理控制器; 所述内存管理控制器,用于,基于所述内存应用信息,预测会发生内存过载的第一节点,并计算所述第一节点的内存过载期间和过载内存大小;根据所述内存过载期间和所述过载内存大小进行内存空间调度。
12.如权利要求11所述的系统,其特征在于, 所述内存管理控制器还用于确定迁移目标,所述迁移目标包括至少一个第二节点,并且,所述迁移目标至少可以在所述内存过载期间提供至少具有过载内存大小的可用内存;进而,发出迁移指令,所述迁移指令用于将所述第一节点中至少所述过载内存大小的迁移数据在所述内存过载期间之前迁移到所述迁移目标。
13.如权利要求12所述的系统,其特征在于,所述内存管理控制器在所述内存过载期间之后,发出恢复指令,所述恢复指令用于将所述迁移数据恢复至所述第一节点。
14.如权利要求12所述的系统,其特征在于,所述迁移数据为备份数据。
15.如权利要求11或12所述的任何一个系统,其特征在于, 所述内存应用信息包括节点服务请求率和实际内存负载需求; 所述内存管理控制器还用于根据所述节点服务请求率和所述实际内存负载需求的历史记录确定两者的关联关系,进而根据所述关联关系,计算出内存负载时间分布;
16.如权利要求15所述的系统,其特征在于,所述内存管理控制器用于根据所述内存负载时间分布的过载峰值确定所述内存过载期间以及所述过载内存大小。
17.如权利要求15所述的系统,其特征在于,根据所述内存负载时间分布确定所述迁移目标。
18.如权利要求16所述的系统,其特征在于,所述过载内存大小为最大需求内存值与内存过载门限值之差,其中,所述最大需求内存值是内存过载期间的最大需求内存值。
19.一种内存信息收集控制装置,应用于包括至少一个节点的计算机系统中,其特征在于 所述内存信息收集控制装置与至少一个所述节点耦接,用于采集内存应用信息,发送至内存管理控制装置,所述内存过载管理控制装置用于预测会发生内存过载的第一节点,计算所述第一节点的内存过载期间和过载内存大小,并根据所述内存过载期间和所述过载内存大小,进行内存空间调度。
20.一种内存过载控制装置,应用于包括至少一个节点的计算机系统中,其特征在于 所述内存过载控制装置用于根据所述节点的内存应用信息,预测会发生内存过载的第一节点,计算所述第一节点的内存过载期间和过载内存大小,根据所述内存过载期间和所述过载内存大小发出内存空间调度指令,所述指令用于进行内存空间调度。
全文摘要
公开了一种用于内存过载管理的方法及装置,用于包含至少一个节点的计算机系统中,主要技术要点包括采集所述多数个节点的内存应用信息;基于所述内存应用信息,预测会发生内存过载的第一节点,计算所述第一节点的内存过载期间和过载内存大小;根据所述内存过载期间和所述过载内存大小进行内存空间调度。还进一步对内存空间调度进行改进,可以发现多数个节点中互补的内存资源,实现对资源进行合理的迁移,使得现有技术中会被丢弃掉的节点服务请求能够被处理。
文档编号G06F12/02GK102622303SQ201110035178
公开日2012年8月1日 申请日期2011年1月30日 优先权日2011年1月30日
发明者史巨伟, 李立, 杨博, 王文杰 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1