对应用进行建模的方法及对应用进行部署的系统的制作方法

文档序号:6462614阅读:246来源:国知局
专利名称:对应用进行建模的方法及对应用进行部署的系统的制作方法
技术领域
本发明一般地涉及管理计算系统的系统和方法,更具体地涉及用 于对网络中的应用进行建模的系统和方法。发明背景分布式计算是使用网络来允许计算机有效通信的自然结果。更具 体地,分布式计算是一种计算机处理方法,其中程序的不同部分同时 在通过网络相互通信的两个或更多计算机上运行。多种硬件和软件体系结构被用于分布式计算。即,存在大量的技 术和标准被用于构造分布式计算系统,包括那些专门为该目的而设计和优化的净支术和标准,例如远程过程调用(RPC)或远程方法调用 (RMI)或网络体系结构远程处理(.NET Remoting )。通过更具体的例子,在分布式计算中,在较低层,多个CPU必须 与网络互连。在较高层,具有通信系统的在那些CPU上运行的进程必 须互连。由于这些原因,分布式程序设计通常落入多个基本体系结构 或类别之一中客户机-服务器、N级体系结构(N-tier architecture), 分布式对象、松耦合、紧耦合。照此,对于许多不同类型的分布式计算系统,为了成功设计这样 的分布式计算系统,存在许多挑战要克服。 一个挑战是以透明、开放 和可缩放方式连接用户和资源。但是,如果设计不合理,则分布式计 算系统会降低计算的总体可靠性,因为一个节点的不可用可能导致其 它节点的中断。故障查找排除和诊断问题以及分析分布式计算系统中 的性能也可能很难。已知方法允许每个具体服务器自动地收集性能数 据,并且允许对具体服务器进行未来手动性能分析;但是,还没者一 种已知方式来提供完整的应用性能行为模式。因此,在本领域中需要克服如上描述的缺点和限制。 发明内容在本发明的第一方面中,提供了一种方法,该方法包括确定共享 分布式计算环境中组件的相关性,并测量相关组件的消耗。该方法还 包括建立模型来比较组件行为与相关组件的当前负载,以优化组件性 能。在本发明的另一方面中,提供了一种部署应用以管理分布式计算 系统中组件的方法。该方法包括提供计算机基础设施,其可操作地用于确定分布式计算系统中组件之间的关系;基于所确定的关系收集 相关组件的数据;将所收集的数据提供给中央存储器;利用所收集的 数据建立相关组件的资源消耗的模型;以及将所建立的模型与相关组 件上当前负载进行比较,以确定相关组件的最优性能。在本发明的再一方面中,系统包括分布式计算系统中至少两个计 算系统上本地的代理。该代理具有嵌入在介质中的计算机程序,该计 算机程序可操作地用于确定分布式计算系统中组件之间的相关性、测 量分布式计算系统中相关组件的消耗、以及建立模型以比较相关组件 的实际资源利用从而优化组件性能。


