4 votos

¿Cómo diagnosticar mi programa en Python ser asesinado debido a un error de memoria?

He sido la construcción de una Red Neuronal que analiza grandes cantidades de datos (40G), y mi iMac mata el proceso después de que ha estado en funcionamiento durante aproximadamente un día.

En el pasado, en Linux, he creado un archivo de intercambio para llegar alrededor de las limitaciones de la memoria.

Veo:

$ python processor.py
[...maybe some std out messages, specific to what I'm doing...]
Killed.

He llegado a conocer a este como el "usted ha usado demasiada memoria, adiós" mensaje. De nuevo, he sido capaz de resolverlo mediante un gran intercambio de archivos en linux. ¿Cómo puedo aumentar la swap límite en mi mac, para mi los procesos que utilizan grandes cantidades de memoria no mueren?

No está seguro de cómo podría obtener más información acerca de por qué se mató.

5voto

Oskar Puntos 1242

Aquí están algunas maneras para detectar problemas, pero tengo miedo de que no esté completa o incluso la solución correcta sin más mirando o haciendo:

En otro shell después de iniciar el python proceso (o si screen / tmux ):

  1. df /
  2. top -l 1 -S | head -12
  3. vm_stat y vm_stat 600
  4. sudo du -sm /var/vm/*

Una vez que usted tiene una buena base, puede ver las cosas a través del tiempo para ver cómo la red neuronal se está comportando cada hora durante un tiempo. Si usted piensa que las cosas están a punto de parada, puede ejecutar sysdiagnose python (o utilice el proceso # si usted tiene más de un python proceso de ejecución). También, si usted no quiere esperar el día para que las cosas se hinchan, se puede infligir memory_pressure en el sistema antes o después de iniciar la red neuronal en python. Ver esta respuesta de cómo supervisar el Monitor de Actividad cuando se ejecuta este proceso:

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X