Processos de eliminação do Ubuntu quando não há mais RAM disponível

1

Em uma caixa Ubuntu com 4GB, estou executando o Apache com algum mpm + mysqld. Além disso, há um postfix, mongod e ocassionaly alguns processos imagemagick / convert ativos.

Em 99% dos dias, tudo bem. No entanto, às vezes (não nos horários de pico, mas, por exemplo, às 3h da manhã - embora o processo de backup comece algumas horas atrasado), o servidor fica sem RAM. Então está matando processos e infelizmente está começando com o apache e / ou o mysqld: - (

Eu tenho a chance de definir qual processo é "importante" ou de alta prioridade? Por exemplo. eu definiria 1) apache 2) mysql 3) postfix 4) converter 5) mongod < - tanto quanto eu sei, mongod é muito educado e vai liberar o RAM para outras aplicações, se necessário.

Entre. o sistema não está ficando sem memória devido a processos fantasmas; Eu uso alguns scripts de limpeza que garantem que o RAM não utilizado seja reciclado: -)

Thx

    
por ledy 18.06.2012 / 11:26

2 respostas

0

Este é o comportamento determinado pelo kernel. Quando o kernel fica sem memória, ele reage mal e mata o processo usando a maior quantidade de memória. Na área de trabalho, isso às vezes pode ser o xserver, outra má escolha para matar primeiro. Isso não deve acontecer com troca adequada.

Se a sua estratégia era ir sem um arquivo de troca, a fim de forçar o sistema operacional a usar RAM, sugiro que você tenha um arquivo de troca e use a configuração swappiness para fazer o SO usar principalmente a RAM. Saiba como fazer isso aqui: Como configuro o swappiness?

10 é um valor agressivo típico para swappiness . Descobri que com valores menores que 10, o sistema operacional parecia priorizar o descarregamento da troca sobre a execução real dos programas. Em outras palavras, quando fiquei sem memória, as coisas diminuíram imensamente. Então, talvez comece com 10, ou algo próximo, e veja como ele usa a RAM.

    
por user1974 10.09.2013 / 01:41
-1

Bem, no Monitor do Sistema, você pode simplesmente atribuir uma prioridade clicando com o botão direito do mouse em um processo e escolhendo a prioridade da mudança. Se você não tem uma GUI rodando, você deve usar o comando renice, apenas dê uma olhada na manpage .

    
por tpei 18.06.2012 / 12:44