Back to Gitlabhq

Exigences d'installation de GitLab

doc-locale/fr-fr/install/requirements.md

19.1.014.9 KB
Original Source

{{< details >}}

  • Niveau : Free, Premium, Ultimate
  • Offre : GitLab Self-Managed

{{< /details >}}

GitLab a des exigences d'installation spécifiques.

Stockage {#storage}

L'espace de stockage nécessaire dépend en grande partie de la taille des dépôts que vous souhaitez avoir dans GitLab. À titre indicatif, vous devriez disposer d'au moins autant d'espace libre que la taille combinée de tous vos dépôts.

Le package Linux nécessite environ 2,5 Go d'espace de stockage pour l'installation. Combiné avec PostgreSQL, les journaux, les fichiers temporaires et la surcharge du système d'exploitation, prévoyez au moins 40 Go d'espace disque pour une installation GitLab de base sans données de dépôt. Pour plus de flexibilité en matière de stockage, envisagez de monter votre disque dur via la gestion de volumes logiques. Vous devriez disposer d'un disque dur d'au moins 7 200 RPM ou d'un disque SSD pour réduire les temps de réponse.

Étant donné que les performances du système de fichiers peuvent affecter les performances globales de GitLab, vous devriez éviter d'utiliser des systèmes de fichiers basés sur le cloud pour le stockage.

CPU {#cpu}

Les exigences en matière de CPU dépendent du nombre d'utilisateurs et de la charge de travail attendue. La charge de travail inclut l'activité de vos utilisateurs, l'utilisation de l'automatisation et de la mise en miroir, ainsi que la taille du dépôt.

Pour un maximum de 20 requêtes par seconde ou 1 000 utilisateurs, vous devriez disposer de 8 vCPU. Pour plus d'utilisateurs ou une charge de travail plus élevée, consultez les architectures de référence.

Mémoire {#memory}

Les exigences en matière de mémoire dépendent du nombre d'utilisateurs et de la charge de travail attendue. La charge de travail inclut l'activité de vos utilisateurs, l'utilisation de l'automatisation et de la mise en miroir, ainsi que la taille du dépôt.

Pour un maximum de 20 requêtes par seconde ou 1 000 utilisateurs, vous devriez disposer de 16 Go de mémoire. Pour plus d'utilisateurs ou une charge de travail plus élevée, consultez les architectures de référence.

Dans certains cas, GitLab peut fonctionner avec au moins 8 Go de mémoire. Pour plus d'informations, consultez l'exécution de GitLab dans un environnement à mémoire limitée.

PostgreSQL {#postgresql}

PostgreSQL est la seule base de données prise en charge et est fournie avec le package Linux. Vous pouvez également utiliser une base de données PostgreSQL externe qui doit être configurée correctement.

Versions prises en charge {#supported-versions}

Pour les versions suivantes de GitLab, utilisez ces versions de PostgreSQL :

Version de GitLabVersion du chart HelmVersion minimale de PostgreSQLVersion maximale de PostgreSQL
19.x10.x17.x17.x
18.x9.x16.517.x (testé avec GitLab 17.10 et versions ultérieures)
17.x8.x14.1416.x (testé avec GitLab 16.10 et versions ultérieures)
16.x7.x13.615.x (testé avec GitLab 16.1 et versions ultérieures)

Les versions mineures de PostgreSQL n'incluent que des correctifs de bogues et de sécurité. Utilisez toujours la dernière version mineure pour éviter les problèmes connus dans PostgreSQL. Pour plus d'informations, consultez l'ticket 364763.

Pour utiliser une version majeure de PostgreSQL ultérieure à celle spécifiée, vérifiez si une version ultérieure est fournie avec le package Linux.

Exigences de stockage {#storage-requirements}

En fonction du nombre d'utilisateurs, le serveur PostgreSQL doit disposer de :

  • Pour la plupart des instances GitLab, au moins 5 à 10 Go de stockage.
  • Pour GitLab Ultimate, au moins 12 Go de stockage (1 Go de données de vulnérabilité doit être importé).

Extensions {#extensions}

Pour installer des extensions, PostgreSQL nécessite des privilèges de super-utilisateur. Pour obtenir des instructions, consultez Gérer les extensions PostgreSQL.

ExtensionVersion minimale de GitLabTypeBase de données
amcheck18.4ObligatoirePrincipale
btree_gist13.1ObligatoirePrincipale
pg_trgm8.6ObligatoirePrincipale
plpgsql11.7ObligatoirePrincipale, bases de données de suivi secondaires Geo (version minimale 9.0)
pg_stat_statements-RecommandéTous

GitLab Geo {#gitlab-geo}

Pour GitLab Geo , vous devriez utiliser le package Linux ou des fournisseurs cloud validés pour installer GitLab. La compatibilité avec d'autres bases de données externes n'est pas garantie.

Pour plus d'informations, consultez les exigences pour l'exécution de Geo.

Compatibilité des paramètres régionaux {#locale-compatibility}

Lorsque vous modifiez les données de paramètres régionaux dans glibc, les fichiers de base de données PostgreSQL ne sont plus entièrement compatibles entre différents systèmes d'exploitation. Pour éviter la corruption d'index, vérifiez la compatibilité des paramètres régionaux lorsque vous :

  • Déplacez des données PostgreSQL binaires entre des serveurs.
  • Mettez à niveau votre distribution Linux.
  • Mettez à jour ou modifiez des images de conteneurs tierces.

Pour plus d'informations, consultez la mise à niveau des systèmes d'exploitation pour PostgreSQL.

Schémas GitLab {#gitlab-schemas}

Vous devriez créer ou utiliser des bases de données exclusivement pour GitLab, Geo , Gitaly Cluster (Praefect) ou d'autres composants. Ne créez pas et ne modifiez pas de bases de données, de schémas, d'utilisateurs ou d'autres propriétés, sauf lorsque vous suivez :

  • Les procédures de la documentation GitLab
  • Les instructions du support ou des ingénieurs GitLab

L'application GitLab principale utilise trois schémas :

  • Le schéma public par défaut
  • gitlab_partitions_static (créé automatiquement)
  • gitlab_partitions_dynamic (créé automatiquement)

Lors des migrations de bases de données Rails, GitLab peut créer ou modifier des schémas ou des tables. Les migrations de bases de données sont testées par rapport à la définition du schéma dans la base de code GitLab. Si vous modifiez un schéma, les mises à niveau de GitLab pourraient échouer.

Paramètres PostgreSQL {#postgresql-settings}

Voici quelques paramètres obligatoires pour les instances PostgreSQL gérées en externe.

Paramètre ajustableValeur requisePlus d'informations
work_memminimum 8 MBCette valeur est la valeur par défaut du package Linux. Dans les déploiements de grande envergure, si les requêtes créent des fichiers temporaires, vous devriez augmenter ce paramètre.
maintenance_work_memminimum 64 MBVous avez besoin de davantage pour les serveurs de base de données plus importants.
max_connectionsminimum 400Calculez en fonction de vos composants GitLab. Consultez la page Régler PostgreSQL pour obtenir des conseils détaillés.
shared_buffersminimum 2 GBVous avez besoin de plus pour les serveurs de base de données plus importants. La valeur par défaut du package Linux est définie à 25 % de la RAM du serveur.
statement_timeout15000 à 60000Un délai d'expiration des instructions évite les problèmes incontrôlés liés aux verrous et au rejet de nouveaux clients par la base de données. Vous devriez utiliser des valeurs comprises entre 15 et 60 secondes (15 000 à 60 000 millisecondes), où une minute correspond au paramètre de délai d'expiration du rack Puma.
hot_standby_feedbackonPour les configurations avec plusieurs nœuds et un équilibrage de charge de base de données configuré, assurez-vous que tous les nœuds réplica ont hot_standby_feedback activé pour éviter l'accumulation de retard.

Vous pouvez configurer certains paramètres PostgreSQL pour la base de données spécifique, plutôt que pour toutes les bases de données sur le serveur.

  • Vous pourriez limiter la configuration à des bases de données spécifiques lors de l'hébergement de plusieurs bases de données sur le même serveur.
  • Pour obtenir des conseils sur l'emplacement d'application de la configuration, consultez votre administrateur de base de données ou votre fournisseur.
  • Pour GCP Cloud SQL, vous pouvez définir statement_timeout sur une base de données ou un utilisateur spécifique, mais pas en tant qu'indicateur de base de données. Par exemple : ALTER DATABASE gitlab SET statement_timeout = '60s';

Puma {#puma}

Les paramètres Puma recommandés dépendent de votre installation. Par défaut, le package Linux utilise les paramètres recommandés.

Pour ajuster les paramètres Puma :

Workers {#workers}

Le nombre recommandé de workers Puma dépend en grande partie de la capacité du CPU et de la mémoire. Par défaut, le package Linux utilise le nombre recommandé de workers. Pour plus d'informations sur la façon dont ce nombre est calculé, consultez puma.rb.

Un nœud ne doit jamais avoir moins de deux workers Puma. Par exemple, un nœud devrait avoir :

  • Deux workers pour 2 cœurs CPU et 8 Go de mémoire
  • Deux workers pour 4 cœurs CPU et 4 Go de mémoire
  • Quatre workers pour 4 cœurs CPU et 8 Go de mémoire
  • Six workers pour 8 cœurs CPU et 8 Go de mémoire
  • Huit workers pour 8 cœurs CPU et 16 Go de mémoire

Par défaut, chaque worker Puma est limité à 1,2 Go de mémoire. Vous pouvez ajuster ce paramètre dans /etc/gitlab/gitlab.rb.

Vous pouvez également augmenter le nombre de workers Puma, à condition que la capacité CPU et mémoire soit suffisante. Un plus grand nombre de workers réduirait les temps de réponse et améliorerait la capacité à gérer les requêtes parallèles. Effectuez des tests pour vérifier le nombre optimal de workers pour votre installation.

Threads {#threads}

Le nombre recommandé de threads Puma dépend de la mémoire totale du système. Un nœud devrait utiliser :

  • Un thread pour un système d'exploitation avec un maximum de 2 Go de mémoire
  • Quatre threads pour un système d'exploitation avec plus de 2 Go de mémoire

Un plus grand nombre de threads entraînerait un swap excessif et des performances réduites.

Redis {#redis}

Redis ou Valkey stocke toutes les sessions utilisateur et les tâches en arrière-plan et nécessite environ 25 ko par utilisateur en moyenne.

Redis 7.2 ou Valkey 7.2 est requis. Pour plus d'informations sur les dates de fin de vie, consultez la documentation Redis.

  • Utilisez une instance autonome (avec ou sans haute disponibilité). Redis Cluster n'est pas pris en charge.
  • Définissez la politique d'éviction de manière appropriée.

Sidekiq {#sidekiq}

Sidekiq utilise un processus multi-thread pour les tâches en arrière-plan. Ce processus consomme initialement plus de 200 Mo de mémoire et peut augmenter avec le temps en raison de fuites mémoire.

Sur un serveur très actif avec plus de 10 000 utilisateurs facturables, le processus Sidekiq peut consommer plus de 1 Go de mémoire.

Prometheus {#prometheus}

Par défaut, Prometheus et ses exportateurs associés sont activés pour surveiller GitLab. Ces processus consomment environ 200 Mo de mémoire.

Pour plus d'informations, consultez la surveillance de GitLab avec Prometheus.

GitLab prend en charge les navigateurs web suivants :

GitLab prend en charge :

  • Les deux versions majeures les plus récentes de ces navigateurs
  • La version mineure actuelle d'une version majeure prise en charge

L'exécution de GitLab avec JavaScript désactivé dans ces navigateurs n'est pas prise en charge.