本主题介绍如何使用性能配置文件,以实现对虚拟资产性能的特定控制。

章节目录: 

概要

性能配置文件可用于实现对虚拟资产性能的特定控制。每个虚拟资产的性能都可以设置来反映依赖应用程序的实际性能或模拟想要测试的特定性能模型。例如,您可能希望模拟固定响应延迟以及响应延迟范围,或者依赖于应用程序每秒点击率的延迟。对于负载依赖延迟,您可以利用线性或指数响应模板模型;还可以使用脚本创建自定义性能配置文件模型。此外,当外部应用程序由 APM 工具监控时,可以向配置文件汇总导入 APM 性能数据。

使用性能配置文件允许查看当依赖项显示一系列不同的性能条件时,AUT 会如何响应。例如,您可以:

  • 确保 AUT 能够在这些条件下按预期处理负载。
  • 评估系统的整体性能(AUT + 依赖于某些性能配置文件)。

可以为每个响应器套件定义性能配置(包括性能配置文件和性能组)。一旦虚拟资产被部署在 Virtualize 服务器上,则可以从 Virtualize 服务器视图或 CTP 中“动态地”将性能配置文件映射到性能组。

例如,假定:

  • 要模拟应用程序在两种不同部署环境下的性能:内部部署和云部署。
  • 根据正在模拟的应用程序的预期性能,将虚拟化响应器套件中的响应器分配给两个性能组(查询库存组和下订单组)。

  • 创建了要分配给性能组的性能配置文件(固定延迟、最快固定延迟、负载相关指数和负载相关线性)

在本案例中,您可以通过将性能配置文件映射到性能组来设置相关的虚拟资产,以便模拟两种部署场景:

模拟场景查询库存性能组下订单性能组
内部部署负载相关指数性能配置文件固定延迟性能配置文件
云部署负载相关线性性能配置文件最快固定延迟性能配置文件

定义可用性能配置

对于每个响应器套件,您可以定义:

  • 可用于相关虚拟资产的性能配置文件。
  • 表示哪些响应器集可使用同一个性能配置文件的性能组。

配置性能配置文件

每个性能配置文件定义一个特定的负载模式,该模式可以应用于关联响应器套件。可以定义任何数量的性能配置文件。

若要添加性能配置文件:

  1. 通过双击紧挨着 .pva 节点下方的虚拟资产浏览器节点,打开响应器的配置面板。
  2. 打开性能> 配置文件选项卡。
  3. 点击添加并指定配置文件名称。
  4. 配置所需的响应延迟。根据以下说明,您可以配置Fixed Response DelaysRange DelaysLoad Dependent Response Delays以及Scripted Delays

定义完性能配置文件后,保存更新的响应器套件。

固定响应延迟

对于固定响应延迟:

  1. 将延迟类型设置为固定值
  2. 指定所需延迟值(以毫秒为单位)。注意,在响应器级别指定的任何思考时间或延迟都将添加到在此处指定的延迟。
  3. 选择所需延迟随机化:均匀泊松

延迟范围

延迟范围允许指定最小和最大延迟范围界限。实际延迟将均匀分布在规定范围内

对于范围延迟:

  1. 将延迟类型设置为范围
  2. 指定所需范围。

负载依赖响应延迟

对于负载依赖响应延迟:

  1. 将延迟类型设置为加载依赖
  2. 如果希望使用非默认图表进行性能建模:
    1. 请点击图表下方的新建图表
    2. 在打开的对话框中,指定图表详情(图表类型、每秒最大点击率、最小延迟时间 [以毫秒为单位]、最大延迟时间 [以毫秒为单位] 以及可以重新定位的点的个数)。每秒点击率计算为每秒向虚拟资产的所有响应器发出的请求数。
  3. 根据需要拖动点来修改图形曲线。
  4. 从图表下的随机延迟框中选择延迟随机方式:均匀泊松

注意,对于大于图中指定值的所有每秒点击率(HPS)值,将使用最右边图点的响应延迟值。例如,如果图上最右侧的键在 10 个 HPS 时为 1500 毫秒(如上面的步骤 3 所示),那么所有大于 10 个 HPS 的 HPS 速率都将使用 1500 毫秒的响应延迟。

脚本化延迟

