Shuffle agents selection with same priority

We now have 5 new high end PC to process our workload.
All of the agents have the same, highest, priority (there are also other, weaker, agents).
All have the same configuration.
With current implementation agent no 1 is chosen more often than agent no 2 and agent no 2 is chosen more often than agent no 3 and so on…
This puts high load, especially on drive, of the agent no 1, where as agent no 5 is usually doing nothing.
Instead of joggling priorities from time to time, it would be good if Continua would do such shuffle.
If all agents have the same priority, do not choose the first available, but randomly choose from available.

Hi Michal,

Agents are initially weighted based on their “capacity available,” which is calculated as the number of concurrent stages an agent can run minus the number of active stages currently running on it. This means the least busy agent is selected first. When agents have the same capacity, they are then ordered by priority.

It sounds like your issue arises when only one or two agents are running concurrently, leading to agents 1 and 2 being selected more frequently, while other agents remain underutilised.

To address this, you can set agent priority dynamically using the Agent Requirements tab in the Stage Options dialog. Instead of using static priorities, you can use the $Utils.RandomNumber()$ expression to assign a random priority to the agents running the stage. For example:

However, if you have many stages, setting this for each stage manually can be tedious. With this in mind, we will look into adding a server property that will allow agents with the same capacity and priority to be randomly selected.