Here are some generic guidelines we sent out to a specific customer that has a sizable config:
The machine requirements on Jenkins installations differ based on the artifacts generated. Thus, there is no one-size fits all recommendation that we provide. However, here are some guidelines:
- Everything runs off JENKINS_HOME, so make sure there is enough disk space available and the disk can grow. If you run out of disk space, you will see failures. Some plugins take more space than others (e.g a report generating plugin vs a build plugin). The disk usage plugin helps determine usage.
- Have a beefy machine for Jenkins master & do not run slaves on the master machine. Every slave has certain memory allocated in the master JVM, so the bigger the RAM for the master, the better it is. We typically hear customers allocate 16G or so.
- Slaves tend to be run of the mill x86 boxes, typically you want them to have the same OS as the release platforms.
For reference, this presentation from Redhat shares their typical memory/machine requirements.
As for the HA feature this is simply two (or more) masters sharing the same JENKINS_HOME—you can read more about the plugin here.