Manage Elastic Load Generators

This section describes how to set up and manage elastic load generators, enabling users to dynamically assign them to performance tests.

About using elastic load generators

Before you can use elastic load generators, you need to configure the orchestrators and load generator images which are used for dynamic provisioning. Orchestrators are responsible for automating deployment and management of load generators running inside containers.

After the load generator image have been configured, the image can then be assigned to tests in the project from My Performance Center or the Performance Center REST API.

Note:  

  • Performance Center currently supports Kubernetes orchestrators with dockerized images.

  • For users to be able to assign elastic load generators to a test, the project must be linked to an Orchestrator.

Advantages of elastic provisioning

Benefits of using elastic load generators include:

  • Efficient allocation of resources on demand in response to dynamic workloads, without having to rely on load generators defined in the lab, or to reserve load generators in advance.

  • Automates the testing process by provisioning and de-provisioning load generators, and seamlessly adds them to performance tests.

You manage your orchestrators and load generator images from the Orchestration page. For details, see Set up elastic load generator provisioning and Add load generator images.

Back to top

Set up elastic load generator provisioning

  1. Prerequisites

    The following are key requirements for setting up an orchestrator which you should obtain from your IT team: full orchestrator URL, Namespace, external storage path (if used), authentication token, and Heapster server URL (if monitoring your image).

  2. Configure the orchestrator

    1. In Performance Center Administration, select Management > Orchestration. In the Orchestrators tab, click  Add Orchestrator.

    2. Enter the following (all entries must be in lower case):

      UI Elements

      Description

      Full URL Select the connection type (http/https), and enter the full URL.
      Type This field is set to Kubernetes (the only orchestrator type that is currently supported).
      Namespace

      Enter the name for the namespace. This is a private space where your containers will be created.

      Example: pc

      Token

      Enter the Kubernetes bearer token to authenticate API requests.

      Note: After saving the orchestrator settings, the token is hidden (turns into asterisks).

      Use External Storage

      Select this option to store the performance test run files on an external machine. This is recommended because it can prevent loss of or inaccessibility to results if result collation fails (you can still access the files even though the container has been removed).

      Path

      When Use External Storage is selected, enter the path of the environment for storing all the run files.

      Use Monitoring

      Enables collecting metrics on Kubernetes container clusters using the Heapster monitoring solution.

      Heapster Server

      When Use Monitoring is selected, enter the full URL of the Heapster server, including port, in the format: <server_name>:<port>

      Resource Limits
      • Memory (GB). Specify how much of the available memory resources (in gigabytes) a container can use during a performance test run.

      • CPUs. Specify how much of the available CPU resources a container can use during a performance test run.

      Note: When a user configures elastic load generator properties, they cannot enter values that exceed these limits. If the administrator reduces the project limits below the value configured by a user in the Assign Load Generators to Groups Dialog Box, the user's settings are automatically adjusted to be within the new limits.

      Description Enter a description of the orchestrator.
  3. Assign load generator images to the orchestrator

    Click Assign Images to open the Assign Images to the Orchestrator dialog box.

    Select images to assign to the orchestrator, and click Assign.

    If no image is assigned, Performance Center uses the default performancetesting/load_generator_linux/ image from the Docker hub.

    For details on creating load generator images, see Add load generator images.

  4. Assign projects to the orchestrator

    1. In the Linked Projects area, click Assign Projects to open the Assign Projects to the Orchestrator dialog box.

    2. Select the projects you want to assign to the orchestrator, and click Assign. The selected projects are added to the Linked Projects grid.

      Note: You can assign multiple projects to an orchestrator, but only one orchestrator to a project.

    3. You can see project details, and add or remove linked projects using the Linked Projects grid.

      Field Description
      Assign Projects. Assigns the selected projects to the orchestrator.
      Remove Assigned Project. Removes the selected project from the orchestrator.
      Refresh. Refreshes the grid so that it displays the most up-to-date information.
      ID The project's ID.
      Project Name The name of the project.
      Domain The domain in which the project was created.
  5. Click Save to save the settings. The orchestrator is added to the Orchestrators grid.

Back to top

Add load generator images

You can add and manage load generator images that are used for elastic provisioning in the Docker Images tab. The PC Linux Docker LG image is listed by default.

  1. In Performance Center Administration, select Management > Orchestration and click the Docker Images tab. The Docker Images page opens.

  2. To add a new image, click the Add Docker button.

  3. Add a name and description (optional) for the image, and click Save.. The image is added to the Docker Images grid.

Back to top

Configure a performance test with elastic load generators

After configuring the orchestrator and adding the load generator image, you can configure the performance test either manually or by using the REST API.

To configure a performance test manually:

In My Performance Center, assign dockerized load generators to a test. For details, see Assign elastic load generators to a test.

To configure a performance test using the REST API:

  1. Create or update load tests with elastic load generators, by selecting dynamic type hosts for your groups.

    Add elastic load generators named DOCKER1, DOCKER2 and so forth to the <Host> XML field.

    Example: 
    
    <Hosts>
    <Host>
    <Name>DOCKER1</Name>
    <Type>dynamic</Type> </Host>
    <Host>
    <Name>DOCKER2</Name>
    <Type>dynamic</Type>
    </Host>
    </Hosts>

    For API details, see test entity XML in the Performance Center Administration REST API Guide.

  2. Continue from the Run the performance test step in Add dockerized load generators to tests from the REST API.

Back to top

Customize elastic provisioning settings

When provisioning elastic load generators, you can customize the default image name and timeslot settings. To do so, on the Performance Center server, open the pcs.config file located in <PC server installation directory>\dat\, and perform the following:

  • Default image name.

    The default public load generator docker image name might change each release. To modify the default image name, enter a different name under<ElasticProvisionSettings> in DefaultLinuxDockerImageName and DefaultWinDockerImageName.

    Example:

    <configuration>

    <configSections>

    <section name="ElasticProvisionSettings" type="HP.PC.Configuration.Settings.ElasticDefaultSettings, HP.PC.Configuration.Settings"/>

    </configSections>

    <ElasticProvisionSettings DefaultLinuxDockerImageName="performancetesting/load_generator_linux" DefaultWinDockerImageName="performancetesting/win_load_generator"/>

    </configuration>

  • Timeout settings.

    Enter a new timeout value in ElasticProvisionTimeoutInSeconds. The default timeout value is 300 seconds (5 minutes).

Back to top

Notes and limitations

  • Network Virtualization is not supported when using elastic load generators.

  • To ensure that run results are retained after a performance test ends, Collate results should be selected as the Post-Run Action. For details, see View or modify the project settings. If Collate results is not selected and external storage is not used, the result data will be lost, since elastic load generators are freed immediately after the run finishes.

Back to top

See also: