服务负载测试与分析

申请号 CN201480035257.9 申请日 2014-07-02 公开(公告)号 CN105308577A 公开(公告)日 2016-02-03
申请人 甲骨文国际公司; 发明人 K·拉古纳坦; J·马斯特森; N·鲍尔奇;
摘要 本 发明 的 实施例 提供了用于提供与管理 计算机系统 有关的服务的系统和方法。更具体而言,本发明的实施例提供了向远程计算机系统提供负载测试服务。一般而言,这种服务可以允许客户从生产向测试系统捕获和重放现实工作负载。该服务可以利用从生产中捕获并在被还原到所捕获的“时间点”的可比较测试系统上重放的实际工作负载来帮助客户评估变化(例如,升级、 补丁 、应用程序变化、模式变化、添加更多用户的影响、 硬件 变化等)对他们的系统性能的影响。更具体而言,负载测试服务可以从生产系统中设置和捕获工作负载并且在已实现变化的生产 数据库 的测试副本上以高保真度重新执行它们。
权利要求

1.一种用于向一个或多个远程计算机系统提供负载测试服务的方法,该方法包括:
由服务提供者计算机系统启动一个或多个负载测试服务;
由服务提供者系统通过网关捕获与所述一个或多个远程计算机系统的性能有关的一组数据;
由服务提供者计算机系统对所捕获的所述一组数据执行一个或多个测试;及由服务提供者计算机系统通过户提供基于对所捕获的数据执行所述一个或多个测试的结果的第一组一个或多个报告。
2.如权利要求1所述的方法,其中启动所述一个或多个负载测试服务包括:
由所述服务提供者系统通过所述门户提供对所述一个或多个负载测试服务的访问
由所述服务提供者系统通过所述门户接收对所述一个或多个负载测试服务中的至少一个负载测试服务的客户选择和将所述一个或多个远程计算机系统作为所述一个或多个负载测试服务中所选择的至少一个负载测试服务的目标的指示;及
如果所述网关还没有被安装在被指示为目标的所述一个或多个远程计算机系统上,则由所述服务提供者系统在被指示为目标的所述一个或多个远程计算机系统上安装所述网关。
3.如权利要求1所述的方法,其中捕获与所述一个或多个远程计算机的性能有关的所述一组数据包括:
由所述服务提供者系统通过所述网关监视被指示为目标的所述一个或多个远程计算机系统一段时间,以识别在所述一段时间内针对被指示为目标的所述一个或多个远程计算机系统的峰值负载的时间段;
由所述服务提供者系统通过所述网关捕获在所识别出的峰值负载时间段的工作负载和调整集数据;及
由所述服务提供者系统创建被指示为目标的所述一个或多个远程计算机系统的一组生产数据的时间点克隆。
4.如权利要求3所述的方法,其中识别在所述一段时间内针对被指示为目标的所述一个或多个远程计算机系统的峰值负载的时间段还包括:
由所述服务提供者系统通过所述门户提供针对被指示为目标的所述一个或多个远程计算机系统的所述峰值负载时间段的指示;及
由所述服务提供者系统通过所述门户接收针对被指示为目标的所述一个或多个远程计算机系统的所识别出的峰值负载时间段的接受的指示。
5.如权利要求3所述的方法,其中对所捕获的所述一组数据执行一个或多个测试包括在所捕获的调整集数据上执行一个或多个分析工具。
6.如权利要求5所述的方法,其中提供基于对所捕获的数据执行所述一个或多个测试的结果的一个或多个报告包括生成在所捕获的调整集数据上执行所述一个或多个分析工具的结果的报告,并且其中所述报告包括与所述结果相关联的一个或多个建议。
7.如权利要求3所述的方法,其中对所捕获的所述一组数据执行一个或多个测试包括在被指示为目标的所述一个或多个远程计算机系统的所述一组生产数据的时间点克隆上重放所捕获的工作负载。
8.如权利要求7所述的方法,其中提供基于对所捕获的数据执行所述一个或多个测试的结果的一个或多个报告包括生成在被指示为目标的所述一个或多个远程计算机系统的所述一组生产数据的时间点克隆上重放所捕获的工作负载的结果的报告,并且其中所述报告包括与所述结果相关联的一个或多个建议。
9.如权利要求1所述的方法,还包括重复所述捕获与所述一个或多个远程计算机系统的性能有关的一组数据和所述对所捕获的所述一组数据执行一个或多个测试,以及在已经对所述一个或多个远程计算机系统做出调整之后通过所述门户提供基于对所捕获的数据执行所述一个或多个测试的结果的第二组一个或多个报告。
10.一种系统,包括:
处理器;及
存储器,所述存储器与所述处理器耦合并能被所述处理器读取,并且所述存储器存储一组指令,所述指令在被所述处理器执行时,使得所述处理器通过以下向一个或多个远程计算机系统提供负载测试服务:
启动一个或多个负载测试服务;
通过网关捕获与所述一个或多个远程计算机系统的性能有关的一组数据;
对所捕获的所述一组数据执行一个或多个测试;及
通过门户提供基于对所捕获的数据执行所述一个或多个测试的结果的第一组一个或多个报告。
11.如权利要求10所述的系统,其中启动所述一个或多个负载测试服务包括:
通过所述门户提供对所述一个或多个负载测试服务的访问;
通过所述门户接收对所述一个或多个负载测试服务中的至少一个负载测试服务的客户选择和将所述一个或多个远程计算机系统作为所述一个或多个负载测试服务中所选择的至少一个负载测试服务的目标的指示;及
如果所述网关还没有被安装在被指示为目标的所述一个或多个远程计算机系统上,则在被指示为目标的所述一个或多个远程计算机系统上安装所述网关。
12.如权利要求10所述的系统,其中捕获与所述一个或多个远程计算机的性能有关的所述一组数据包括:
通过所述网关监视被指示为目标的所述一个或多个远程计算机系统一段时间,以识别在所述一段时间内针对被指示为目标的所述一个或多个远程计算机系统的峰值负载的时间段;
通过所述网关捕获在所识别出的峰值负载时间段的工作负载和调整集数据;及创建被指示为目标的所述一个或多个远程计算机系统的一组生产数据的时间点克隆。
13.如权利要求12所述的系统,其中识别在所述一段时间内针对被指示为目标的所述一个或多个远程计算机系统的峰值负载的时间段还包括:
通过所述门户提供针对被指示为目标的所述一个或多个远程计算机系统的所述峰值负载时间段的指示;及
通过所述门户接收针对被指示为目标的所述一个或多个远程计算机系统的所识别出的峰值负载时间段的接受的指示。
14.如权利要求12所述的系统,其中对所捕获的所述一组数据执行一个或多个测试包括在被指示为目标的所述一个或多个远程计算机系统的所述一组生产数据的时间点克隆上重放所捕获的工作负载,其中提供基于对所捕获的数据执行所述一个或多个测试的结果的一个或多个报告包括生成在被指示为目标的所述一个或多个远程计算机系统的所述一组生产数据的时间点克隆上重放所捕获的工作负载的结果的报告,并且其中所述报告包括与所述结果相关联的一个或多个建议。
15.如权利要求10所述的系统,还包括重复所述捕获与所述一个或多个远程计算机系统的性能有关的一组数据和所述对所捕获的所述一组数据执行一个或多个测试,以及在已经对所述一个或多个远程计算机系统做出调整之后通过所述门户提供基于对所捕获的数据执行所述一个或多个测试的结果的第二组一个或多个报告。
16.一种包括一组指令的计算机可读存储器,其中所述指令在被处理器执行时,使得所述处理器通过以下向一个或多个远程计算机系统提供负载测试服务:
启动一个或多个负载测试服务;
通过网关捕获与所述一个或多个远程计算机系统的性能有关的一组数据;
对所捕获的所述一组数据执行一个或多个测试;及
通过门户提供基于对所捕获的数据执行所述一个或多个测试的结果的第一组一个或多个报告。
17.如权利要求16所述的计算机可读存储器,其中启动所述一个或多个负载测试服务包括:
通过所述门户提供对所述一个或多个负载测试服务的访问;
通过所述门户接收对所述一个或多个负载测试服务中的至少一个负载测试服务的客户选择和将所述一个或多个远程计算机系统作为所述一个或多个负载测试服务中所选择的至少一个负载测试服务的目标的指示;及
如果所述网关还没有被安装在被指示为目标的所述一个或多个远程计算机系统上,则在被指示为目标的所述一个或多个远程计算机系统上安装所述网关。
18.如权利要求16所述的计算机可读存储器,其中捕获与所述一个或多个远程计算机的性能有关的所述一组数据包括:
通过所述网关监视被指示为目标的所述一个或多个远程计算机系统一段时间,以识别在这段时间内针对被指示为目标的所述一个或多个远程计算机系统的峰值负载的时间段;
通过所述网关捕获在所识别出的峰值负载时间段的工作负载和调整集数据;及创建被指示为目标的所述一个或多个远程计算机系统的一组生产数据的时间点克隆。
19.如权利要求18所述的计算机可读存储器,其中识别在所述一段时间内针对被指示为目标的所述一个或多个远程计算机系统的峰值负载的时间段还包括:
通过所述门户提供针对被指示为目标的所述一个或多个远程计算机系统的所述峰值负载时间段的指示;及
通过所述门户接收针对被指示为目标的所述一个或多个远程计算机系统的所识别出的峰值负载时间段的接受的指示。
20.如权利要求18所述的计算机可读存储器,其中对所捕获的所述一组数据执行一个或多个测试包括在被指示为目标的所述一个或多个远程计算机系统的所述一组生产数据的时间点克隆上重放所捕获的工作负载,其中提供基于对所捕获的数据执行所述一个或多个测试的结果的一个或多个报告包括生成在被指示为目标的所述一个或多个远程计算机系统的所述一组生产数据的时间点克隆上重放所捕获的工作负载的结果的报告,并且其中所述报告包括与所述结果相关联的一个或多个建议。

