O Linux congela sob uso intenso de memória

2

Quando inicio processos intensos de memória (como o git gc em um repositório com arquivos enormes), o Linux começa a não responder após algum tempo, a interface fica um pouco atrasada, o mouse pára de se mover e o teclado pára de funcionar também. O interessante é que isso aparentemente também desativa as chaves do SysRQ por algum motivo, eu não posso mais usar o SysRQ-Kill ou o SysRQ-Reboot nesse estado.

O que eu posso fazer para evitar que essa situação aconteça, talvez como deixar o Linux matar processos que usam muita memória.

    
por heinrich5991 06.12.2013 / 18:03

3 respostas

2

O Linux por padrão já possui um "killer da OOM". Quando o seu sistema fica sem memória, o kernel mata um processo, tentando escolher o que quer que seja o culpado pelo sistema que está ficando sem memória. No entanto, se o seu sistema estiver configurado para usar uma troca, isso não acontecerá até que fique sem memória principal e espaço de troca. Se o dispositivo de troca estiver lento (por exemplo, um disco rígido giratório), isso pode não acontecer até bem depois que o sistema tiver diminuído o ritmo de um rastreamento e não responder.

Você pode tentar desativar o seu swap e ver se isso resulta em um processo com fome de memória sendo eliminado antes que o sistema fique inutilizável.

    
por 08.12.2013 / 07:18
1

Supondo que você tenha uma quantidade de memória e todo o seu hardware está funcionando conforme o esperado, tente mexer com o ulimit.

    
por 06.12.2013 / 19:39
0

Na verdade, acho que, se você esperar um pouco, suas teclas funcionariam, mas, além disso, você poderia executar tarefas como essa com uma prioridade muito menor.

Como root, antes da utilização da memória aumentar, renove a prioridade. É importante lembrar que o número positivo tem prioridade mais baixa e o negativo é maior. Veja como as coisas funcionam se você renunciar ao processo para +10 ou até mesmo +20.

    
por 06.12.2013 / 18:22