首页> 中国专利> 面向对象的通用自适应控制框架

面向对象的通用自适应控制框架

摘要

本发明描述了一种用于构建和实现对计算机系统和应用进行自动调优的通用软件代理方法和系统。该框架定义了模块和接口以允许以模块化方式创建代理。目标系统(260)的细节被适配器(230)获得,适配器(230)提供到目标系统(260)的统一接口。该代理中的数据由度量管理器(240)管理,而控制器模块实现所希望的控制算法。模块化结构和通用接口允许构建可应用于多种目标系统和能使用多种控制算法的通用代理。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-03-27

    未缴年费专利权终止 IPC(主分类):G06F9/45 授权公告日:20100526 终止日期:20120129 申请日:20030129

    专利权的终止

  • 2010-05-26

    授权

    授权

  • 2005-02-02

    实质审查的生效

    实质审查的生效

  • 2004-12-01

    公开

    公开

说明书

技术领域

本发明一般地涉及计算机系统性能,特别涉及以一种通用并独立于应用的方式对计算机系统和应用自动进行性能调优的系统和方法。

背景技术

在过去几年中,分布式和网络化系统的复杂性快速提高。这在很大程度上归因于客户机一服务器体系结构以及其他分布式计算范型(paradigm)的利用。这些计算机系统和软件(操作系统、中间件和应用)已变得如此复杂,以致要把它们配置成具有最佳性能是困难的。

数据库(如ORACLE、DB/2)、消息排队系统(如MQSERIES)以及应用服务器(如WEBSPHERE、DOMINO)等复杂应用差不多有数十个甚至数百个参数来控制它们的配置、行为和性能(DOMINO/DB2系统管理员指南)。这种复杂系统的行为还受系统用户放到系统上的动态载荷的制约。设置各单个参数需要相当多的专业技能,而更大的挑战是对各参数间的相互作用及对系统行为和性能造成的影响的理解。增大对这些系统管理难度的另一因素是这类系统可以是非常动态的,因此可能需要不断地监视和调整它们的参数,例如如果工作载荷随时间变化的话。

这样,不仅由于雇用专家帮助的成本,而且由于系统不是被适当配置而造成的潜在收入损失,使得特定系统的总体拥有成本(TCO)会增大。为降低TCO和加到系统管理人员身上的负担,许多软件供应商现在转向软件代理,以帮助应对管理这些复杂系统的复杂性。

软件代理很适于控制这些系统的任务。现有的专家知识能被一劳永逸地纳入该代理,从而降低对最终用户专业技能的需求。此外,软件代理能与系统更紧密地联系在一起并能实现甚至比人更密切的监视和更新。在控制论、最优化、运筹学以及人工智能领域的新近进展提供了丰富的算法和技术,供动态地调优复杂系统的行为,即使是在没有很多专家知识的情况下。

已开发出多种针对目标的或“定制的自动调优系统”(CATS)。实例包括(1)由Abdelzaher等在“用于QoS自适应通信的终端主机体系结构”IEEE实时技术和应用研讨会,Denver,Colorado,1998年6月中描述的系统,该文内容被包含于此以供参考;以及(2)Aman等在“用于管理分布式数据处理工作载荷的自适应算法”IBM系统杂志,Vol.36,No.2,1997中描述的系统,该文内容被包含于此以供参考。Abdelzaher等的系统使用任务优先级来控制多媒体在通信子系统中的分发的服务质量。Aman等的系统提供一种手段,管理人员利用这一手段指定响应时间和吞吐量这些在MVS(多重虚拟存储)系统中要实现的目标,它使用MVS专用机制实现这些目标。

“调优”这一构想试图通过调整现有的资源分配来改善服务水平。为实现上述目标,需要访问确定资源分配的那些度量和控制。一般地说,有三类度量,即:(1)“配置度量”,它们描述不会由于调优控制而发生改变的与性能有关的目标特性,例如,线(line)速度、处理器速度以及存储器大小;(2)“工作载荷度量”,它们表征目标上的载荷,如到达速率和服务次数;以及(3)“服务水平度量”,它们表征发布性能,例如响应时间、队列长度以及吞吐量。

