[Ci-users] Strategy for scaling jenkins slaves ?

Sat Dec 19 18:02:59 UTC 2015
David Moreau Simard <dms at redhat.com>


The RDO slave currently has 15 execution threads running on two cores
and 4GB of RAM.
As we use ci.centos more and more for gating and periodic jobs, I can
see that the slave starts to struggle a little bit CPU-wise when the
execution threads are busy.

The bulk of the jobs are offloaded to an ephemeral bare metal node but
ansible still runs from the slave. Some jobs do run locally, such as
smaller tox jobs.

What's the strategy if we want to scale this ?
For example, do we want to scale in increments of "10 threads/2
cores/4 GB RAM" by adding more slaves as need be or do we want to grow
the specifications of the existing slave and grow the amount of
threads ?

I have a personal preference to have more smaller slaves as this also
has the added benefit of redundancy so we're not left entirely out in
the cold if this one big slave happens to crash.

David Moreau Simard
Senior Software Engineer | Openstack RDO

dmsimard = [irc, github, twitter]