说明书全文

服务负载测试与分析

[0001] 对相关申请的交叉引用
[0002] 本申请涉及以下共同未决和共同转让的美国专利申请:
[0003] 由Higginson所作的与本文同时提交并且标题为“METHOD AND SYSTEM FOR REDUCING INSTABILITY WHEN UPGRADING SOFTWARE”的美国专利申请No.13/937,977(代理人案号88325-860490(135800US));
[0004] 由Davis所作的与本文同时提交并且标题为“CONSOLIDATION PLANNING SERVICES FOR SYSTEMS MIGRATION”的美国专利申请No.13/938,061(代理人案号88325-870368(137700US));
[0005] 由Davis所作的与本文同时提交并且标题为“MIGRATION SERVICES FOR SYSTEMS”的美国专利申请No.13/938,066(代理人案号88325-870369(137800US));
[0006] 由Higginson所作的与本文同时提交并且标题为“DATABASE MODELING AND ANALYSIS”的美国专利申请No.13/937,885(代理人案号88325-870374(137900US));
[0007] 由Higginson所作的与本文同时提交并且标题为“AUTOMATED DATABASE MIGRATION ARCHITECTURE”的 美 国 专 利 申 请 No.13/937,868( 代 理 人 案 号88325-870373(138000US));
[0008] 由Raghunathan等所作的与本文同时提交并且标题为“CLOUD SERVICES PERFORMANCE TUNING AND BENCHMARKING”的美国专利申请No.13/937,483(代理人案号88325-870383(138200US));
[0009] 由Buehne等所作的与本文同时提交并且标题为“SOLUTION TO GENERATE A SCRIPTSET FOR AN AUTOMATED DATABASE MIGRATION”的美国专利申请No.13/937,988(代理人案号88325-870382(138300US));
[0010] 由Buehne等所作的与本文同时提交并且标题为“ONLINE DATABASE MIGRATION”的美国专利申请No.13/937,545(代理人案号88325-870410(138400US));
[0011] 由Buehne等所作的与本文同时提交并且标题为“DYNAMIC MIGRATION SCRIPT MANAGEMENT”的美国专利申请No.13/937,486(代理人案号88325-870409(138500US));
[0012] 由Masterson等所作的与本文同时提交并且标题为“ADVANCED CUSTOMER SUPPORT SERVICES–ADVANCED SUPPORT CLOUD PORTAL”的美国专利申请No.13/937,970(代理人案号88325-870401(138600US));
[0013] 其中每一个专利申请的全部公开内容都通过引用被结合于此,用于所有目的。

