Consuming VUs out of one shared MaxVUs pool across scenarios

I have two scenarios in a script, each with their own ramping-arrival-rate executor. Using a script with only one scenario I treat MaxVUs as a pool of VUs that are used to meet the stage target request rate. With the addition of the second scenario in the script I want them each to consume VUs to meet their respective stage target request rates using VUs out of the same MaxVUs pool. Is a single shared VUs pool possible? If so, which scenario (or both) should have MaxVUs set? If only one is required and the stage target request rate is zero, does it still see (and set) the MaxVUs value?

Hi @hdubnow

Welcome to the community forum :wave:

As stated in scenario executors, for each scenario the VU workload is scheduled by an executor. k6 does not change the behavior if the scenarios use the same executor. The VU pool will not be shared.

For arrival-rate VU executors behavior with VUs this is also a good read: Arrival-rate VU allocation

If a target request rate for a scenario was to be zero, not sure in which cases that would be useful, I believe maxVUs would not be an issue. It’s preAllocatedVUs, that if set, would cause the executor to pre-allocate all the VUs.

I hope this helps clarify. Let me know if you have further questions.

Cheers!

1 Like