“调优控制”是能调整目标资源分配因此能改变目标的性能特征的那些参数。我们给出几个实例。LOTUS NOTES作为一个电子邮件系统和应用框架有很大一组控制参数。其中有:NSF BufferPoolSize用于管理存储器,Server MaxSessions用于控制服务器的准入,以及Server_SessionTimeout用于限定空闲用户的数量。在支持差异服务的基于Web应用中,有按照服务类别和服务器类型确定路由分数的调优控制。MQ SERIES作为分布式系统中的可靠传输机制,有对存储器分配和赋予优先级的控制。数据库产品(例如IBM的DB/2)有对类别索引和分配缓冲池大小的控制。

CATS要求能预先识别出度量和调优控制,以便能将解释和调整这些度量和控制的机制纳入自动调优系统。因此,CATS的构建和维护仍需要相当高的专业技术。随着因特网的出现,软件系统及其组件快速地演变,它们处理的工作载荷也是这样。于是,自动调优系统的更新速率很可能必须赶上调优发生的速率。在这种情况下,自动调优的价值被严重削弱。

与自动调优有关的现有技术大多集中于开发与目标系统(即受控制的系统)紧密耦合的特定算法和体系结构。在这些情况中,这些算法不容易再应用于其他系统,其他控制方案也不能插入所提出的体系结构中。

现有的独立于目标的自动调优技术不考虑对访问度量和控制参数给予体系结构上的支持。为了使通用的自动调优系统能从目标那里访问到所需参数,实现通用、自动调优需要很好定义的接口。先前的工作忽略了这些考虑。

通过陈述关于度量的语义和调优控制的操作的信息有助于寻找调优控制的适当设置。特别地,对于目标而言,把度量放入配置、工作载荷以及服务水平这些类别中是有帮助的。这些指定可以有助于通用系统的构建。再有,应该有某种方式来表示对调优控制的调整所造成的定向影响,因为具有这些知识会降低寻找调扰控制的适当配置的复杂性。以往的工作没有集中在这些方面。

发明内容

上述问题以及现有技术的其他相关问题已由本发明的面向对象的通用自适应控制框架予以解决。本发明可应用于一个或多个目标系统,如一个网络中的一个或多个计算机系统。

有利地,本发明提供一个灵活的软件体系结构,用于创建通用自动调优代理(GATA),这些软件代理由一个或多个控制器模块(这里也称作“自动调优控制器”)以及一个或多个目标系统(应用)适配器(这里也称作“自动调优适配器”)构成。再有,本发明允许用户指定该代理的各构件(控制器和适配器)之间的接口,从而能以即插即用的方式替换其他构件。本发明还提供接口允许各控制器以任意的复杂方式互连,允许实现(和构成)任何可计算的控制策略。再有,本发明提供一种机制,允许在该框架内创建的各代理彼此互连和通信,以形成软件代理的潜在复杂网络和/或层次结构。此外,本发明提供定制器(customizer)接口,这允许可选地和灵活地人工监视以及必要的人工干预。

这一体系结构允许在通用框架内实现许多控制策略。再有,它允许该控制策略以模块方式实现,从而它不必与目标系统绑在一起。模块化还允许同一控制策略容易地应用于不同的目标系统。该体系结构的灵活性足以实现需要多重控制器的策略。此外,它使得能够进行代理间通信,这提升了现有基础设施的作用(无需额外编码)。这允许我们构建复杂的代理网络以控制复杂的、分布式系统。

根据本发明的一个方面,提供了一个调优系统,用于对一个或多个目标系统自动进行调优。度量管理器管理对应于一个或多个目标系统的至少一组度量。一个或多个控制器根据这至少一组度量实现一个或多个控制策略。所述的一个或多个控制策略独立于所述的一或多个目标系统中任何一个系统的特定体系结构。一个或多个适配器针对一个或多个控制策略提供与一个或多个目标系统的接口。这一个或多个适配器中至少有一个是针对这一个或多个目标系统中的一个相应系统。

