2012-06-04 23 views
35

Ho un'app Node.js che carica alcuni dati da Mysql in Redis all'avvio dell'app. Funzionava bene fino a quando non abbiamo modificato i dati in Mysql.cosa può causare che node.js stampi Killed e exit?

Ora è appena uscito con un messaggio "Ucciso".

Sto provando a individuare il problema ma è difficile eseguire il debug utilizzando il nodo-inspector poiché il problema non viene visualizzato durante l'esecuzione in -debug.

Non penso che il mio problema sia nei dati stessi perché funziona sulla mia macchina locale ma non funziona sulla mia scatola di produzione.

La mia domanda è, che cosa causa il messaggio "Ucciso", è Node.js o è nel driver Mysql o altrove?

risposta

2

Non sono sicuro se Redis è ciò che causa il messaggio Killed ma questa era la causa del mio problema.

Stavo inviando molti dati a multi perché inizialmente pensavo che fosse il modo di usare il pipelining (che è automatico).

+0

hai trovato una soluzione? –

44

Controllare i registri di sistema per i messaggi sul nodo in corso di morte. L'applicazione Node potrebbe utilizzare memoria eccessiva e rimanere uccisa dallo Out-Of-Memory killer.

+0

Grazie per il tuo suggerimento. – Tim

+3

Nel mio caso, infatti, vedo in/var/log/syslog: '4 settembre 16:21:32 kernel di hosting: Memoria esaurita: Kill process 29620 (nodejs) score 107 o sacrifice child'' Sep 4 16:21 : 32 kernel di hosting: processo Killed 29620 (nodejs) total-vm: 1054732kB, anon-rss: 136168kB, file-rss: 0kB'. Grazie per il suggerimento! – weekens

+2

Se si utilizza un sistema RedHat, tale registro si trova in '/ var/log/messages'. La memoria sembra essere il problema anche per me. –

Problemi correlati