Number of executors

1,090 views
Skip to first unread message

Vanetta Floyd

unread,
Nov 23, 2015, 11:59:06 AM11/23/15
to Jenkins Users
I would like to verify - a good rule of thumb for how many executors to set on each build node is relative to the number of processors the build server has.

Example -
Server A:
      Number of Processors = 4 
      # of Executors = 4

Is this a good rule, or should I be looking at other factors?

I currently have 2 executors (because of performance) set on each build server and I am getting requests to increase the number of executors.

Rock Rockenhaus -X (crockenh - INSIGHT GLOBAL INC at Cisco)

unread,
Nov 23, 2015, 12:22:31 PM11/23/15
to jenkins...@googlegroups.com

Typically one executor per CPU core works well.  Some people do two executors per CPU core.  The other issue you need to consider is your I/O performance.

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/3838e59e-3f76-4ecb-8614-654e9099cb0c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Baptiste Mathus

unread,
Nov 24, 2015, 3:09:06 AM11/24/15
to jenkins...@googlegroups.com

From my experience, to minimize issues, I recommend having one executor per build node, and nothing built on master (apart from some housekeeping jobs of Jenkins itself).

You might think it's a resource waste, but we've actually had many erratic issues when having multiple executors, when two /big/ builds would run concurrently on the machine for example.
And with modern vm tech/cloud/containers it's actually cheaper to isolate things than to have to spend hours of human time diagnosing issues potentially very hard to reproduce.

I say *build* node on purpose, though we're stopping it too atm, we still have one special node dedicated to job actually launching some remote process though ssh plugin.

HTH

Dirk Heinrichs

unread,
Nov 24, 2015, 3:24:48 AM11/24/15
to jenkins...@googlegroups.com
Am 23.11.2015 um 17:59 schrieb Vanetta Floyd:

I would like to verify - a good rule of thumb for how many executors to set on each build node is relative to the number of processors the build server has.

Short: There's none.

Long: It all depends on your (type of) build(s). There are builds that execute quite well in parallel on the same machine, while others simply can't. Our main build, for example, runs on Windows and has some GWT parts. The GWT compiler usually uses most of the RAM and requires lots of temp. disc space. In addition, two concurrent GWT compiles on the same machine would overwrite each others temp. files, so build nodes running this build can have only one single executor, regardless of the number of CPUs in the machine. OTOH, a machine running a C/C++ compile using GCC could have any number of executors you want it to have, maybe one per CPU, but if your build system is capable of building stuff in parallel (aka make -j <N>), you might again prefer to have only one executor and use all the CPUs for the single build that will run then.

HTH...

    Dirk
--

Dirk Heinrichs, Senior Systems Engineer, Engineering Solutions
Recommind GmbH, Von-Liebig-Straße 1, 53359 Rheinbach
Tel: +49 2226 1596666 (Ansage) 1149
Email: d...@recommind.com
Skype: dirk.heinrichs.recommind
www.recommind.com
Reply all
Reply to author
Forward
0 new messages