Estou construindo uma Rede Neural que analisa grandes quantidades de dados (40G), e meu iMac mata o processo depois que ele está em execução há cerca de um dia.
No passado, no Linux, criei um grande arquivo de troca para contornar as limitações de memória.
Entendo:
$ python processor.py
[...maybe some std out messages, specific to what I'm doing...]
Killed.
Eu vim a conhecer isso como a mensagem "você gastou muita memória, adeus". Mais uma vez, consegui resolvê-lo usando um grande arquivo de permuta no linux. Como posso aumentar o limite de troca no meu mac para que meus processos que usam grandes quantidades de memória não sejam mortos?
Não tenho certeza de como eu poderia obter mais informações sobre o motivo de ter sido morto.
macos
memory
virtual-memory
Entre
fonte
fonte
ulimit -a
não ter um caso de teste em que eu possa causar o bloqueio do sistema na versão 10.10.x. Observe também a pressãoRespostas:
Aqui estão algumas maneiras de verificar se há problemas, mas receio que eles não sejam uma solução completa ou mesmo a correta, sem mais espreitar ou cutucar:
Em outro shell depois de iniciar seu processo python (ou se você
screen
/tmux
ele):df /
top -l 1 -S | head -12
vm_stat
evm_stat 600
sudo du -sm /var/vm/*
Depois de ter uma boa linha de base, você pode observar as coisas ao longo do tempo para ver como a rede neural está se comportando a cada hora por um tempo. Se você acha que as coisas estão prestes a parar, você pode executar
sysdiagnose python
(ou usar o processo # se tiver mais de um processo python em execução). Além disso, se você não quiser esperar o dia inteiro para aumentar as coisas, poderá infligirmemory_pressure
ao sistema antes ou depois de iniciar a rede neural em python. Veja esta resposta para saber como monitorar o Monitor de Atividade ao executar este processo:fonte
df /
que você escreveudf \