根据本发明的另一方面,该调优系统进一步包含至少一个定制器,用于接收用户输入以便定制度量管理器、一个或多个控制器以及一个或多个适配器中的至少一个。所述的至少一个定制器是一个图形用户接口。

根据本发明的又一个方面,所述的一个或多个控制器包含一个主控制器,用于解决一个或多个控制策略之间的冲突。

根据本发明的再一个方面,该调优系统可以调用其他调优系统,以便针对一个或多个目标系统形成具有层次结构的调优系统。

根据本发明的再一个方面,该调优系统与其他调优系统合作操作以实现这一个或多个控制策略。

根据本发明的再一个方面,这一个或多个控制器中至少有一些是模块,因而能够被从该调优系统中删除、修改或替换。

根据本发明的又再一个方面,这一个或多个适配器中至少有一些是模块化的,因而能够被从该调优系统中删除、修改或替换。

由下文中结合附图对优选实施例的详细描述,本发明的这些及其他方面、特点和优点将变得显而易见。

附图说明

图1是一个方框图,其描绘了根据本发明的一个实施示例可应用本发明的软件代理的典型操作环境;

图2是一个方框图,其描绘了根据本发明的一个实施示例构成一个软件代理的各构件以及它们的相应互连;

图3是一个树形图,其表示了根据本发明的一个实施示例的度量类型层次结构;

图4是一个方框图,其表示了根据本发明的一个实施示例使用单一控制方法控制单一应用的一个简单代理;

图5是一个方框图,其表示了根据本发明的一个实施示例在单一代理中如何能包括多重控制策略;

图6是一个方框图,其描绘了根据本发明的一个实施示例的层次控制配置;

图7是一个方框图,其表示了根据本发明的一个实施示例的一个代理,它是图6所示层次控制配置的一个部分;以及

图8是一个流程图,其说明了根据本发明的一个实施示例创建一个自动调优软件代理的方法。

具体实施方式

图1是一个方框图,其描绘了根据本发明的一个实施示例可应用本发明的软件代理的典型操作环境。代理110接收来自人(或软件)系统管理员实体120的信息,涉及所希望的服务水平要求以及影响控制器操作的各种参数。从目标应用130本身接收对代理110的其他输入,其涉及如这里讨论过的配置、工作载荷和服务水平度量。使用这些输入,代理110计算目标系统130或其他系统的控制设置。然后这些控制设置被传送到目标系统130上。这样,我们看到,代理110针对目标系统130进行闭环操作。图1还表示了,目标系统130的行为受用户140施加于它的工作载荷的控制。图1的最后一个方面是,管理员120除了提供控制器参数外,还能访问与控制器操作有关的度量。这能用于监视自动代理110,以保证它的行为适当并测量它的操作效率。

这样一个代理的内部构件图示于图2。具体地说,图2是一个方框图,其描绘了根据本发明的一个实施示例构成一个软件代理的各构件以及它们的相应互连。我们把这一代理体系结构称作自动调优代理。

图2所示软件代理包括:主自动调优控制器210;一个或多个从属自动调优控制器(下文中统称“从属自动调优控制器”)220;一个或多个自动调优适配器(下文中统称“自动调优控制器”)230;一个资料库250;一个度量管理器240;一个管理员应用编程接口(API)265;定制器270、280和290。图2所示软件代理与一个或多个目标系统和/或一个或多个其他自动调优代理260交互作用(在下文中可交换地称作“目标系统”或“其他自动调优代理”,以表明根据本发明的软件代理可与其他代理以及不是其他代理的目标系统交互作用)。前述表明,一个自动调优代理本身可为另一自动调优代理的目标系统。

一个自动调优代理可由一个或多个自动调优控制器和一个或多个自动调优适配器构成。当在一个代理中有多个自动调优控制器时,它们当中有一个被指定为主控制器210,并负责产生最终控制行动。取决于控制算法,主控制器210可以使用其他(从属)控制器220中的任何控制器作为子例程帮助确定所希望的控制行动。