可以编写性能配置文件的行为脚本。脚本化方法应具备以下特点:

  • 返回一个数字(int 或 long 类型)。这将是以毫秒为单位的延迟时间。
  • 需要 0、1 或 2 个参数
    • 参数 1(如果指定)将是响应器当前的每秒点击数。HPS 为 float 类型。
    • 参数 2(如果指定)将是其他脚本方法使用的上下文对象。上下文参数是 com.parasoft.api.ScriptingContext。

有关脚本化的详情,请参阅扩展和脚本基础

实际响应时间

注意,性能配置文件延迟被添加到响应器处理时间。大多数情况下,实际响应时间将超过性能配置文件响应延迟时的“零延迟”响应。 

此外,在响应器级别指定的任何“思考时间”或“响应时间”延迟都将添加到性能配置文件延迟。

从应用程序性能管理(APM)系统导入数据

请参阅从应用程序性能管理(APM)系统导入性能配置文件

将响应器映射到性能配置文件(使用性能组)

能够共享单个性能配置文件的响应器应该聚合到特定的性能组中。部署相关虚拟资产后,您(或您的团队成员)便可以将性能组需要的性能配置文件映射过去。

可以创建任何数量的性能组。每个响应器都可以包含在多个性能组中(即不可以在多个性能组中使用单个响应器)。

定义性能组:

  1. 打开响应器套件的配置面板。
  2. 打开性能> 组选项卡。
  3. 性能组下方,点击添加,输入新组的名称。
  4. 选中新组之后,点击响应器下方的添加
  5. 在打开的对话框中,指定哪些响应器属于该性能组,点击 OK


    • 记住,一个响应器只能属于一个性能组。启用仅显示未与性能组关联的响应器将帮助您识别哪些响应器仍然可以分配。

定义完性能组后,保存更新的响应器套件。

将性能配置应用到已部署的虚拟资产

设置完性能配置文件和性能组后,您便可以从 Virtualize 服务器视图或从 CTP 中“动态地”将其应用到虚拟资产。这允许您快速设置和更改虚拟资产的性能条件。 

Virtualize 服务器视图

从 Virtualize 服务器视图中,您可以将性能配置应用到虚拟资产,如下所示:

  1. 双击虚拟资产节点,打开其配置面板。
  2. 打开性能选项卡。
  3. 指定要应用于每个性能组的可用性能配置文件。
  4. 将变更保存到虚拟资产。

CTP

请参阅Working with Performance Profiles

配置判断时间

在其他地方配置的判断时间或延迟将被添加到性能配置文件中指定的延迟中。判断时间可以在以下情况下配置:

  • 响应器级别:在性能分类下的“选项”选项卡中设置。注意,如果需要,判断时间值可以根据数据源列参数化。
  • 消息级别(仅适用于多响应模式):为每个消息配置。

从 APM(应用程序性能管理)系统导入性能配置文件

APM 系统提供了监控并管理应用程序性能和可用性的工具。APM 系统为其监控的应用程序收集性能数据;Virtualize 性能配置文件导入器可以查询 APM 系统以获得性能数据,并且根据所监控应用程序的性能指标创建性能配置文件。

若要查询 APM 系统以获得可用的性能指标,并且导入所选指标作为性能配置文件,请完成以下内容:

  1. 点击 .pva 的根响应器套件的性能选项卡中的导入。将打开导入性能配置文件对话框。


  2. APM 系统中选择想要导入数据的 APM 系统。目前支持“开箱即用”的系统有:
    • AppDynamics
    • dynaTrace
  3. 在查询属性表中,为 APM 系统设置合适的查询属性。详情请参阅:
    默认属性值由性能配置文件导入器部署描述符填充(如Modifying Performance Profile Importer Deployment Descriptors中所述)。若要修改查询苏醒表中的值,请点击值列中合适的行并编辑值。在使用 OK 按钮关闭性能配置文件导入器对话框之后,值将保存在响应器套件配置中。
  4. 点击重新加载(在对话框底部)以从 APM 系统中导入性能数据。将显示可用的性能配置文件。
  5. 创建该类型的配置文件组合框选择要创建的配置文件类型。

    有以下可用选项:
    • 固定:对于导入对话框中所选的每个条目,导入器都将创建一个固定的响应延迟性能配置文件。配置文件的延迟值将设置为平均延迟(ms)值,因为它出现在导入器对话框的性能配置文件表中。导入器将为导入的性能配置文件附加一个 _Fixed 后缀。
    • 范围:对于导入对话框中所选的每个条目,导入器将使用最小延迟(ms)和最大延迟(ms)的延迟范围来创建范围响应延迟性能配置文件因为它们出现在导入器对话框的性能配置文件表中。导入器将为导入的性能配置文件附加一个 _Range 后缀。
    • 固定值和范围:对于导入对话框中所选的每个条目,导入器都将创建一对固定值和范围的性能配置文件,如上所述。
  6. 选择要导入的配置文件。可以使用选择所有/取消选择所有,右键点击性能配置文件表中的命令以进行多个选择。
    如果选择了没有最大或最小延迟值的性能配置文件(因为 APM 系统没有提供这些值),那么创建配置文件的类型选项将被设置为固定值。只有具有最大和最小延迟值的配置文件可以用于范围延迟类型。
  7. 点击 OK,将所选配置文件导入 .pva 的响应器套件性能配置中。
    如果具有所选名称和类型的任何配置文件早就存在于响应器套件性能配置中,则将显示警告和确认对话框:

    如果响应器套件性能配置的任何配置文件具有与被导入的配置文件相同的名称(但是为不同类型),那么将取消导入操作,并且将显示以下对话框。例如,如果有一个名为“Calculator-Doc-Literal.subtract_Fixed”的现有性能配置文件和一个范围类型的响应延迟,那么将不允许使用固定值类型的响应延迟导入“Calculator-Doc-Literal.subtract_Fixed”:

