3 votes

Comment limiter globalement l'utilisation de la mémoire dans git ?

J'ai un serveur privé virtuel où se trouvent les dépôts git de tous mes produits. Le problème est que lorsque j'extrais des données de ce dépôt, le serveur privé virtuel n'a plus de mémoire. Je dois donc limiter l'utilisation de la mémoire. Je sais comment le faire pour le fichier .git/config de chaque client (pack.windowMemory, pack.packSizeLimit).

Existe-t-il un moyen de fixer la limite sur le serveur et globalement pour tous les dépôts git sur le serveur ?

Gracias.

Sam

2voto

Ben Lessani Points 5146

Vous pouvez le faire par utilisateur en utilisant le module intégré limits.conf . Vous pourriez ajouter tous les utilisateurs de Git à un groupe arbitraire puis limiter la mémoire pour ce groupe.

Mais je ne cautionne pas vraiment cela, comme si cela avait besoin de mémoire - il a besoin de mémoire . J'imagine simplement que le processus Git s'arrêterait prématurément car il n'a plus de mémoire - ce qui éviterait au VPS de se planter, mais n'apporterait pas grand-chose.

Un moyen de le faire ...

Par exemple, votre groupe Git s'appelle gitgroup et vous avez 3 utilisateurs existants, bob, jane et tim.

Créer le groupe gitgroup

groupadd gitgroup

Ensuite, ajoutez les utilisateurs à ce groupe

usermod -a -G gitgroup bob
usermod -a -G gitgroup jane
usermod -a -G gitgroup tim

Maintenant dans /etc/security/limits.conf

#groupname  type  item  limit
@gitgroup   hard  rss   512000

Cela limitera ce groupe (et donc tout utilisateur qui en fait partie) à une limite de mémoire dure de 512000KB. Cela peut avoir d'autres effets secondaires sur d'autres processus en cours d'exécution appartenant à ces utilisateurs.

Il peut être plus préférable de simplement ajouter une limite de mémoire à l'utilisateur particulier Shell lorsqu'il se connecte.

Vous pourriez le faire en ajoutant ceci aux paramètres respectifs de l'utilisateur .bash_profile

ulimit -v 512000

La solution ...

Vous avez besoin de plus de RAM. Si vous essayez de faire quelque chose et que vous manquez de mémoire au cours du processus, alors soit vous ne faites pas ce que vous faites, soit vous ajoutez de la mémoire. Il est clair que votre matériel est insuffisant pour ce que vous essayez de faire.

0 votes

Que se passe-t-il si la valeur de limits.conf est atteinte et que le processus du serveur a encore besoin de ram ? La requête échoue-t-elle ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X