技术领域

[0014] 本发明实施例一般地涉及用于提供与管理计算机系统相关的服务的方法和系统,并且更具体地涉及向远程计算机系统提供负载测试服务。

背景技术

[0015] 现代数据库系统是非常复杂的并且由许多组件构成。因此,管理这些系统、诊断问题、更新软件和安装新的组件会是非常棘手和复杂的任务。因此,系统管理员可能花费相当多的时间来确定问题、升级软件和安装新的组件。在许多情况下,可能需要专家或经过专培训的技术人员和管理员在现场执行这些更复杂和专业的任务。
[0016] 使用经过专门培训的技术人员和管理员的必要性会增加成本和/或增加维护和操作这些系统的延迟以及不确定性。可能常常花费几天甚至几个星期,经过培训的技术人员或管理员才能够到特定的站点来升级软件或诊断问题。在工作可以开始之前的行程、时间和用于技术人员或管理员了解系统和组件的时间投入的成本会进一步添加到时间延迟和成本上。因此,存在对用于提供与管理计算机系统有关的服务的改进方法和系统的需要。

发明内容

[0017] 本发明的实施例提供了用于向远程计算机系统提供负载测试服务的系统和方法。根据一种实施例,向一个或多个远程计算机系统提供负载测试服务可以包括由服务提供者计算机系统启动一个或多个负载测试服务。启动该一个或多个负载测试服务可以包括由服务提供者系统通过门户提供对该一个或多个负载测试服务的访问、由服务提供者系统通过门户接收对该一个或多个负载测试服务中的至少一个负载测试服务的客户选择和将该一个或多个远程计算机系统作为该一个或多个负载测试服务中所选定的至少一个负载测试服务的目标的指示、以及如果网关还没有被安装在被指示为目标的该一个或多个远程计算机系统上则由服务提供者系统在被指示为目标的该一个或多个远程计算机系统上安装网关。
[0018] 向一个或多个远程计算机系统提供负载测试服务还可以包括由服务提供者系统通过网关捕获与该一个或多个远程计算机系统的性能有关的一组数据。捕获与该一个或多个远程计算机的性能有关的该组数据可以包括由服务提供者系统通过网关监视被指示为目标的该一个或多个远程计算机系统一段时间,以识别在这段时间内针对被指示为目标的该一个或多个远程计算机系统的峰值负载的时间段。识别在这段时间内针对被指示为目标的一个或多个远程计算机系统的峰值负载的时间段还可以包括由服务提供者系统通过门户提供针对被指示为目标的该一个或多个远程计算机系统的峰值负载的时间段的指示,以及由服务提供者系统通过门户接收针对被指示为目标的该一个或多个远程计算机系统的所识别出的峰值负载时间段的接受的指示。服务提供者系统可以通过网关捕获在所识别出的峰值负载时间段的工作负载和调整集数据,并且可以创建被指示为目标的该一个或多个远程计算机系统的一组生产数据的时间点(point-in-time)克隆。
[0019] 向一个或多个远程计算机系统提供负载测试服务还可以包括由服务提供者计算机系统在所捕获的这组数据上执行一个或多个测试以及由服务提供者计算机系统通过门户提供基于在所捕获的数据上执行该一个或多个测试的结果的第一组一个或多个报告。在一些情况下,在所捕获的这组数据上执行一个或多个测试可以包括在所捕获的调整集数据上执行一个或多个分析工具。在这种情况下,提供基于在所捕获的数据上执行该一个或多个测试的结果的一个或多个报告可以包括生成在所捕获的调整集数据上执行该一个或多个分析工具的结果的报告,并且其中该报告包括与该结果相关联的一个或多个建议。附加地或可替代地,在所捕获的这组数据上执行一个或多个测试可以包括在被指示为目标的该一个或多个远程计算机系统的这组生产数据的时间点克隆上重放所捕获的工作负载。在这种情况下,提供基于在所捕获的数据上执行该一个或多个测试的结果的一个或多个报告可以包括生成在被指示为目标的该一个或多个远程计算机系统的这组生产数据的时间点克隆上重放所捕获的工作负载的结果的报告,并且其中该报告包括与该结果相关联的一个或多个建议。在一些实现方式中,向一个或多个远程计算机系统提供负载测试服务还可以包括重复所述捕获与该一个或多个远程计算机系统的性能有关的一组数据和所述在所捕获的这组数据上执行一个或多个测试,以及在已经对该一个或多个远程计算机系统做出调整之后来通过门户提供基于在所捕获的数据上执行该一个或多个测试的结果的第二组一个或多个报告。附图说明
[0020] 图1是示出其中可以实现本发明的各种实施例的示例性操作环境的组件的框图
[0021] 图2是示出其中可以实现本发明的实施例的示例性计算机系统的框图。
[0022] 图3是在高层次示出根据本发明的一种实施例的用于交付服务的系统的功能组件的框图。
[0023] 图4是概念上示出根据本发明的一种实施例的用于执行负载测试的系统和过程的框图。
[0024] 图5是示出根据本发明的一种实施例的用于执行负载测试的过程的流程图
[0025] 图6示出了根据本发明的一种实施例的包括负载测试记分卡的示例性用户界面
[0026] 图7示出了根据本发明的一种实施例的包括负载测试报告的示例性用户界面的附加细节。
[0027] 图8是示出根据本发明的一种实施例的用于执行负载测试的过程的附加细节的流程图。

具体实施方式

