This topic explains how to use performance profiles in order to achieve very specific control over the performance of virtual assets.
Sections include:
Overview
Performance profiles can be used to achieve very specific control over the performance of virtual assets. The performance of each virtual asset can be set to reflect the dependent application’s actual performance or to simulate specific performance models that you want to test against. For example, you might want to simulate fixed response delays and response delay ranges, or delays that are dependent on the hit-per-second rate that the application is under. For the load-dependent delays, you can utilize linear or exponential response template models; you can also create custom performance profile models using scripts. Additionally, when external applications are being monitored by an APM tool, you can import APM performance data into a profile.
Using performance profiles enables you to see how your AUT responds when dependencies exhibit a range of different performance conditions. For instance, you can:
- Ensure that the AUT can handle the load as expected under these conditions.
- Assess the overall performance of the system (AUT + dependencies with certain performance profiles).
Performance configurations (including performance profiles and performance groups) can be defined for each responder suite. Once a Virtual Asset is deployed on a Virtualize Server, you can map performance profiles to performance groups “on the fly” from either the Virtualize Server view or from CTP.
For example, assume that:
- You want to emulate the performance of an application for two different deployment environments: Internal Deployment and Cloud Deployment.
You assigned the responders in the Virtualize responder suite to two performance groups (Search Inventory Group and Place Order Group) based on the expected performance of the application you are emulating.
- You created performance profiles (Fixed Delay, Fast Fixed Delay, Load Dependent Exponential and Load Dependent Linear) that you would like to assign to performance groups.
In this case, you would set up the associated virtual asset by mapping the performance profiles to performance groups in order to emulate the two deployment scenarios:
Emulation Scenario | Search Inventory Performance Group | Place Order Performance Group |
---|---|---|
Internal Deployment | Load Dependent Exponential Performance Profile | Fixed Delay Performance Profile |
Cloud Deployment | Load Dependent Linear Performance Profile | Fast Fixed Delay Performance Profile |
Defining the Available Performance Configurations
For each responder suite, you can define:
- Performance profiles that can be applied to the associated virtual assets.
- Performance groups that indicate which sets of responders can use the same performance profile.
Configuring a Performance Profile
Each performance profile defines a specific load pattern that can be applied in the associated responder suite. You can define any number of performance profiles.
To add a performance profile:
- Open the responder suite’s configuration panel by double-clicking the Virtual Asset Explorer node that is immediately below the .pva node.
- Open the Performance > Profiles tab.
- Click Add and specify a profile name.
- Configure the desired response delay. You can configure Fixed Response Delays, Range Delays, Load Dependent Response Delays, and Scripted Delays as described below.
When you’re done defining performance profiles, save the updated responder suite.
Fixed Response Delays
For a fixed response delay:
- Set the delay type to Fixed.
- Specify the desired delay value in milliseconds. Note that any think time or delay specified at the responder level will be added to the delay specified here.
- Select the desired delay randomization: none, uniform, or Poisson.
Range Delays
Range delays allows you to specify the Minimum and Maximum delay range bounds. The actual delays will be uniformly distributed within the specified range.
For a range delay:
- Set the delay type to Range.
- Specify the desired range.
Load Dependent Response Delays
For a load dependent response delay:
- Set the delay type to Load Dependent.
- If you want to model performance using a graph other than the default one shown:
- Click New Graph below the graph.
- In the dialog that opens, specify the desired graph details (graph type, maximum hits per second, minimum delay [in milliseconds], maximum delay [in milliseconds], and number of points you can reposition). The Hit-per-Second rate is calculated as a number of requests per second to all responders of a Virtual Asset.
- Modify the graph curve as needed by dragging the points.
- From the Delay Randomization box below the graph, select the desired delay randomization: none, uniform, or Poisson.
Note that for all Hits Per Second (HPS) values that are greater than what is specified in the graph, the Response Delay value of the right-most graph point will be used. For instance, if the right-most key on the graph is 1500 milliseconds at 10 HPS (as in the graphic for step 3 above), all HPS rates greater than 10 HPS will use the 1500 millisecond response delay.
Scripted Delays
You can script the behavior of a performance profile. The scripting method should have the following characteristics:
- Return a number (int or long). This will be the delay time in milliseconds.
- Take 0, 1, or 2 arguments.
- Argument 1 (if specified) will be the current hits per second on the responder. HPS is float type.
- Argument 2 (if specified) will be the context object used by other scripting methods. The context argument is com.parasoft.api.ScriptingContext.
For more details on scripting, see Extensibility and Scripting Basics.
Actual Response Time
Note that Performance Profile delay is added to the responder processing time. In most cases, the actual response time will exceed the Performance Profile response delay by the time of the “zero delay” response.
In addition any "think time" or "response time" delay specified at the responder level will be added to the Performance Profile delay.
Importing Data from Application Performance Management (APM) Systems
See Importing Performance Profiles from Application Performance Management (APM) Systems.
Mapping Responders to Performance Profiles (with Performance Groups)
Responders that can share a single performance profile should be aggregated into a specific performance group. When the associated virtual asset is deployed, you (or your team members) will be able to map which performance profiles to apply to which performance groups.
You can create any number of performance groups. Each responder can be included in no more than one performance group (that is, a single responder cannot be used across multiple performance groups).
To define a performance group:
- Open the responder suite’s configuration panel.
- Open the Performance > Groups tab.
- Under Performance Groups, click Add, then enter a name for the new group.
- With the new group selected, click the Add under Responders.
- In the dialog that opens, specify which responders belong to that performance group, then click OK.
- Remember that a responder can belong to only one performance group. Enabling Only show responders not associated with a performance group will help you identify which responders are still available for assignment.
When you’re done defining performance groups, save the updated responder suite.
Applying Performance Configurations to Deployed Virtual Assets
Once performance profiles and performance groups are set, you can apply them to virtual assets "on the fly" from either the Virtualize Server view or from CTP. This lets you quickly set and change the virtual asset’s performance conditions.
From the Virtualize Server View
From the Virtualize Server view, you can apply a performance configuration to a virtual asset as follows:
- Open the virtual asset’s configuration panel by double-clicking its node.
- Open the Performance tab.
- Specify which of the available performance profiles you want to apply to each performance group.
- Save the changes to the virtual asset.
From CTP
See Working with Performance Profiles.
Configuring Think Times
Think times or delays configured elsewhere will be added to the delays specified in performance profiles. Think Times can be configured at:
- The responder level: Set in the Options tab under the Performance category. Note that the think time value can be parameterized against a data source column, if desired.
- The message level (only available in Multiple Responses mode): Configured for each message.
Importing Performance Profiles from Application Performance Management (APM) Systems
Application Performance Management (APM) systems provide tools for monitoring and managing application performance and availability. APM systems collect performance data for the applications they monitor; Virtualize Performance Profile Importers can query APM systems for performance data and create performance profiles based on the performance metrics of the monitored applications.
To query an APM system for available performance metrics and import selected metrics as performance profiles:
- Click Import in the Performance tab of the .pva’s root Responder Suite. An Import Performance Profiles dialog opens.
- From APM System, select the APM system from which you want to import data. Systems currently supported "out of the box" are:
- AppDynamics
- dynaTrace
- In the Query Properties table, set the appropriate query properties for your APM system. For details, see:
The default property values are populated from the Performance Profile Importer deployment descriptors (described in Modifying Performance Profile Importer Deployment Descriptors). To modify the values in the Query Properties table, click the appropriate row in the Value column and edit the value. The values will be saved in the Responder Suite configuration after the Performance Profiles Importer dialog is closed with the OK button. - Click Reload (at the bottom of the dialog) to import performance data from the APM system. The available performance profiles will be displayed.
- From the Create Profiles of Type combo box, select the profile types you would like to create.
The following options are available:- Fixed: For each entry selected in the Import dialog, the importer will create a Fixed Response Delay performance profile. The profile’s delay value will be set to the Avg. Delay (ms) value as it appears in the Performance Profiles table of the importer dialog. The importer will append a
_Fixed
suffix to the names of the imported performance profiles. - Range: For each entry selected in the Import dialog, the importer will create a Range Response Delay performance profile with a delay range of Min. Delay (ms) and Max. Delay (ms) as they appear in the Performance Profiles table of the importer dialog. The importer will append a
_Range
suffix to the names of the imported performance profiles. - Fixed and Range: For each entry selected in the Import dialog, the importer will create a pair of Fixed and Range performance profiles as described above.
- Fixed: For each entry selected in the Import dialog, the importer will create a Fixed Response Delay performance profile. The profile’s delay value will be set to the Avg. Delay (ms) value as it appears in the Performance Profiles table of the importer dialog. The importer will append a
- Select the profiles you want to import. You can use the Select All / Deselect All right-click commands in the Performance Profiles table to make multiple selections.
If you selected performance profiles that do not have Max. or Min. delay values (because these values were not provided by the APM system), the Create Profiles of Type selection will be set to Fixed. Only profiles with Max. and Min. delay values can be used for a range delay type. - Click OK to import the selected profiles into the .pva’s Responder Suite performance configuration.
If any profiles with the selected names and types already exist in the Responder Suite performance configuration, a warning and confirmation dialog will be displayed:
If any profiles in the Responder Suite performance configuration have the same name as (but different type than) the profiles that are being imported, the import operation will be canceled, and the following dialog will be displayed. For example, if there is an existing Performance Profile named “Calculator-Doc-Literal.subtract_Fixed” with a Response Delay of type Range, then importing “Calculator-Doc-Literal.subtract_Fixed” with Response Delay of type Fixed will not be allowed:
Importing Performance Profiles from AppDynamics
AppDynamics-specific query parameters:
Parameter | Explanation |
---|---|
username | AppDynamics account username. |
password | AppDynamics account password. |
host | Host name where AppDynamics Controller is installed. |
port | Port on which the AppDynamics Controller is listening for REST requests. This is the same port that is used to access the AppDynamics Web Interface. |
tier | Tier name as configured in AppDynamics. |
transaction | Set * to see all transactions under the selected Application and Tier. Set to the transaction name (as it appears under the Business Transactions Performance> Business Transactions node in the AppDynamics Metric Browser tree) to filter by individual transaction. |
timeIntervalMinutes | Time interval in minutes used to calculate performance metrics. |
The AppDynamics Performance Profile Importer queries AppDynamics for performance data available in the Analyze > Metric Browser node of application’s configuration and data tree. In the AppDynamics Metric Tree view, this data is displayed under the Business Transaction Performance > Business Transactions > YourTier node and then under the Average Response Time
metric node.
Importing Performance Profiles from dynaTrace
dynaTrace-specific query parameters:
Parameter | Explanation |
---|---|
username | dynaTrace account username. |
password | dynaTrace account password. |
host | Host on which dynaTrace Client is installed. |
port | Port on which dynaTrace Client is installed. Default – 8020. |
dashboard | Dashboard name as it is configured in dynaTrace Client. |
method | Set to “*” to see all web service methods and web request URIs in the dashboard. Set to the web services method name or Web request URI to filter by individual transaction. |
The dynaTrace Performance Profile Importer queries the Web Services and Web Requests dashlets of a selected dashboard inside dynaTrace Client for Web Services methods and Web requests performance data.
You must include either the Web Services or Web Requests dashlets—or both—into the dashboard you specified in the query parameters.
Make sure that the Total Avg/Min/Max columns of the Web Services or Web Requests dashlets are displayed. If they are, the column data will be available for the Performance Profile importer in the REST queries.
Modifying Performance Profile Importer Deployment Descriptors
The default values which appear in the Query Properties table of the Import dialog can be customized by modifying the appropriate Performance Profile Importer deployment descriptor files. These files are located in the apm-integration/performance-profile-importers
folder or the root directory (<INSTALL-DIR>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root
).
Modify the value attributes of the AppDynamics.xml and dynaTrace.xml Performance Profile Importer deployment descriptors as you see appropriate for your environment.
<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>