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?
- CloudBees CI (CloudBees Core)
- CloudBees CI (CloudBees Core) on modern cloud platforms - Managed Master
- CloudBees CI (CloudBees Core) on modern cloud platforms - Operations Center
- CloudBees CI (CloudBees Core) on traditional platforms - Client Master
- CloudBees CI (CloudBees Core) on traditional platforms - Operations Center
- CloudBees Jenkins Enterprise
- CloudBees Jenkins Enterprise - Managed Master
- CloudBees Jenkins Enterprise - Operations Center
- CloudBees Jenkins Distribution
- CloudBees Jenkins Platform - Client Master
- CloudBees Jenkins Platform - Operations Center
- Jenkins LTS
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.