[0028] 在以下描述中,为了解释的目的,阐述了众多具体细节以便提供对本发明的各种实施例的透彻理解。但是,很显然,对于本领域技术人员来说,在没有这些具体细节中的一些细节的情况下,本发明的实施例也可以被实践。在其它情况下,众所周知的结构和设备以框图的形式示出。
[0029] 接下来的描述只是提供示例性实施例,而不是旨在限制本公开内容的范围、适用性或配置。相反,示例性实施例的接下来的描述将为本领域技术人员提供用于实现示例性实施例的可行描述。应当理解,在不背离本发明的如所附权利要求中阐述的精神和范围的情况下,可以在元件的功能和布置上做出各种变化。
[0030] 在以下描述中给出了具体细节以提供对实施例的充分理解。但是,本领域的普通技术人员将理解,实施例可以在没有这些具体细节的情况下被实践。例如,电路、系统、网络、过程和其它组件可以被显示为框图形式的组件,以便不会以不必要的细节使实施例晦涩难懂。在其它情况下,众所周知的电路、过程、算法、结构和技术可以在没有不必要的细节的情况下被示出,以便避免使实施例晦涩难懂。
[0031] 此外,注意到各个实施例可以被描述为过程,该过程被描绘为流程图、流图、数据流图、结构图或框图。虽然流程图可以将操作描述为顺序的过程,但是操作中的许多可以被并行或同时执行。此外,操作的顺序可以被重新布置。当过程的操作完成时,过程被终止,但是过程可以具有未包括在附图中的附加步骤。过程可以对应于方法、函数、规程(procedure)、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回至进行调用的函数或主函数。
[0032] 术语“机器可读介质”包括但不限于便携式或固定存储设备、光存储设备、无线信道和能够存储、包含或携带(一条或多条)指令和/或数据的各种其它介质。代码段或机器可执行指令可以表示规程(procedure)、函数、子程序、程序、例程、子例程、模软件包、类、或者指令、数据结构或程序语句的任何组合。可以通过传递和/或接收信息、数据、引数、参数或存储器内容将代码段耦合到另一个代码段或硬件电路。可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何适合的方式来传递、转发或传输信息、引数、参数、数据等。
[0033] 此外,实施例可以由硬件、软件、固件中间件、微代码、硬件描述语言或其任意组合来实现。当以软件、固件、中间件或微代码来实现时,执行必要任务的程序代码或代码段可以被存储在机器可读介质中。(一个或多个)处理器可以执行这些必要的任务。
[0034] 本发明的实施例提供了用于提供与管理计算机系统有关的服务的系统和方法。更具体而言,本发明的实施例提供了向远程计算机系统提供负载测试服务。一般而言,这种服务可以允许客户从生产向测试系统捕获和重放现实工作负载。该服务可以帮助客户利用从生产中捕获并且在被还原到所捕获的“时间点”的可比较测试系统上重放的实际工作负载来评估变化(例如,升级、补丁、应用变化、模式变化、添加更多用户的影响、硬件变化等)对他们的系统性能的影响。更具体而言,负载测试服务可以从生产系统中设置和捕获工作负载,并且在已实现这些变化的生产数据库的测试副本上以高保真度重新执行该工作负载。根据一种实施例,服务可以考虑工作负载的并发性和流动,并且可以是在测试系统上的生产工作负载的现实描绘。可以呈现带有建议的发现报告来显示变化对工作负载的影响。使用该服务的客户然后可以被给予实现该建议、重新运行工作负载的机会,并且被给予具有变化之前和变化之后的结果的报告。然后,可以给客户可能以降低的价格购买针对同一数据库的附加捕获/重放的选择。服务的图表、图、报告和其它结果以及所提供的建议可以被存储,以用于被服务和/或客户将来参考。本发明的实施例的各种附加细节将在下面参考附图进行描述。
[0035] 图1是示出其中可以实现本发明的各种实施例的示例性操作环境的组件的框图。系统100可以包括一个或多个用户计算机105、110,其可以用来操作客户端,无论客户端是专门的应用还是网络浏览器等。用户计算机105、110可以是通用个人计算机(仅仅作为例子,包括运行各种版本的微软公司的Windows和/或苹果公司的Macintosh操作系统的个人计算机和/或膝上型计算机)和/或运行多种市售UNIX或类似UNIX的操作系统(包括但不限于,各种GNU/Linux操作系统)中的任何一种操作系统的工作站计算机。这些用户计算机105、110也可以具有包括一个或多个开发系统、数据库客户端和/或服务器应用以及网络浏览器应用的各种应用中的任意一种。可替代地,用户计算机105、110可以是能够经由网络(例如,下面描述的网络115)通信和/或显示和导航网页或其它类型的电子文档的任何其它电子设备,诸如瘦客户端计算机、启用互联网的移动电话和/或个人数字助理
虽然示例性系统100被示为具有两个用户计算机,但是任何数量的用户计算机都可以被支持。
[0036] 在一些实施例中,系统100也可以包括网络115。网络可以是对本领域技术人员熟悉的、可利用各种市售协议中的任何一种协议来支持数据通信的任何类型的网络,各种市售协议包括但不限于TCP/IP、SNA、IPX、AppleTalk等。仅仅作为例子,网络115可以是局域网(“LAN”),诸如以太网网络、令牌环网络等;广域网;虚拟网络,包括但不限于虚拟专用网(“VPN”);互联网;内联网;外联网;公共交换电话网(“PSTN”);红外线网络;无线网络(例如,按照IEEE 802.11协议包、本领域中已知的蓝牙协议和/或任何其它无线协议中的任何一种进行操作的网络);和/或这些网络和/或诸如GSM、GPRS、EDGE、UMTS、3G、2.5G、CDMA、CDMA2000、WCDMA、EVDO等的其它网络的任意组合。
[0037] 系统也可以包括一个或多个服务器计算机120、125、130,其可以是通用计算机和/或专用服务器计算机(仅仅作为例子,包括PC服务器、UNIX服务器、中档服务器、大型机计算机机架式服务器等)。服务器(例如,130)中的一个或多个可以专用于运行应用,诸如商业应用、网络服务器、应用服务器等。这些服务器可以用来处理来自用户计算机105、110的请求。应用也可以包括用于控制对服务器120、125、130的资源的访问的任何数量的应用。
[0038] 网络服务器可以运行操作系统,该操作系统包括以上讨论的那些操作系统中的任何一个操作系统,以及任何市售的服务器操作系统。网络服务器也可以运行各种服务器应用和/或中间层应用中的任何一种,包括HTTP服务器、FTP服务器、CGI服务器、数据库服务器、Java服务器、商业应用等。(一个或多个)服务器也可以是一个或多个计算机,其可以能够响应于用户计算机105、110执行程序或脚本。作为一个例子,服务器可以执行一个TM或多个网络应用。网络应用可以被实现为以任何编程语言(诸如Java 、C、C#或C++)和/或任何脚本语言(诸如Perl、Python或TCL)以及任何编程/脚本语言的组合编写的一个或多个脚本或程序。(一个或多个)服务器也可以包括数据库服务器,包括但不限于可以从等购得的那些数据库服务器,该数据库服务器
可以处理来自运行在用户计算机105、110上的数据库客户端的请求。
[0039] 在一些实施例中,应用服务器可以动态地创建用于在终端用户(客户端)系统上显示的网页。由网络应用服务器创建的网页可以经由网络服务器被转发到用户计算机105。类似地,网络服务器可以接收来自用户计算机的网页请求和/或输入数据,并且可以将该网页请求和/或输入数据转发到应用和/或数据库服务器。本领域技术人员将认识到,相对于各种类型的服务器所描述的功能可以取决于特定于实现方式的需求和参数由单个服务器和/或多个专用服务器来执行。
[0040] 系统100也可以包括一个或多个数据库135。该(一个或多个)数据库135可以驻留在多个位置中。作为例子,数据库135可以驻留在计算机105、110、115、125、130中的一个或多个计算机的本地(和/或驻留于其中)的存储介质上。可替代地,它可以远离计算机105、110、115、125、130中的任何一个或全部,和/或(例如,经由网络120)与它们中的一个或多个通信。在一组特定的实施例中,数据库135可以驻留在对本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行属于计算机105、110、115、125、130的功能的任何必要的文件可以适当地被存储在本地的相应计算机上和/或被远程地存储。在一组实施例中,数据库135可以是适于响应于SQL格式的命令存储、更新和检索数据的关系数据库,诸如Oracle 10g。
[0041] 图2示出了示例性计算机系统200,其中可以实现本发明的各种实施例。系统200可以用来实现上述计算机系统中的任何一种计算机系统。计算机系统200被示为包括可经由总线255而被电耦合的硬件元件。硬件元件可以包括一个或多个中央处理单元(CPU)205、一个或多个输入设备210(例如,鼠标键盘等)以及一个或多个输出设备
215(例如,显示设备、打印机等)。计算机系统200也可以包括一个或多个存储设备220。
作为例子,(一个或多个)存储设备220可以是盘驱动、光存储设备、诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”)的固态存储设备,其可以是可编程的、闪存可更新的等等。
[0042] 计算机系统200可以附加地包括计算机可读存储介质读取器225a、通信系统230(例如,调制解调器、网卡(无线或有线)、红外通信设备等)以及工作存储器240,该工作存储器240可以包括如上所述的RAM设备和ROM设备。在一些实施例中,计算机系统200也可以包括处理加速单元235,其可以包括DSP、专用处理器等。
[0043] 计算机可读存储介质读取器225a还可以被连接到计算机可读存储介质225b,一起(并且可选地结合(一个或多个)存储设备220)全面地表示用于临时和/或更永久地包含计算机可读信息的远程、本地、固定和/或可移除的存储设备加存储介质。通信系统230可以允许数据与网络220和/或以上相对于系统200描述的任何其它计算机进行交换。
[0044] 计算机系统200也可以包括被示为当前位于工作存储器240内的软件元件,包括操作系统245和/或其它代码250,诸如应用程序(其可以是客户端应用、网络浏览器、中间层应用、RDBMS等)。应当认识到,计算机系统200的可替代实施例可以具有从上述而来的多种变体。例如,定制的硬件也可能被使用,和/或特定的元件可能以硬件、软件(包括便携式软件,诸如小程序(applet))或两者来实现。此外,可以利用到诸如网络输入/输出设备的其它计算设备的连接。计算机系统200的软件可以包括用于实现如本文所述的本发明的实施例的代码250。
[0045] 诸如上述系统中的任何一种的数据库系统可能需要管理,诸如定期维护、软件升级、迁移、服务部署、诊断、性能调整和/或其它服务。使用数据库系统的一些组织和企业可以利用系统管理员或其他人员来执行这些任务中的一些。一些任务可能需要一般管理员的范围之外的特殊技能或知识,并且可能需要外部专家或人员来完成该任务。在一些情况下,管理任务可以由外部实体或工程师作为对组织或企业的服务来执行。
[0046] 传统上,服务基于与客户联系人的多次接触来提供,并且创建根据客户需求裁剪的合同和服务交付计划。服务交付本身传统上在现场并且基于特定知识和/或服务工程师可以访问的软件来提供,并且可能在工程师之间不同。
[0047] 与数据库系统相关联的许多管理任务和服务可以利用支持服务的远程管理、开发和部署的平台体系架构来简化和精简。系统可以被配置为允许任务和服务的自动化以及组件的重用。这种系统可以用来贯穿其整个生命周期生成、存储、部署、执行和跟踪服务。服务可以被设计、变得可用于部署、被部署给客户及利用系统进行监视。
[0048] 根据一种实施例,这种系统可以包括从中客户、管理员和服务提供者可以为远程客户的目标系统监视、部署和分析服务的远程门户。管理可以被远程地和至少部分自动化地执行和控制。服务可以利用门户来被控制和被部署到目标系统,从而消除了管理员要在目标系统本地的需要。同样,门户可以为所有客户提供丰富的工具集,并且更少地依赖执行服务的特定工程师的个人技能和知识。
[0049] 这种系统可以以至少部分自动化和远程的方式来帮助执行服务,并且会对服务提供者和客户产生许多重要的益处。例如,该系统可以减少新服务的上市时间。使得服务能够利用公共特征/组件来建立的统一的系统可以减少开发和测试该新服务的时间。自动化和一致性可以允许服务提供者创建可以被重用于新服务的标准定价和缔约模型。用于新服务的销售和缔约时间会由于简化的定价模型而减少。服务提供者可以创建模块化服务组合(portfolio),并且可以分立地或者作为解决方案的一部分地交付服务。该系统可以通过允许服务设计者和开发者利用公共特征来降低开发和交付服务的成本。随着开发者创建更自动化的服务,这减少/消除了对手工输入的需要,从而减少了交付服务的成本。由于服务可以通过平台以至少部分自动化的方式被设计、开发和交付,因此该系统也可以提供对全球服务质量和一致性的改进。该系统也可以为服务扩展市场,从而使得服务能够被容易地销售和交付。
[0050] 在实施例中,这种系统可以用于服务的开发和部署,包括评估数据库系统的基础设施、业务数据和/或事务的评估服务。服务可以利用分析来识别关键指标、模式和/或趋势。服务可以安装、监视新软件和/或硬件和/或执行对新软件和/或硬件的设置。服务可以安装和实现黄金映像,或执行迁移、升级和整合。此外,服务可以包括供给、克隆、备份和恢复、安装、设置、测试、监视、恢复和还原、计量、计费、测试、负载测试、功能测试、性能管理和调整等等。在一些实施例中,服务可以利用一个服务作为其它服务的基础。
[0051] 图3是在高层次示出根据本发明的一种实施例的用于交付服务的系统的功能组件的框图。一般而言,服务可以利用系统300被设计、变得可用于部署、被部署给客户以及被监视。客户数据中心302可以包括一个或多个目标系统312、314,其可以是由系统300提供的服务的目标。目标系统可以是运行或执行由客户使用的数据库和/或其它数据库软件的服务器、计算机、机架系统等。目标系统可以是能够使服务被交付的硬件或软件实体,并且可以是主机、数据库、网络逻辑服务等。在客户数据中心302中,目标系统312、314可以由数据中心302本地的管理员来管理。管理员可以具有对目标系统312、314的物理访问。云系统300可以从远程位置经由远程界面提供对目标系统的管理和其它服务。位于数据中心302上的网关310提供对数据中心302和一个或多个目标系统312、314的远程访问。网关310可以是安装在客户数据中心处的硬件或虚拟软件装置。网关310经网络332利用通信模块306经由安全连接连接到服务提供者的生产云304。网关310可以可选地具有界面模块308,从而允许对网关310与服务提供者的生产云304的交互的控制。
[0052] 服务可以利用系统300的公共服务开发框架来生成和开发。公共服务开发框架可以包括服务设计330、交付工程328和工程基础设施326模块。公共服务开发框架可以利用可贯穿整个(手动和/或自动的)交付过程使用的公共组件,并且可以使得能够进行服务的高效设计、开发、测试和发布。系统300的公共服务开发框架使得服务的开发能够至少部分自动化。
[0053] 系统300使得交付工程师能够自动化他们正在开发的服务。在一些实施例中,服务的开发可以使用可重用组件而被自动化或简化。例如,在服务中使用的许多相同的部署、执行和错误处理函数可以被设计为可重用组件。这些组件可以在许多服务中被重用,从而允许服务的设计和编码集中在服务的新核心功能上。利用系统300,服务可以在一个或多个中央位置中被设计和实现。集中式服务设计和开发系统300使得能够利用可重用组件和模块进行分层和结构化的服务设计。由于服务的组件的大部分可以从现有的可重用组件中组装,因此服务的开发可以至少部分地被自动化。
[0054] 在服务被设计、开发和测试之后,它们可以被存储在生产云304处。生产云304可以包括服务322的库和内容库324。服务和内容可以从生产云304被部署到在客户数据中心302处的一个或多个目标系统312、314。服务的部署、监视等可以利用从生产云304处的门户318和交易模块320经由通信模块306、316与客户数据中心302处的网关310和界面模块308的交互来布置。服务的设计、部署和监视可以从生产云远程地来执行,而无需在客户的数据中心302处的管理员或工程师。系统300的门户318可以提供对服务的远程控制和管理、对部署的控制以及对结果的分析。
[0055] 可以使用图3的系统300来开发、部署和管理针对客户数据中心302和目标系统312、314的服务。网关310能够访问目标系统312、314。以软件、脚本、函数等形式的服务可以从生产云304中下载。用于生产云304的交易模块320和门户提供了用于选择服务和监视要被部署在客户数据中心302中的服务的界面、选择工具、监视工具。在客户数据中心302处的管理员可以利用门户318和交易模块320查看、选择和监视服务。客户可以利用在客户数据中心302处的界面模块308访问门户318和交易模块320。界面模块可以经由通信模块306直接或间接访问门户318和交易模块。例如,利用系统300,可以利用交易模块320来选择服务。交易模块320可以利用界面模块308被访问。当服务被选择并且被配置用于目标系统312、314时,该服务就可以从生产云304经由网关310被部署到客户数据中心302。网关可以将服务部署到目标系统上。网关310可以被用来收集数据统计、监视服务和接收关于客户数据中心和目标系统的系统信息。数据可以被处理、分析和传输到生产云。可以使用数据向客户建议或部署服务、利用门户318呈现客户的目标服务器的统计或度量。包括门户318和网关310的系统300的各种元件的附加细节在以上被引用并被结合于此的标题为“Advanced Customer Support Services–Advanced Support Cloud Portal”的相关申请中进行了描述。
[0056] 如上所述,这种系统300可以帮助以至少部分自动化和远程的方式来执行服务。例如,服务提供者可以实现这种系统来向客户提供服务,服务包括但不限于:执行定期维护、提供软件升级、执行系统迁移、支持服务部署、诊断、性能调整和/或其它服务。一些这样的服务在以上被引用和结合于此的相关申请中被更详细地描述。根据一种实施例,这些服务可以附加地或可替代地包括负载测试服务。一般而言,这种服务可以允许客户从生产向测试系统捕获和重放的现实工作负载。该服务可以利用从生产中捕获并在被还原到所捕获的“时间点”的可比较测试系统上重放的实际工作负载来帮助客户评估变化对他们的系统性能的影响(例如,升级、补丁、应用变化、模式变化、添加更多用户的影响、硬件变化等)。更具体而言,负载测试服务可以从生产系统中设置和捕获工作负载,并且在实现这些变化的生产数据库的测试副本上以高保真度重新执行该工作负载。根据一种实施例,服务可以考虑工作负载的并发性和流动,并且可以是在测试系统上的生产工作负载的现实描绘。可以呈现带有建议的发现报告来显示变化对工作负载的影响。使用该服务的客户然后可以被给予实现建议、重新运行工作负载的机会,并且被给予具有变化之前和变化之后的结果的报告。然后,可以给客户可能以降低的价格购买针对同一数据库的附加捕获/重放的选择。服务的图表、图形、报告和其它结果以及所提供的建议可以被存储,以用于被服务和/或客户将来参考。
[0057] 图4是概念上示出根据本发明的一种实施例的用于执行负载测试的系统和过程的框图。在这个例子中,系统400包括客户系统405和服务提供者系统410。如本领域技术人员可以理解的,客户系统可以执行任何数量的客户端应用415,该客户端应用使用存储在可通过数据库管理系统420访问的数据库425中的一组应用数据。
[0058] 服务提供者系统410可以如上所述执行门户模块455。一般而言,门户可以提供诸如一组网页的界面(这里未示出),通过该一组网页客户系统405的管理员、管理者或其它用户可以与服务提供者系统410交互,以例如请求负载测试和/或其它服务。通过该界面,客户系统405的用户可以识别和/或定义要被测试的系统、要被执行的测试等。作为响应,服务提供者系统410可以启动网关430,或者如果网关430还没有被安装在客户系统405上,则服务提供者系统410可以在客户系统405上安装并且启动网关430。
[0059] 一旦网关430被启动,它就可以收集一组数据并且将该收集到的数据435提供给服务提供者系统405。例如,所捕获的数据435可以包括从应用415和/或数据库管理系统420中提取或拷贝的一组SQL语句。在这种情况下,服务提供者系统410可以执行测试和分析模块440,该测试和分析模块440可以利用一个或多个标准或定制的工具来分析所提取的SQL代码。可以使用服务提供者系统的建议模块450来分析这些工具440的输出,并且可以例如基于来自操作服务提供者系统410的一个或多个人类分析员的输入或在该输入的引导下提供一组建议。建议可以被提供给门户455,以便然后使该建议以例如一个或多个网页460或其它界面的形式对客户系统405的用户可用。这种界面的例子将在下面参考图6和图7进行更详细的描述。
[0060] 附加地或可替代地,网关430可以复制数据库425的应用数据中的一些或全部,并且可以在特定时间点捕获客户系统405的工作负载,该特定时间点可由客户系统405的用户选择或同意作为要被测试的峰值负载或其它负载的代表。该信息可以由网关430在所捕获的数据435中提供给服务提供者系统410。一旦获得该信息,服务提供者系统410就可以用测试系统445重放所捕获的工作负载,该测试系统445利用所复制的应用数据并且同时实现由客户系统405的用户指定的任何变化。换句话说,通过网关430和重放/测试模块445,服务提供者系统410能够从客户系统405中设置和捕获工作负载并且在测试副本上以高保真度重新执行它们。生成建议,并且通过客户门户界面呈现结果和建议。再一次,可以使用服务提供者系统410的建议模块450来分析这些测试的输出,并且可以例如基于来自操作服务提供者系统410的一个或多个人类分析员的输入或在该输入的引导下提供一组建议。建议可以被提供给门户455,以便然后使该建议以例如一个或多个网页460或其它界面的形式对客户系统405的用户可用。这种界面的例子将在下面参考图6和图7进行更详细的描述。
[0061] 在结果和建议页460中呈现的结果可以包括哪些操作或功能在所指定的变化的情况下(即相对于没有这些变化的性能)执行得更快、相同或更慢的表示。结果和建议页460也可以包括关于客户系统405的哪些方面可能需要注意的汇总,并且可以指示检测到的问题的严重程度,例如紧要、严重、中等等等。如将在下面更详细描述的,结果和建议页
460可以以记分卡的形式来呈现,客户系统405的用户可以查看记分卡并决定哪些问题要解决以及如何解决它们。一旦实现了任何建议或其它变化,负载测试过程就可以在客户系统405的用户的请求和/或批准时被重复。
[0062] 图5是示出根据本发明的一种实施例的用于执行负载测试的过程的流程图。如这里所示出的,该过程可以从安装和配置阶段开始,在该阶段中服务提供者系统可以例如经由网络会议或与客户的其它交互启动505负载测试过程。一旦负载测试过程被启动,服务提供者系统就可以在客户系统上(在客户批准的情况下)安装和配置510网关。项目启动可以以服务提供者系统创建515客户账户并且向客户授予对服务提供者系统的门户的访问而继续。接下来,服务提供者系统可以通过网关监视520客户系统一段时间,以识别用于负载测试的峰值时间。这些峰值时间可以例如通过门户界面呈现给客户,用于批准525和在负载测试过程中使用。
[0063] 一旦这些时间被批准525,负载测试就可以以服务提供者系统捕获530数据集(例如SQL调整集)供测试程序或脚本使用而继续。附加地,工作负载可以从客户系统中被捕获535并且在客户系统的时间点克隆数据库中被重放。
[0064] 在输出阶段,可以由服务提供者系统提供各种不同的报告和/或其它信息。例如,服务提供者系统可以基于所捕获530的数据和由测试程序对该数据的执行来报告540发现和建议。附加地或可替代地,服务提供者系统可以基于在客户系统的时间点克隆上重放535所捕获的工作负载来报告540发现和建议。基于这些报告中的任一或两者,客户可以请求并且服务提供者系统可以提供另一次重放550来比较在实现建议之前和之后的结果。附加地或可替代地,服务提供者系统可以通过门户提供555负载和重放结果的各种图表和图形。这些和其它报告中的任何一个或多个报告可以通过门户被提供,用于被客户审查560和批准。
[0065] 换句话说,向一个或多个远程计算机系统提供负载测试服务可以包括由服务提供者计算机系统启动505-525一个或多个负载测试服务。与该一个或多个远程计算机系统的性能有关的一组数据可以由服务提供者系统通过网关来捕获530和535。一个或多个测试可以由服务提供者计算机系统在所捕获的这组数据上执行530和535。服务提供者计算机系统可以通过门户提供540-560基于在所捕获的数据上执行该一个或多个测试的结果的一组一个或多个报告。在一些情况下,捕获530和535与该一个或多个远程计算机系统的性能有关的一组数据和在所捕获的这组数据上执行530和535一个或多个测试、以及通过门户提供540-560基于在所捕获的数据上执行该一个或多个测试的结果的一组一个或多个报告可以在已对该一个或多个远程计算机系统做出调整之后进行重复。
[0066] 图6示出了根据本发明的一种实施例的包括负载测试记分卡的示例性用户界面。这个例子示出了能够被呈现为如上所述的门户用户界面的一部分的页面600。这个页面
600包括顶层导航头部(header)605和内容部分610。在导航头部605中呈现的选项向用户提供了多个用于导航的选项。门户的UI可以给予客户对门户模块和层的功能的访问。
导航头部605可以包括用于查看在“我的服务”中的服务、在“配置”中的配置、在“服务分析”中的服务分析、在“服务请求”中的服务请求、在“文档”中的文档、在“账户”中的账户信息、在“提醒”中的提醒以及在“预约”中的预约和已安排的服务的选项。对导航头部605的选项中的任何一个选项的选择、点击、触摸等会调用或启动一个或多个层、模块等来向用户提供与所选的选项有关的附加信息。在一些实施例中,当导航头部605的选项被选择时,在页面600的内容部分610中显示的信息可以被门户的该一个或多个层和/或模块实时地生成。在一些实施例中,当选项在导航头部605中被选择时,所显示的信息中的至少一些可以由门户的层和/或模块中的一个或多个预先生成并且被存储以用于在该选项被选择时进行显示。
[0067] 在实施例中,从导航头部605中选择“我的服务”选项可以在内容部分605中提供与对客户可用或者部署到网关的服务有关的信息。例如,服务表盘可以被显示为示出例如活动的服务、非活动/完成的服务。内容部分610通常可以包括数据表、图形、文本、图片、地图等的组合,以显示或总结信息。当导航头部605的“我的服务”选项被选择时,页面600的内容部分610可以显示与特定服务有关的数据。例如,本文所述的负载测试服务可以在整个工作流程中包括一组定义的步骤或分立的子过程。因此,内容部分610可以包括诸如一组面包屑615和/或按钮620或类似元件的元件,以帮助用户理解过程的当前进度和/或选择与整个过程的当前状态有关的数据的视图。
[0068] 如在这个例子中所示出的,页面600的内容部分610也可以包括为负载测试服务提供结果的汇总的记分卡625。例如,记分卡625可以包括表630,该表630包括客户系统的可能需要一些关注的目标或方面的列表、这些问题中的每一个的严重程度的指示、以及用于处理这些问题中的每一个的相关联的建议。附加地,计分卡可以包括部分635,该部分635包括被监视的各方面以及针对每个方面的结果的汇总。
[0069] 图7示出了根据本发明的一种实施例的包括负载测试报告的示例性用户界面的附加细节。在这个例子中,页面600的内容部分610的记分卡已被更新,以展现服务结果的附加细节。例如,用户可以选择内容部分610的标签705、链接、按钮或其它元件来展现附加的结果、建议、相关内容和/或与负载测试服务的结果相关的其它信息。在这种情况下,记分卡已被更新以显示服务结果的报告710。
[0070] 图8是示出根据本发明的一种实施例的用于执行负载测试的过程的附加细节的流程图。如这里所示出的,向一个或多个远程计算机系统提供负载测试服务可以包括由服务提供者计算机系统启动一个或多个负载测试服务。启动该一个或多个负载测试服务可以包括通过门户提供805对该一个或多个负载测试服务的访问和通过门户接收810对该一个或多个负载测试服务中的至少一个负载测试服务的客户选择和将该一个或多个远程计算机系统作为该一个或多个负载测试服务中所选择的至少一个负载测试服务的目标的指示。在一些情况下,启动服务也可以包括如果网关还没有被安装在该一个或多个远程计算机系统上,则在被指示为目标的该一个或多个远程计算机系统上安装815网关。
[0071] 与该一个或多个远程计算机系统的性能有关的一组数据可以由服务提供者系统通过网关来捕获。捕获与该一个或多个远程计算机的性能有关的这组数据可以包括通过网关监视820被指示为目标的该一个或多个远程计算机系统一段时间,以识别在这段时间内针对被指示为目标的该一个或多个远程计算机系统的峰值负载的时间段。在一些情况下,识别在这段时间内针对被指示为目标的该一个或多个远程计算机系统的峰值负载的时间段还可以包括通过门户提供针对被指示为目标的该一个或多个远程计算机系统的峰值负载的时间段的指示,以及通过门户接收针对被指示为目标的该一个或多个远程计算机系统的识别出的峰值负载时间段的接受的指示。服务提供者系统可以通过网关捕获825在所识别出的峰值负载时间段的工作负载和调整集数据。被指示为目标的该一个或多个远程计算机系统的一组生产数据的时间点克隆也可以由服务提供者系统来创建830。
[0072] 一个或多个测试可以由服务提供者计算机系统在所捕获的这组数据上来执行。在一些情况下,在所捕获的这组数据上执行一个或多个测试可以包括在所捕获的调整集数据上执行835一个或多个分析工具。在这些情况下,提供基于在所捕获的数据上执行该一个或多个测试的结果的一个或多个报告可以包括生成840在所捕获的调整集数据上执行该一个或多个分析工具的结果的报告,其中该报告包括与结果相关联的一个或多个建议,并且报告可以通过门户来呈现845。附加地或可替代地,在所捕获的这组数据上执行一个或多个测试可以包括在被指示为目标的该一个或多个远程计算机系统的这组生产数据的时间点克隆上重放850所捕获的工作负载。在这种情况下,提供基于在所捕获的数据上执行该一个或多个测试的结果的一个或多个报告可以包括生成855在被指示为目标的该一个或多个远程计算机系统的这组生产数据的时间点克隆上重放所捕获的工作负载的结果的报告。该报告也可以包括与这些结果相关联的一个或多个建议,并且该报告可以通过门户来提供860。在一些情况下,捕获820-830与该一个或多个远程计算机系统的性能有关的一组数据和在所捕获的这组数据上执行835-860一个或多个测试可以在已对该一个或多个远程计算机系统做出调整之后进行重复。
[0073] 在上述描述中,为了说明的目的,方法以特定的次序被描述。应当认识到,在可替代的实施例中,这些方法可以以与所描述的次序不同的次序来执行。还应当认识到,上述方法可以由硬件组件来执行,或者可以以机器可执行指令的序列而被体现,这些指令可以用来使诸如通用或专用处理器或用指令进行编程的逻辑电路的机器执行这些方法。这些机器可执行指令可以被存储在一个或多个机器可读介质上,诸如CD-ROM或其它类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光学卡、闪存或适于存储电子指令的其它类型的机器可读介质。可替代地,这些方法可以由硬件和软件的组合来执行。
[0074] 虽然本文已详细描述了本发明的说明性和当前优选的实施例,但是应该理解,该发明性的概念可以以其它方式不同地被体现和使用,并且所附权利要求旨在被解释为包括此类变更,但被现有技术所限定的内容除外。
QQ群二维码
意见反馈