The Constant Throughput Timer is used to control the throughput of your test. You can choose a calculation mode based on the goals of your test script. When using distributed stress sources, you must consider the configuration values and modes in your script to match various performance testing models. This topic describes two common use cases and explains how the distributed adaptation settings work with different calculation modes.
Background information
- With the setting, the value from your script is treated as the total target for all stress machines combined. Performance Testing Service (PTS) automatically divides this target by the number of stress machines. In this case, the target for each machine is 50 per minute (100 / 2). The total throughput for the scene is 100 requests per minute.
- With the setting, the value from your script is applied as the target for each individual stress machine. PTS does not modify this value. Ensure that the concurrency level matches your configured value. In this case, the total throughput for the scene is 200 requests per minute (100 per machine × 2 machines).
Common application scenarios
When configuring throughput control, we recommend applying it at either the sampler level or the thread group level. For a single thread group, controlling throughput at the thread group level affects the entire scene. Avoid overly complex configurations. The following examples use two stress machine IPs, a total concurrency of 100 in the thread group, and a target throughput of 100 per minute.
Control throughput at the sampler level
Log on to the PTS console. In the left navigation bar, select Performance Testing > Create Scenario, and then click JMeter.
- On the scene configuration tab, in the Constant Throughput Timer section, select per machine.
Note The distributed adaptation settings section appears on the scene configuration tab only if a timer is configured in your uploaded script.

- In your JMeter script, place the Constant Throughput Timer component as a child of the sampler you want to control.
- Set Target throughput to
100per minute. For Calculation mode, selectthis thread only, as shown in the following figure.
Control throughput at the thread group level
Log on to the PTS console. In the left navigation bar, select Performance Testing > Create Scenario, and then click JMeter.
- On the scene configuration tab, in the Constant Throughput Timer section, select global.
Note The distributed adaptation settings section appears on the scene configuration tab only if a timer is configured in your uploaded script.

- In your JMeter script, place the Constant Throughput Timer component as a child of a sampler within the thread group.
- Set Target throughput to
100per minute. For Calculation mode, selectall active threads in current thread group, as shown in the following figure.
Five calculation modes
Example: Assume you are using a single stress source with two thread groups. Thread group 1 has a concurrency of 100, and thread group 2 has a concurrency of 200. Each thread group contains two samplers. The Target throughput for both is set to 100 per minute.
| Calculation mode | Description | Details and example |
| this thread only | The target throughput is applied to each thread individually. The total throughput is the number of threads multiplied by the Target throughput value. | Inactive threads do not contribute to the throughput. Based on the example (requests per minute):
|
| all active threads | The target throughput is shared among all active threads across all thread groups. Each thread pauses for a calculated delay after its last run to maintain the overall target. | When used with multiple thread groups, all timers should have the same configuration. In the example:
|
| all active threads in current thread group | The target throughput is shared among all active threads within the current thread group. Each thread pauses for a calculated delay after its last run. | In a single-thread-group scenario, this mode behaves identically to all active threads. In our two-group example:
|
| all active threads (shared) | The target throughput is shared among all active threads across all thread groups. All threads wait until every active thread has completed its run before they pause and run again. | This creates a synchronized delay across the entire test plan. In this scenario:
|
| all active threads in current thread group (shared) | The target throughput is shared among all active threads within the current thread group. All threads in the group wait until every active thread in that group has completed its run before they pause and run again. | Threads within a group are synchronized, pausing after all have completed their current sampler run.
|
Distributed adaptation for other calculation modes
| Calculation mode | Use case | Global effect | Per-machine effect |
| all active threads | To control throughput for the entire test plan, where business models across multiple thread groups are similar and the total throughput is fixed. | The concurrency per machine is 50. The script's target throughput is divided by the number of machines, making the throughput on each machine 50 per minute. The total throughput remains 100 per minute. If there are multiple thread groups, their targets are cumulative. | The concurrency per machine is 50. The throughput on each machine is 100 per minute. The total throughput becomes 200 per minute (the script's value × number of machines). If there are multiple thread groups, their targets are cumulative. |
| all active threads (shared) | For controlling total throughput across all thread groups, where the target is slightly less than the sum of individual configurations. | If Thread Group 1 is set to 100 and Thread Group 2 is set to 200, the total throughput is the average of the two configurations (150). | If Thread Group 1 is set to 100 and Thread Group 2 is set to 200, the throughput per machine is 150 ((100 + 200) / 2). The total throughput is 300. It takes longer for samplers on each machine to reach a balanced state. |
| all active threads in current thread group (shared) | To control thread group throughput when the result is slightly less than the sum of individual configurations. | If Thread Group 1 is set to 100 and Thread Group 2 is set to 200, the total throughput is the sum of the configurations (300). | If Thread Group 1 is set to 100 and Thread Group 2 is set to 200, the throughput per machine is 300 (100 + 200). The total throughput is 600. It takes less time for samplers on each machine to reach a balanced state. |