2012-06-04 10 views
35

Tengo una aplicación Node.js que carga algunos datos de Mysql en Redis cuando se inicia la aplicación. Ha funcionado bien hasta que modificamos los datos en Mysql.¿Qué puede hacer que node.js imprima y se elimine?

Ahora sale con un mensaje "Muerto".

Estoy tratando de identificar el problema pero es difícil de depurar usando node-inspector ya que el problema no aparece cuando se ejecuta en --debug.

No creo que mi problema esté en los datos en sí, ya que funciona en mi máquina local pero no funciona en mi caja de producción.

Mi pregunta es, ¿qué causa el mensaje "Asesinado", es Node.js o está en el controlador Mysql o en otro lugar?

Respuesta

2

No estoy seguro de si Redis es lo que causa el mensaje de muerte pero esa fue la causa de mi problema.

Estaba enviando muchos datos a varios porque originalmente pensé que esa era la forma de usar el pipeline (que es automático).

+0

¿Encontró una solución para eso? –

44

Revise los registros de su sistema para ver si se ha eliminado el nodo. Su aplicación Nodo podría estar usando demasiada memoria y ser asesinado por el Out-Of-Memory killer.

+0

Gracias por su sugerencia. – Tim

+3

En mi caso, de hecho, veo en/var/log/syslog: '4 de septiembre 16:21:32 kernel de alojamiento: Memoria insuficiente: mata el proceso 29620 (nodejs) puntaje 107 o sacrifica al niño' '4 de septiembre 16:21 : Kernel de alojamiento 32: Proceso eliminado 29620 (nodejs) total-vm: 1054732kB, anon-rss: 136168kB, archivo-rss: 0kB'. ¡Gracias por la pista! – weekens

+2

Si está en un sistema redhat, ese registro está en '/ var/log/messages'. La falta de memoria también parece ser el problema para mí. –

Cuestiones relacionadas