ulimit equivalente para todos os processos de um usuário?

2

Eu sou o cara impopular que derrubou nossa máquina Linux de alta memória duas vezes na semana passada porque alguns processos que tenho rodado comiam muito mais ram do que o esperado. Uma maneira de contornar isso seria definir um ulimit por processo, de forma que, se cada processo ultrapassar uma certa quantidade de uso de RAM, esse processo será eliminado. Às vezes, porém, eu preciso de muita memória RAM para um único processo, em vez de alguns ram espalhados por um monte de processos paralelos. Em vez de confiar em mim lembrando de gerenciar ativamente meus ulimits sempre que eu executar um tipo diferente de trabalho em um nível diferente de paralelismo, existe algum tipo de equivalente a ulimit que analise o uso de RAM somado para um usuário e, em seguida, mata todos ou alguns dos processos desse usuário, em vez de afundar todo o sistema?

    
por John St. John 08.07.2011 / 19:52

1 resposta

1

Isto é quase exatamente porque os grupos de controle (cgroups) do Linux foram inventados. Isso permite que um grupo de processos (por exemplo, todos os processos que decendem de seu login interativo inicial) sejam tratados como uma única entidade para fins de controle de recursos - como limitar a quantidade total de memória consumida (ou recursos de CPU, etc) .

Infelizmente ...

Os Cgroups são relativamente novos e o suporte conveniente para eles está em grande parte ausente na maioria das distribuições.

    
por 08.07.2011 / 21:26