O sistema trava ao usar muita memória RAM mesmo com a troca desativada

2

Quando eu executo um código Python que usa muita RAM, meu computador começa a trocar de forma tão ruim que eu tive que fazer uma reinicialização difícil. Para consertar isso eu desliguei o swap assumindo que o killer da OOM iria entrar. No entanto, eu ainda consigo exatamente os mesmos sintomas! Ou seja, posso ouvir o disco rígido se debatendo assim que toda a RAM é usada, o computador congela e tenho que fazer uma reinicialização difícil.

What could be going on and how can I fix it?

Meu sistema está executando o Ubuntu 14.04.2 LTS, 3.13.0-43-genérico # 72-Ubuntu SMP seg Dec 8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux com 8 GB de RAM.

Meu / etc / fstab mostra

# / was on /dev/sda1 during installation
UUID=80919e96-e83b-4c88-b30e-8673e1faa3b4 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
#UUID=68064725-c1bb-4293-b8d1-45b2a42fb7b4 none            swap    sw              0       0

Mais detalhes

tail -n+1 /proc/sys/vm/overcommit_*
==> /proc/sys/vm/overcommit_memory <==
0

==> /proc/sys/vm/overcommit_ratio <==
50

cat /proc/sys/vm/oom_kill_allocating_task
0

Exemplo de código

Lamento dizer que não sei como criar um exemplo minimalista de python que mostre esse problema. No entanto, este é um código não minimalista que definitivamente faz o link . Basta alterar o valor de "caminho" no código e executá-lo. No meu sistema, ele usa toda a RAM e, em seguida, congela completamente o sistema.

    
por felipa 07.06.2015 / 09:55

1 resposta

2

Seu problema é seu python code e não tem nada a ver com swap .

Swap space é usado pelo sistema operacional quando a carga está aumentando na memória. Em seguida, esses processos que não são usados atualmente são movidos para o espaço de troca, que é uma partição. Desta forma, mais memória pode ser livre para o processo que está sendo executado. Quando os processos movidos para swap são usados, ele é movido da área de troca de volta para a memória.

Desta forma, a troca é útil para lidar com situações em que é necessária mais memória para executar algo do que a quantidade de memória livre disponível.

Já que você desativa o swap, isso não resolverá seu problema, mas apenas o aumentará. A única solução para o seu problema que eu posso pensar é otimizar seu código python para usar menos memória ou aumentar a memória em sua máquina.

Além disso, seria melhor se você pudesse colocar seu código aqui para que as pessoas possam ajudar a otimizá-lo.

    
por 07.06.2015 / 10:03