Dim-Jones Blog
Retour au blog

Augmenter le nombre de jobs paralleles d'un GitLab Runner

2 min de lecture

Par defaut, un GitLab Runner auto-heberge n’execute qu’un seul job a la fois. Lorsque vos pipelines CI/CD impliquent plusieurs etapes et jobs, cette execution sequentielle ralentit considerablement vos workflows. Voici comment augmenter le parallelisme.

Prerequis

  • GitLab Runner version 15.x ou ulterieure installe sur votre infrastructure
  • Un projet GitLab depuis lequel envoyer des jobs a executer

Augmenter la concurrence pour tous les runners

Par defaut, GitLab Runner configure concurrent = 1 dans /etc/gitlab-runner/config.toml. Pour modifier cela, editez le fichier de configuration et changez la valeur :

concurrent = 10
check_interval = 0

[session_server]
session_timeout = 1800

[[runners]]
...

Cela permet jusqu’a 10 jobs simultanes sur l’ensemble des runners enregistres.

Augmenter la concurrence pour un runner en particulier

Pour augmenter l’execution de jobs en parallele pour un runner specifique, ajoutez le parametre request_concurrency :

[[runners]]
  name = "electron"
  url = "https://gitlab.com/"
  id = 19200342
  token = "Psz2ezrzeo5z5z4Z565ze"
  token_obtained_at = 2022-11-21T14:01:33Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "docker"
  request_concurrency = 15
  [runners.custom_build_dir]

Augmenter le nombre de runners

Une autre solution consiste a enregistrer plusieurs runners pour un meme projet. Le serveur GitLab distribuera alors l’execution des jobs parmi tous les runners disponibles.

Purger les images Docker inutilisees

Avec l’executeur Docker, la saturation du disque devient un probleme car les instances disposent generalement de 8 a 20 Go de capacite disque. Mettez en place un nettoyage regulier via une tache cron :

crontab -e
*/10 * * * * /usr/bin/docker system prune -a -f

Cette commande execute docker system prune toutes les 10 minutes pour recuperer de l’espace disque.

Conclusion

GitLab Runner est facile et rapide a deployer sur votre infrastructure, mais sa configuration par defaut limite significativement la vitesse d’execution des jobs par rapport aux runners partages de GitLab.com. Ajuster les parametres concurrent et request_concurrency est essentiel pour des workflows CI/CD efficaces.

Ressources complementaires

Partager
Dim-Jones

Dim-Jones

Agence d'ingenierie numerique specialisee en DevOps, developpement logiciel et IA.

Visiter dim-jones.com