从 AppDynamics 导入性能配置文件

AppDynamics 特定查询参数:

参数说明
usernameAppDynamics 账号用户名。
密码AppDynamics 账号密码。
host安装 AppDynamics 控制器的主机名。
port监听 REST 请求的 AppDynamics 控制器的端口。这与用于访问 AppDynamics Web 接口的端口相同。
tier在 AppDynamics 中配置的层名称。
transaction

设置为 * 以查看所选定应用程序和层下的所有事务。 

设置为事务名称(当它在 AppDynamics Metric Browser 树中出现 Business Transactions Performance> Business Transactions 节点时),以按单个事务进行筛选。

timeIntervalMinutes用于计算性能指标的时间间隔(以分钟为单位)。

AppDynamics 性能配置文件导入器查询 AppDynamics 以获得可在应用程序的配置和数据树的 Analyze> Metric Browser 节点中使用的性能数据。在 AppDynamics Metric 树视图中,该数据显示在 Business Transaction Performance> Business Transactions> YourTier 节点下,然后显示 Average Response Time 指标节点下。

从 dynaTrace 导入性能配置文件

dynaTrace 特定查询参数:

参数说明
usernamedynaTrace 账号用户名。
密码dynaTrace 账号密码。
host安装 dynaTrace 客户端的主机。
port安装 dynaTrace 客户端的端口。默认 – 8020。
dashboard仪表板如在 dynaTrace 客户端中配置的一样命名。
method

设置为“*”以查看仪表板中的所有 web 服务方法和 web 请求 URI。 

设置为 web 服务方法名或 Web 请求 URI,以按单个事务进行筛选。

这个 dynaTrace 性能配置文件导入器查询 dynaTrace 客户端中所选仪表板的 Web 服务和 Web 请求仪表板,以获取 Web 服务方法和 Web 请求性能数据。

必须在查询参数中指定的仪表板中包含 Web 服务或 Web 请求仪表板,或者两者都包含。

确保显示了 Web 服务或 Web 请求仪表板总的 Avg/Min/Max 列。如果是这样,那么列数据将可用于 REST 查询中的性能配置文件导入器。

修改性能配置文件导入器部署描述符

在导入对话框的查询属性表中出现的默认值可以通过修改合适的性能配置文件导入器部署描述符文件自定义。这些文件位于 apm-integration/performance-profile-importers 文件夹或根目录(<INSTALL-DIR>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root)中。

根据您的环境修改 AppDynamics.xml 和 dynaTrace.xml 性能配置文件导入器部署说明符的值属性。 

<performance-profile-importer name='AppDynamics' class="com.parasoft.profiles.apm.common.appdynamics.AppDynamicsPerformanceProfileImporter">
  <!-- AppDynamics 3.8.2 -->
  <property name='username' value='admin@customer1'/>
  <property name='password' type='masked' value='admin'/>
  <property name='host' value='myhost.mycompany.com'/>
  <property name='port' type='int' value='8090'/>
  <property name='application' value='MyApplication'/>
  <property name='tier' value='MyTier'/>
  <property name='transaction' value='*'/>
  <property name='timeIntervalMinutes' type='int' value='4320'/>
</performance-profile-importer>
  • No labels