Using Round Robin Test Scheduling

When you configure a ThousandEyes test, the Interval setting controls the time between each test execution. Round-robin scheduling lets you stagger the execution of tests that are run at similar intervals.

Round-robin execution is limited to certain test types:

  • Page Load

  • Transactions

With Round-Robin an additional two settings, the Schedule mode and the Subinterval, are available to control the distribution of test execution, typically used when the test is assigned to multiple Cloud or Enterprise Agents.

When the Schedule mode is available, users may select either "Default" or "Round-robin" as the setting. In round-robin scheduling, each agent will be assigned a subinterval during which it must execute the test. Agents will be assigned to subintervals in a round-robin fashion.

This article explains the two scheduling modes, and provides a guide to using round-robin scheduling.

Default Mode

All ThousandEyes tests can be run in Default mode. The images below show the Basic Configuration tab of a test with the Schedule mode, when set to "Default", and a test without the Schedule mode (can only be run in Default scheduling mode).

In Default mode, a test can be executed by an agent at any time within the test's Interval setting. An agent will sequentially execute tests in a test queue. A given test will run whenever previous tests in the queue have completed. The start time for a given test within the test interval depends on the amount of other tests ahead in the queue, and the time taken by those tests to complete.

Round-Robin Mode

Currently, Browser-based tests (Page Load and Transaction test types) have a Schedule mode setting, and a Subinterval setting as shown below.

In Round-robin mode, a test is executed by an agent based on the Subinterval setting. The test is assigned to agents' queues with a time-based offset from the beginning of the test round, to create subintervals. The offset varies by agent in order to evenly distribute all agents' test executions into subintervals over the time specified by the Interval setting.

Notes:

  • An agent may execute a test at any time within a subinterval

  • The subinterval in which a particular agent executes a test cannot be configured

  • For Page Load tests, the included HTTP Server test will be executed in the same subinterval as the Page Load test

The formulas below determine the number of subintervals and the number of agents in each subinterval. For the following settings

I = test Interval setting, in minutes S = test Subinterval setting, in minutes A = number of Agents assigned to the test

then

N = I ÷ S the number of subintervals in a test round

and

X = ⌈A ÷ N⌉ the maximum number of agents that will execute the test in a subinterval (the ⌈ ⌉ symbol indicates rounding up to the next integer)

If A ÷ N is not an integer, the remainder will be scheduled in a round-robin manner, i.e., one to the first subinterval, then one to the second, and so on, until all remaining agents are scheduled.

Round-Robin Example

For the following settings:

Interval (I)10 minutes

Subinterval (S)

2 minutes

Agents (A)

12

Number of subintervals (N)

5

Maximum number of agents executing per subinterval (X)

3

The execution of the test will be distributed as follows:

Round-Robin Use Cases

Round-robin scheduling can be useful when performing the same actions at the same time from multiple agents is not permitted. For example:

  1. Steps in a Transaction test would produce conflicting results

  2. Rate limits by a security device or security feature require even spacing of requests

  3. Concurrent logins to a web application or proxy are not permitted

    To have exactly one agent per subinterval execute a test (X = 1) we can express the above equations as:

For example, with an interval time (I) of 15 minutes and a subinterval time (S) of 5 minutes, the test should have 3 agents assigned.

If fewer agents are assigned to the test than the number of subintervals, then for A agents, the test will be assigned to the first A subintervals.

Last updated