Como limitar a memória virtual disponível por processo [duplicado]

10

Ocasionalmente, alguns processos na minha área de trabalho GNU / Linux (como gv e gnash) usam a memória física e causam a "thrashing". Como esses processos não são importantes, quero que eles sejam automaticamente mortos se usarem muita memória.

Eu acho que o arquivo /etc/security/limits.conf e a opção -v podem ser usados para isso. A questão é se limita a quantidade de memória disponível por processo de um usuário específico ou a soma de todos os processos de um usuário. Além disso, gostaria de perguntar como fazer a alteração nesse arquivo em vigor sem reinicializar.

    
por Pteromys 09.01.2012 / 16:14

2 respostas

8

Há também o mecanismo ulimit . Há uma chamada de sistema (no Linux, é uma função da biblioteca C) ulimit(3) e um Bash incorporado em ulimit . Digite ulimit -a para ver todas as coisas que você pode limitar. Para ver o limite atual da memória virtual, diga ulimit -v . Você pode configurá-lo dizendo ulimit -v INTEGER-KILOBYTES .

A execução de ulimit altera as coisas para o seu shell atual e você só pode selecionar um valor menor que o atual. Para executar um comando com memória virtual limitada, você pode simplesmente usar um sub-shell Bash:

( ulimit -v 131072; some-app )
    
por 11.01.2012 / 17:45
3

limits.conf será aplicado aos usuários exemplo: memacle macio memlock 3145728 memacle hard memlock 3145728

caso contrário, você está procurando por um limite por processo .. dê uma olhada em sysctl -a para um efeito permanente .. você pode adicionar seus parâmetros ao sysctl.conf

boa sorte

    
por 10.01.2012 / 16:49