图3是表示了根据本发明的一个实施示例的度量类型层次结构的树状图。度量390被分成只读度量370和读/写度量380。在这里描述的本发明实施示例中,配置310、工作载荷320和服务水平330度量是只读的,而调优控制340被认为是读/写度量。当然,也可使用其他安排,同时仍保持本发明的精神和范围。

通过度量管理器240管理度量。这一实体提供接口以添加、删除和列表(图2中的getMetric())该代理已知的度量组。度量管理器240允许管理员通过定制器280或管理员API 265来选择已知度量的子集以记录在资料库250中用作日志。度量管理器240提供一组其他功能,如选择日志记录目的地和启动/取消日志记录功能。

自动调优适配器230是该代理与目标应用260的接口。每个自动调优适配器230定义一组它知道的度量。这组度量能通过查询自动调优适配器230获取(图2中的getMetrics())。对于只读的度量,自动调优适配器230提供了一个从目标系统260得到这些度量的最新值的手段(图2中的过程process())。对于调优控制度量,自动调优适配器提供了在目标系统260上设置调优控制之值的手段(图2中的setControl())。自动调优适配器230是目标专用的并且提供一个抽象,从而控制算法本身不需直接绑到一个特定目标系统上。为了把这同一控制算法应用到另一目标系统,只需为那个目标系统替换自动调优适配器。应该指出,目标系统266可以是任何外部实体,包括,例如,另一个自动调优代理。这一性质允许我们构建代理链,下文中我们将用它构建代理层次结构。

自动调优控制器210、220实现一个控制策略。自动调优控制器210、220从度量管理器得到所有感兴趣的度量(使用getMetric())。自动调优控制器210、220提供机制计算误差(与所希望的服务水平的偏差)、计算新的控制值并设置这些值(通过setControl()调用相应的自动调优适配器230部件)。

一个典型的控制循环如下所示:

1.如果(同步方式),则:

a.调用同步适配器

2.计算与所希望的服务水平的误差

3.计算新的控制值(这实现控制算法)

4.如果(当前控制器是主自动调优控制器210),则:

a.设置该控制值

5.重复

应该理解,上面的步骤2(计算误差)是一个可选步骤。尽管大多数控制算法对该误差进行操作,但也有一些算法并不对该误差进行操作。当然,其他变体是可能的而且不难由相关领域普通技术人员构想出来。

自动调优适配器230可以以同步方式或异步方式操作。“同步”是指刚好在计算新的控制值之前调用自动调优适配器230。在异步方式下,自动调优适配器230被假定为以它自己的某一其他(由用户定义的)频率被调用以得到最新的度量值。这一特性允许我们在控制频率不同于读出频率的情况下实现自动调优控制器。

在计算与所希望的服务水平的误差时,自动调优控制器可在必要时访问度量管理器240所知道的任何度量。

每个构件(度量管理器240、自动调优适配器230、自动调优控制器210、220)的用户接口是通过定制器270、280、290提供的。定制器是向每个构件的底层细节提供GUI的实体。在这里描述的实施示例中,为每个作为代理一部分的部件提供一个定制器。当然,其他安排是可能的,包括,但不限于为作为代理一部分的每类部件(如自动调优控制器、适配器等)提供一个定制器。例如,在度量管理器240的情况中,定制器允许用户指定要记录到日志中的度量、该日志文件的位置等等。在自动调优控制器的情况中,定制器允许我们设置控制频率,选择主自动调优控制器等。对于自动调优适配器230,我们可以选择操作方式:同步/异步,并允许人工设置调优控制(在我们不想让自动代理进行操作的情况下)。定制器270、280、290还提供一种方式把可得到的度量展现给用户,从而可实现实时监视。

我们现在提供一些具体实例说明这一框架如何能用于容易地创建软件代理以控制多种计算机系统。为了举例说明一个特定代理,需要如下构件:用于每个目标系统的自动调优适配器以及一个(或多个)控制算法。

图4是一个方框图,其表示了根据本发明的一个实施示例使用单一控制方法控制单一应用的一个简单代理。图4所示软件代理包括:一个单一自动调优控制器410;一个自动调优适配器460;一个资料库450;一个度量管理器440;一个管理员API 465;定制器470、480和490。图4所示软件代理与目标系统或其他自动调优代理(下文中可交换地称作“目标系统”或“其他自动调优代理”)460相互作用。

