J'ai un serveur Jenkins avec environ 50 esclaves attachés. J'essaie de faire un test de stress sur Jenkins Build Queue parce que je n'ai trouvé aucune documentation à ce sujet.Ajout de tâches à 15K Jenkins construire la file d'attente
J'ai un travail simple avec paramétrés plus qu'à une étape, BRANCH et COUNT sont les paramètres du travail. Le sommeil de l'emploi pour un laps de temps aléatoire entre 10 et 30 secondes:
#bash
RESULT="/path/to/results_dir/$BRANCH/$BUILD_ID.txt"
SEC=$(shuf -i10-30 -n1)
sleep $SEC
echo -e "$NODE_NAME\t$BUILD_TAG\t$SEC\t$COUNT" > $RESULT
Je voudrais exécuter ce travail 15K fois. Au début, j'essayé d'utiliser l'API REST Jenkins de la ligne de commande:
for c in $(seq 1 15000); do curl -X POST http://<server ip>:8080/job/TEST_SIMPLE/buildWithParameters --data-urlencode "token=TEST" --data-urlencode "BRANCH=<branch name>" --data-urlencode "COUNT=${c}"; done
Mais après une heure seulement 4K tâches ont été soumises, alors je tué la boucle et de purge Jenkins construire la file d'attente. Mon deuxième essai consistait à utiliser un autre travail qui déclenche ce travail 'TEST_SIMPLE' en utilisant le script système groovy et en appelant l'API 'job.scheduleBuild'. Il fonctionne actuellement pendant une heure et demie et n'a soumis que 8K tâches sur 15K.
Il semble que les tâches sont ajoutées à la file d'attente que lorsqu'un esclave prend une de la file d'attente
Le but de cet effort est de remplacer un très ancien exécuteur/répartiteur pour notre suite de tests qui contiennent beaucoup de nombreux tests (~ 15K) et je fais un POC avec Jenkins parce que nous l'utilisons déjà pour nos builds et pour exécuter ce vieil exécuteur.
Mes questions sont les suivantes: 1. Y at-il une limite à la taille de la file d'attente de construction? 2. Existe-t-il un moyen de soumettre autant de demandes très rapidement?
Merci.