Even Scheduler Plugin

Challenge: 

The default Jenkins algorithm for allocating a machine directs Jenkins to always try to use the same node for the same job, unless it’s not available. If the node is not available, the job will build elsewhere. However, as soon as the preferred node is available, the build comes back to it. This locality is useful in a large number of cases. For example, when performing SCM updates it is preferable to a fresh checkout, and some tools (like Maven) use local caches to speed up builds.

However, this workflow may result in a scenario where a number of builds run on the same machine, while other machines sit idle. In situations like this, it is beneficial to be able to change the default behavior of Jenkins to target idle machines. This allows your builds to run faster and you make optimum use of available system resources.

Solution: 

The Even Scheduler plugin, available with Jenkins Enterprise by CloudBees, offers a different scheduling algorithm, one that we refer to as an “even load strategy.” With this strategy, the scheduler prefers idle nodes absolutely over nodes that are doing something. The strength of this algorithm is that you are more likely to get a fully idle node. Quite simply, executing a build on a fully idle system is faster than executing the same thing on a partially loaded system.