Como limitar globalmente o uso de memória do git

3

Eu tenho um Virtual Private Server onde estão todos os repositórios git dos meus produtos. O problema é que, enquanto eu busco, o VPS fica sem memória. Então eu tenho que limitar o uso de memória. Eu sei como fazer isso para cada cliente .git / config (pack.windowMemory, pack.packSizeLimit).

Existe uma maneira de definir o limite no servidor e globalmente para todos os repositórios git no servidor?

Obrigado.

Sam

    
por Sam Kong 03.10.2012 / 00:32

1 resposta

2

Você pode fazer isso pelo usuário usando o limits.conf incorporado. Você pode adicionar todos os usuários do Git a um grupo arbitrário e limitar a memória para esse grupo.

Mas eu não estou realmente tolerando isso, como se ele precisasse de memória - ele precisa de memória . Eu imaginaria que o processo do Git terminaria cedo como falta de memória - salvando o VPS de falhar, mas sem realmente conseguir nada.

Uma maneira de fazer isso ...

Seu grupo Git é chamado gitgroup e você tem 3 usuários existentes, bob, jane e tim

Crie o grupo gitgroup

groupadd gitgroup

Em seguida, adicione os usuários a esse grupo

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

Agora em /etc/security/limits.conf

#groupname  type  item  limit
@gitgroup   hard  rss   512000

Isso limitará esse grupo (assim, qualquer usuário) a um limite de memória de 512.000 KB. Isso também pode ter outros efeitos colaterais em outros processos em execução de propriedade desses usuários.

Pode ser mais preferível adicionar um limite de memória ao shell específico dos usuários quando eles fizerem login.

Você pode fazer isso adicionando isso ao respectivo usuário .bash_profile

ulimit -v 512000

A solução ...

Você precisa de mais RAM. Se você está tentando fazer algo e ficar sem memória no processo - então não faça o que está fazendo ou adicione mais memória. Claramente, seu hardware é insuficiente para o que você está tentando fazer.

    
por 03.10.2012 / 01:56