Defining and utilizing performance profiles
Hey everyone! When designing a virtual service, users will often want to make sure that the virtual service will respond in a similar fashion to the live service that it is trying to mock. In order to do this to the fullest extent, we have the ability to create performance profiles.
What are performance profiles?
Performance profiles are definitions of how the virtual asset will respond with regards to delays in messaging or how the assets will respond under stress. To get a better understanding of this, let's dive into one such profile in Virtualize.
To create a profile in Virtualize, double click on the top level Responder Suite, and click on the Performance tab. Here, you will see two sub-tabs; one called Profiles, and one called Groups. Let's focus on the Profiles tab for now. First, you will want to click on the Add button in the left half of the window. This will bring up a dialogue box where we are prompted to enter in a name. Upon clicking OK, you will notice that some information was populated in the right half of the editor window.
Here, you can then select the response delay time and response delay pattern. The different patterns are described as follows:
- Fixed - this will introduce a fixed time delay into your asset, where it will not respond for the defined number of milliseconds after the request is received.
- Range - this will introduce a variable delay that is evenly distributed between the Min. Delay Value and the Max. Delay Value that you have set here.
- Load Dependent - this will introduce a variable delay that will respond slower the more times it is hit per second. By default, it will go up to a 3 second (3000 ms) delay when it is being hit 10 times per second. If you would like to further customize this amount, click the New Graph button below the graph. This will bring up a dialogue box where you can select either a Linear increase or Exponential increase in the delay depending on the hit rate, as well as minimum and maximum values for the delay and a maximum amount for the hits per second for scaling purposes. Note that if you'd like, you can also click and drag any of the points on the graph to even further customize the behavior of the asset with regards to the hit rate.
- Scripted - with this option, you can script a value to be returned tot he profile to set the delay.
You may have noticed a small dropdown menu under some of the test options called Delay Randomization. Here, you can select:
- None - no delay randomization
- Uniform - creates a randomized delay around the provided value
- Poisson - creates a randomized delay around the provided value in a weighted bell curve. More information on this distribution type can be found here.
Now that the Profile has been set (AND SAVED!) We can set the performance group. To do so, select the Groups tab. Here, click the add button on the left side and name your group. The group will define which responders in this asset will be affected by any given performance profile. Once the group is defined, click on the group on the left pane, then click the add button in the right pane.
This will open up a window that has a list of all un-grouped responders in your asset. Select the responders you would like to add to the group, and click ok. Don't forget to save after this step.
After the profile and the group are defined, we need to pair the two. To do so, double click on your virtual asset in the Virtualize Server view on the right side of the screen. This will bring up the deployment settings for your asset. Here, click on the Performance tab. This tab contains a list of all Performance groups defined in this virtual asset. To pair a group with the performance profile, click the dropdown button next to your performance group, and select your performance profile.
After you've done this, save your work. Your asset has now been configured to have a response delay.