What is a Jenkins Executor and how can I best utilize my executors


I’d like to understand what is a Jenkins executor, and how to best manage executors?
How many executors should I allocate to a build agent?



A Jenkins executor is one of the basic building blocks which allow a build to run on a node/agent (e.g. build server). Think of an executor as a single “process ID”, or as the basic unit of resource that Jenkins executes on your machine to run a build. Please see Jenkins Terminology for more details regarding executors, nodes/agents, as well as other foundational pieces of Jenkins.

You can find information on how to set the number of Jenkins executors for a given agent on the Remoting Best Practices page, section Number of executors.

Using Operations Center is the most efficient approach to making the most use of your available executors (and node/agent resources as well). If Shared Agents or Shared Cloud resources are defined at the parent Operations Center level, the children Master instances can scale up/down as needed to make the best use of the total resources. It is a more efficient approach to define Shared agent resources using a total allocation of 40 executors at the Operations Center level, than it is to define local agents attached to 4 master instances with each consuming 10 executors - a scenario that is much more likely to result in queued builds due to Executor Starvation.

Default Jenkins Behavior explains how executors function on available nodes. CloudBees Core on traditional platforms and CloudBees Jenkins Platform includes some features to help manage and make the best use of your executors, to prevent the common issue of Executor Starvation. Please see the Even Loading Strategy for more details.

Have more questions?


  • 0
    Dominik Panas

    What about parallel steps? For example i have job stage1-stage2a-stage2b-stage3 where stages 2 are parallel. Do i have to make some additional executors to effectively run those prallel stages? And if so, then if i have 2 machines and each has 2 executors, how to prevent running 2 jobs on the same machine (on step1)? 

  • 0
    Denys Digtiar

    The new executor is used whenever you use the `node` step. If parallel branches do not request their own nodes they should be running by the same executor.

Please sign in to leave a comment.