图1示出了根据本发明的说明性环境;以及图2a到2b是实现本发明方面的处理步骤的流程图。
具体实施方式
本发明一般地涉及管理计算系统的系统和方法,尤其涉及用于对 网络中的应用建模的系统和方法。更具体地,本发明的系统和方法被 配置用于在共享分布式计算环境中分析实时应用性能行为并执行问题 确定。在实施方式中,系统和方法被配置用于确定共享分布式计算环境中组件的相关性、测量组件的消耗以及建立数学模型以确定组件行为。 性能建模数据被定期从每个参与的服务器收集、被应用组件分组、并 被存储在中央数据库中。对来自中央数据库的数据的进一步分析允许 代理(用户)检查应用组件的行为是否与模式匹配,该模式可以是"正 常"模式、预定模式等。系统环境如下面更详细讨论的,本发明的系统和方法提供了一种方式来模 拟共享环境中的应用负载并帮助选择适当计算系统(服务器)来定位 应用组件以便更好地利用环境中的现有资源。每个应用组件的性能是 相关组件的性能和组件在其中运行的服务器的资源的函数。在一般情况下,相关组件能够是应用。并且,在实施例中,应用 可以由在单个服务器或分离的服务器(在客户机/月艮务器环境中的虚拟 节点)上运行的一组不同进程表示。这些进程相互依赖,因为它们根 据应用的业务规则相互通信。这些通信在进程上产生一定负载,例如消耗如CPU、存储器、I/O利用这样的系统资源,从而输入组件上负栽的增加将通过相关组件上变化的负载反映。图l示出了根据本发明的管理进程的说明性环境10。图示环境可以是表示服务器、计算设备等的一个或多个机器。(除了在服务器和 客户机被用于描述计算机器的特定示例中为了清楚起见之外,以下(一 个或多个)计算设备将被一般地用于描述任意数量或类型的(一个或多个)计算机器)。在实现中,计算设备10通过这里讨论的TCP/IP 或其它通信协议与一个或多个其它计算设备18通信。本领域普通技术 人员应该认识到,根据执行应用或进程的组件的相关性,可以利用一 个计算设备或多个计算设备来等同实现本发明。在使用多个计算设备的实现中,计算设备可以在其上包括经由通 信链路或总线26通信的相同或不同组件,例如CPU、 RAM、 ROM、 存储器等,这将在后面详细讨论。计算设备10和计算设备18还可以 分别包括代理16a、 16b,具有本文描述的功能和能力。(代理16a和16b在后面将被统称为附图标记16。)在实施方式中,代理在相互异 步的多个计算机上运行。计算设备可以使用相同或不同的通信协议, 诸如在相同计算设备内使用UNIX套接字或OS排队机制和/或使用 TCP/IP协议来在相同或不同计算设备上的进程之间通信。仍然参照图1,计算设备包括代理16,代理16被配置用于监控系 统组件以及各计算设备上组件的资源消耗。可以随着时间变化为识别 的进程收集性能数据,例如CPU和存储器的利用、1/0等。在实施方 式中,代理16还随着时间变化为每个计算设备等以及为每个应用确定 交互,并因此确定环境中不同组件的相关性。代理16将计算设备的不同组件的性能数据和相关性提供给中央 数据库22b,用于将来的检索和分析。因此,通过实现本发明的系统 和方法,能够进行应用组件(进程)的自动相关性识别和其负载特性 的建模,以比较当前负栽与所建模的负栽(在类似环境下的正常负栽)。 这提供了识别应用组件的行为是否在可接收范围内、并定位任何非正 常工作的组件的机会。用于代理16 (并用于执行这里所描述的进程)的控制程序14可 以被临时或永久地存储在存储器22A或存储系统22B中。如本领域普 通技术人员应该理解的那样,除了其它特征之外,控制程序可以提供 代理16的功能性,以及对于应用组件(进程)的自动相关性识别及其 负载特性的建模、识别应用组件的行为是否在可接收范围内和定位任 何非正常工作的组件所必需的任何计算。存储器22A可以包括在程序代码的实际执行期间所使用的本地存 储器、大容量存储器和提供至少一些程序代码的临时存储以减少在执 行期间必须从大容量存储器检索代码的次数的高速緩冲存储器。计算 设备10还包括处理器20、输入/输出(I/O)接口 24、总线26、存储 器"S"、 ROM、 RAM和外部I/O设备/资源28。外部I/O设备/资源28 可以是键盘、显示器、定位设备或任何使控制程序能够利用任何类型 的通信链路30与一个或多个其它计算设备通信的设备。通信链路30 例如可以是有线和/或无线链路; 一种或多种类型的网络(例如互联网、广域网、局域网、虚拟专用网等);和/或任何已知的传输技术和协议, 例如TCP/IP。处理器20执行存储在存储器22A和/或存储系统22B中的代理16 的计算机程序代码和逻辑。在执行计算机程序代码等时,处理器20 可以从存储器22A、存储系统22B和/或I/O接口 24中读取数据或者 将数据写入它们中。总线26提供计算设备中每个组件之间的通信链 路。应该理解,本发明被认为包括可以在一个或多个计算机上独立/ 相关地运行的组件。那些应用组件根据在此所讨论的应用业务规则而 相互交互。交互可以经由网络(例如TCP/IP协议)或者本地地在同 一计算机内(例如TCP/IP或UNIX套接字或共享存储器)。应用组 件关系以多种方式以及那些组件在时间间隔上的累积资源消耗而被识 别。应用组件不是必须同时工作。此外,虽然本发明涉及分布式网络, 但是本发明包含比只使用分布式计算更多的内容。在一个示例中,一 个组件可以触发另 一组件的活动,非常象一个应用可能激活另 一应用。操作示例在实施方式中,本发明的处理包括两个部分(i)相对于其它应 用组件识别应用进程和(ii)相关性性能分析。此外,如这里讨论的, 可以使用不同的数学建模技术来为相关进程建立性能组件的相关性曲 线。此外,可以使用数学分析来寻找特定约束下的性能图案。这些约 束例如可以是参与计算设备的性能容量。具体计算设备的性能可以被考虑为计算设备上运行的单独进程的总和性能。 一些进程是系统相关 进程;而另一些进程是应用相关进程。应用可以被看作是连接到网络中的多个计算机上运行的一组组 件。应用的多个组件可以驻留在相同物理机器(例如计算设备)上或 不同机器上。如本领域技术人员应该理解的,在共享环境中,单个机 器可以作为多个应用的组件的主机。并且,为了一个应用工作,应用 組件需要相互通信。应用组件可以使用操作系统所支持的标准通信协 议之一,例如TCP/IP、 sna、 UNIX套接字。如已知的,UNIX套接字被用于同 一计算机内的通信。作为示例,最终用户使用客户机(网络浏览器)访问网络服务器 上的应用。网络服务器又需要访问多个数据库服务器。相同的数据库 服务器可以服务其它客户机。因此,在这样的环境中,重要的是在共 享分布式计算环境中分析实时应用性能行为和执行问题确定以优化系 统性能。因为每个应用组件是在特定计算机上运行的程序,所以存在与那些进程中每一个相关联的资源消耗。资源可以是、但不限于CPU利用和存储器利用。如应该理解的,进程的资源利用随时间变化,并且取 决于进程活动。例如,当一个进程(客户机进程)开始与另一(服务器进程)通信时,服务器进程的CPU利用将增加。(在没有客户机活 动时,服务器进程可能是空闲,例如不消耗CPU资源。)在完全相同的情况下,来自客户机的相同负栽(相同请求)可以产生来自服务器 进程的相同资源消耗响应。通过这种方式,在实施方式中,所有应用 组件相互间可以是多级客户机/服务器关系,即客户机发出请求,并且 服务器响应于该请求。在操作中,通过从操作系统角度定期地分析通信层,可能在一个如何与这些其他組件通信。通过这种方式,可能自动建立应用组件映射。通过该理解,本发明的系统和方法利用下面的说明性等式确定资 源消耗响应,Rs = Fs (Rc,A ) (1)在等式(l)中,Rs表示服务器资源消耗响应,Rc表示客户机资源消 耗响应,A表示取决于应用和计算机配置(例如CPU的类型和数量等) 的恒定参数。应该理解,Rs和Rc可以表示任意数量的不同计算机器 上的资源,并且服务器/客户机的使用只是实现根据本发明的处理的一 个说明性示例。作为一个示例,资源消耗响应可以是进程所使用的单 位为毫秒的计算时间。此外,客户机资源消耗响应可以由下面的等式表示,<formula>formula see original document page 11</formula> ( 2 )Fc和Fs是不同的函数,并且A和B是用于客户机对服务器以及服务 器对客户机负载的表达式的不同组参数。通过该示例,Fs可以被选择为一类函数,例如, Fs(X, A) =X*X*A1+X*A2+A3。 (3) 在上述示例中,A是一组三个参数;但是应该理解,根据本发明, 可以使用多于三个或少于三个的参数。现在,知道参数和客户机CPU 消耗,可以使用等式(3)计算Fs以及使用等式(1)计算服务器资源 消耗。在定期收集性能数据之后,可以获得对于服务器和客户机进程二 者的不同资源消耗响应的多个数据采样。例如,Rsl=Fs(Rcl, A), Rs2=Fs(Rc2, A), ...RsN=Fs(RcN, A) (4) 其中N表示采样数量,例如100、 1000、 2000、 10000或其它数量。 在每种情况下,参数A和函数Fs保持相同。等式(4)可以被简化为|Rsi-Fs (Rci, A) | (5) 其中i-l,...N(i在从l到N的整个范围内变化,从而检查所有采样)。 在该示例中,对于每个i值检查所有组,以寻找i的最大表达式。此 外,需要寻找将提供最小表示式值的A值。现在,通过实现本发明,可能基于观察结果识别参数A。作为示 例,可以使用多个优化方法来获得A的数值,诸如梯度方法(gradient method),优化方法是本领域技术人员所公知的,因此这里不需要进 一步解释。如应该理解的,通过知道输入,现在可以计算和预计处理 的输出。具有所识别参数A的函数Fs表示应用组件之间关系的模型。但 是,通常,每个服务器进程可以响应于多个客户机进程。因此,在这 样的情况下,Fs是多个客户机输入的函数,并且因此可能获得大得多 的等式组。而且,每个计算系统具有特定限制,例如如果多个服务器 进程在同一计算机上运行,则它们将同时消耗资源并相互影响,从而减慢对客户才几的响应时间。根据本发明的处理图2a和2b是实现可以在图l环境中实现的本发明步骤的流程图。 图2a和2b可以等同地表示本发明的高级框图。本发明可以采用的形 式有完全硬件实施方式、完全软件实施方式或包含硬件和软件成分二 者的实施方式。软件成分可以是固件、驻留软件、微码等。此外,本 发明还能采用可从提供由计算机或任何指令执行系统使用或与其结合 的程序代码的计算机可用或计算机可读介质访问的计算机程序产品的 形式。为了说明的目的,计算机可用或计算机可读介质可以是任何可 以包含、存储、通信、传播或传输由指令执行系统、装置或设备使用 或与其相结合的程序的装置。介质可以是电、磁、光、电磁、红外或 半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包 括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器 (RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例 包括压缩盘-只读存储器(CD-ROM),压缩盘-读/写(CD-ROM)和 DVD。在实施方式中,本发明提供了基于预订、广告和/或费用执行本发 明步骤的方法。也就是说,诸如解决方案整合商这样的服务提供者可 以提供执行这里描述的服务。在该情况下,服务提供商可以为一个或 多个客户创建、维护、部署、支持用于执行本发明处理步骤的计算机 基础设施,等等。反过来,服务器提供商可以根据预订和/或费用协议 向( 一个或多个)客户收取费用,和/或服务提供商可以从向一个或多 个第三方销售广告内容而收取费用。现在参照图2a和2b,在步骤200,控制程序确定组件之间的关系。 这允许过程按照客户机服务器对来对关系进行分组。例如,在TCP/IP 的情况下,服务器进程将监听预定TCP端口 (一般而言,对于不同组 件或应用是不同的),并且客户机在活动时将建立与服务器的连接, 连接性链路及其信息可以由代理利用netstat命令输出而获得。在该情 况下,netstat命令输出显示客户机和服务器二者的端口和IP地址。在步骤205,代理(控制程序)开始收集分布式计算环境中每个 计算机上组件的数据。在步骤210,代理可以过滤链路/进程数据,并 调整(tune)到特定进程。在实施方式中,以同步方式执行数据收集。 在步骤215,(一个或多个)代理将数据提供给中央存储器。与中央 存储器的通信可以被用作时间同步点,其中该(一个或多个)代理定 期地、例如每5分钟或每10分钟一次地与中央存储器"通话"。因为代 理与中央存储器通信,所以它们能够获得对于中央存储器的精准时钟 差,从而提供了"同步"数据收集的方式。在实施方式中,代理在多个计算机上相互异步地运行,即它们具 有自己的调度。此外,代理寻找标准化间隔期间的累积资源消耗,而 不是即时资源消耗。例如,在时刻tl与t2之间获得CPU利用。(因 为每个计算机具有其自己的tl和t2值,所以当进程被放入中央存储 器中时,所收集的数据应该被标准化。)在步骤220,程序利用标准化数据执行函数F的参数的识别。在 步骤225,如上讨论的,程序建立计算模型。计算模型将依赖于从步 骤220提供的关系数据以及所收集的应用或进程的相关组件的数据。 应该理解,可以使用优化的不同标准数学方法用于此目的,如本领域 技术人员不需要任何过多实验就应该理解且能够实现的。在步骤230,因为参数被识别,所以程序基于已知输入计算输出, 例如给定客户机资源消耗的服务器资源消耗。在动态环境中,当应用 组件之间的关系被改变时,例如当组件移动到另 一计算机或新应用组 件被添加或组件被添加/计算机之一的配置改变时,可以想到利用这里 讨论的方法来重新计算参数。在考虑上述公开的情况下现在应该理解,当代理基于规则的路由 而收集组件资源消耗响应时,可以在步骤235,相对于所建立的模型 检查数据。如果数据适合(fit)模型,则系统被优化(步骤240)。 如果数据不适合模型,则在步骤245,程序指示已经发生应用组件交 互的某个偏差。在步骤250,程序可以使用该信息来指向问题并确定 哪个应用组件正在不同地使用资源。通过这种方式,可以优化系统。因此,根据计算机参数,例如CPU的数量和速度,参数值的识别将是不同的,并且诸如如何添加/移除计算机资源或移动应用组件到不同计 算机这样的问题可以被建模和优化。应该i人识到,进程ID随时间而改变,但是应用组件必须遵循相 同的应用业务规则,例如前端Java进程与相同数据库(相同服务器和 TCP端口 )通话。通过将使用相同通信模式的进程匹配到其它进程而 执行特定进程ID的识别。虽然已经就实施方式描述了本发明,但是本领域技术人员将认识 到,本发明可以被实现为具有修改并且在所附权利要求的精神和范围 内。
权利要求
1.一种用于对应用进行建模的方法,包括确定共享分布式计算环境中组件的相关性;测量所述共享分布式计算环境中相关组件的消耗;以及建立模型以比较组件行为与相关组件的当前负载,从而优化组件性能。
2. 如权利要求l所述的方法,其中所述测量包括收集相关组件的 性能数据。
3. 如权利要求2所述的方法,其中基于预定时间为所述共享分布 式计算环境中的每个参与计算设备执行所述收集。
4. 如权利要求2所述的方法,其中由相互异步运行的每个参与计 算设备的本地代理执行所述收集。
5. 如权利要求2所述的方法,其中所述性能数据被存储在中央数 据库中。
6. 如权利要求5所述的方法,其中所述性能数据以同步方式被存 储在中央数据库中。
7. 如权利要求6所述的方法,其中与中央存储器的通信被用于获 取时间同步点。
8. 如权利要求2所述的方法,其中所述性能数据至少包括CPU 和存储器利用。
9. 如权利要求l所述的方法,还包括将相关组件的当前负载与所 建立的模型相比较以执行以下操作之一确定当前负载是否在可接受限度内,和 定位共享分布式计算环境中的任何非正常工作的组件。
10. 如权利要求l所述的方法,还包括 通过等式Rs-Fs (Rc, A)确定服务器的资源消耗响应,其中Rs表示服务器资源消耗响应,Rc表示客户机资源消耗响应,A 表示取决于应用和计算机配置的恒定参数;通过等式Rc-Fc (Rs, B)确定客户机的资源消耗响应,其中Fc 是与Fs不同的函数,B是与A不同的参数集; 计算Fs作为一类函数;并且其中通过等式Rsl:Fs(Rcl, A), Rs2=Fs(Rc2, A),…RsN^Fs (RcN, A)计算获得服务器和客户机进程二者的不同资源消耗响应 的多个数据采样,其中N表示采样数量,并且等式Rsl-Fs(Rcl, A), Rs2-Fs (Rc2, A),…RsN-Fs (RcN, A)可以,皮简化为max by i|Rsi-Fs (Rci, A) | 其中1=1, ...N,其中i在从l到N整个范围内变化,检查所有样本并 为每个i值寻找结果最大的表达式,并寻找提供最小表达式值的值A。
11. 一种用于部署用于管理分布式计算系统的应用的系统,包括 计算机基础设施,可操作地用于确定分布式计算系统中组件之间的关系; 基于所确定的关系收集相关组件的数据; 将所收集的数据提供给中央存储器; 使用所收集的数据建立相关组件的资源消耗模型;以及 将所建立的模型与相关组件上的当前负栽进行比较,以确定 相关组件的最优性能。
12. 如权利要求ll所述的系统,其中相关组件通过客户机服务器 关系进行配对。
13. 如权利要求ll所述的系统,其中所述计算机基础设施可操作 地用于通过相关组件之间的连接性链路确定分布式计算系统中相关组 件之间的关系。
14. 如权利要求13所述的系统,其中计算机基础设施可操作地用 于过滤链路/进程数据并调整到相关组件的具体进程。
15. 如权利要求ll所述的系统,其中数据收集以同步方式执行。
16. 如权利要求ll所述的系统,其中通过使用中央存储器作为时 间同步点而以同步方式将数据存储在中央存储器中。
17. 如权利要求11所述的系统,其中计算机基础设施可操作地用于以标准化间隔收集数据。
18. 如权利要求ll所述的系统,其中由服务提供商对计算机基础 设施进行维护、创建、部署和支持中至少之一。
19. 一种具有包括计算机可读程序的计算机可用介质的计算机程 序产品,其中所述计算机可读程序当在计算机上执行时使计算机执行 以下步骤确定分布式计算系统中组件的相关性; 测量分布式计算系统中相关组件的消耗;以及 建立模型以比较相关组件的实际资源利用,以便优化组件性能。
全文摘要
本发明提供一种管理计算系统的系统和方法,更具体地提供了一种用于对网络中的应用进行建模的系统和方法。该方法包括确定共享分布式计算环境中组件的相关性,计算相关组件的消耗。该方法还包括建立模型以将组件行为与相关组件的当前负载进行比较,从而优化组件性能或找到偏差并因此找到“故障点”。该系统包括本地代理,其被配置用于执行该方法以及将数据提供给中央存储器。
文档编号G06F9/50GK101334741SQ20081009719
公开日2008年12月31日 申请日期2008年5月19日 优先权日2007年6月27日
发明者A·K·阿拉姆, V·巴苏克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1