Wir verwenden Jenkins für unser CI-Build-System. Wir verwenden auch 'gleichzeitige Builds', so dass Jenkins jede Änderung unabhängig voneinander erstellt. Dies bedeutet, dass wir oft 5 oder 6 Builds desselben Jobs gleichzeitig ausführen. Um dies zu ermöglichen, haben wir 4 Slaves mit jeweils 12 Executoren.
Das Problem ist, dass Jenkins nicht wirklich das Gleichgewicht zwischen seinen Slaves ausgleicht. Es versucht, einen Job auf demselben Slave zu erstellen, auf dem er zuvor erstellt wurde (vermutlich um die Zeitsynchronisierung von der Quellcodeverwaltung zu reduzieren). Dies ist ein Problem, da Jenkins alle 6 Instanzen unseres Builds auf demselben Slave (oder wahrscheinlicher zwischen zwei Slaves) aufbauen wird. Eine Build-Maschine bleibt stecken und läuft sehr langsam, während der Rest stillsteht.
Gibt es ein Plugin oder etwas, das das Lastenausgleichsverhalten ändert, das Jenkins verwendet, um seine Slaves zu steuern?
Wenn Sie kein Plugin finden, das das automatisch macht, können Sie Folgendes tun:
${SLAVE}
ausgeführt werden sollen
Fügen Sie einen Trigger-Job hinzu, der Folgendes ausführt:
Um die Lastverteilung zu analysieren, müssen Sie Groovy-Plugin installieren und sich mit < a href="http://javadoc.jenkins-ci.org/"> Jenkins Hauptmodul API . Hier sind einige nützliche erste Hinweise .
Sie können auch das Plugin "Throttle Concurrent Builds" verwenden, um die Anzahl einzuschränken Instanzen eines Jobs können parallel auf demselben Knoten ausgeführt werden
Tags und Links jenkins build continuous-integration jenkins-plugins load-balancing