对于单个目标系统和单个控制算法(如图4所示)的情况,其基本代理创建过程将在下文中针对图8加以说明。

通过简单地用新目标系统的适配器构件代替当前的适配器构件,可以将使用同一控制算法的同一代理用于另一个不同的目标系统。这使得能再次使用现有的知识。类似地,能通过替换控制器模块容易地改变控制算法。

图5是一个方框图,其表示了根据本发明的一个实施示例在单一代理中如何能包括多重控制策略。

图5所示软件代理包括:一个主自动调优控制器510;一个或多个从属自动调优控制器(下文中统称“从属自动调优控制器”)520;一个自动调优适配器560;一个资料库550;一个度量管理器540;一个管理员API565;定制器570、580和590。图5所示软件代理与一个目标系统或另一个自动调优代理(下文中可交换地称作“目标系统”或“其他自动调优代理”)560相互作用。这里,主自动调优控制器510实现顶级控制策略,它利用多个较低级控制策略计算控制值。这一代理可以如下文中针对图8所作描述那样创建。

图6是一个方框图,其描绘了根据本发明的一个实施例的层次控制配置。这里,“US自动调优代理”640依次调用“东海岸”620和“西海岸”630自动调优代理,而这些代理又依次调用它们的下属640、650、660、670。下属640、650、660和670分别控制/管理应用1 681、应用2 682、应用3 683和应用4 684这些应用。这一层次结构能通过该层次结构每一级上的控制器来实现。

图7是一个方框图,其表示了根据本发明的一个实施示例的一个代理,它是图6所示层次控制配置的一个部分。特别是,图7中描绘出在该层次结构的一个内部节点处的一个控制器(一个主自动调优层次控制器710)。在该实施例中,指出这一点是有意义的:对于较高级别的代理,该目标系统是若干较低级代理之一;自动调优代理适配器730使这种递归关系成为可能,适配器730提供到另一个自动调优代理760的标准适配器接口。这一实例说明我们的框架的完全通用性,并且说明我们能容易地使用这同一框架构造复杂的代理和控制器链。除了主自动调优层次结构控制器710、自动调优适配器730以及另一自动调优代理760外,图7所示实施例还包括:一个或多个从属自动调优控制器(下文中称“从属自动调优控制器”)720;一个资料库750;一个度量管理器740;一个管理员API 765;以及定制器770、780和790。

图8是一个流程图,其说明了根据本发明的一个实施例创建一个自动调优软件代理的方法。应该理解,图8所示方法的一些步骤针对自动调优代理的某些部件表述为“指定/创建”。这允许用户根据用户需要和要对目标系统进行的调优来或者创建该部件或者使用当前存在的部件。

一个或多个自动调优适配器被指定/创建(步骤820)。然后确定该代理是否要利用不只一个控制策略或控制算法(步骤830)。如果是,则1到N个(N≥2)自动调优控制器被指定/创建(步骤840),然后方法进入步骤860。否则,单个自动调优控制器被指定/创建(步骤850),然后方法进入步骤870。

在步骤860和870,通过一个或多个定制器,控制参数被选择/产生。步骤860和870二者都可包括选择参数,如控制器频率、同步/异步方式、日志记录的度量等。然而,步骤860必须包括从1到N个自动调优控制器当中选择一个主自动调优控制器。

应该理解,本发明提供一个通用的自动调优系统。有利地,本发明不需要专家把一个目标系统的详细知识纳入到调优系统中。相反,本发明可以学习该目标的性能特性。这可以包括:当目标系统的先验知识可用、可靠和可持久时,使根据本发明的通用自动调优系统利用这种知识。

尽管这里已经参考附图描述了实施示例,但应该理解,本系统和方法不限于那些精确的实施例,本领域技术人员可实现各种其他变化和修改而不脱离本发明的精神和范围。所有这些变化和修改都被包括在所附权利要求定义的本发明范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号