2012-06-04 40 views
35

我有一個Node.js應用程序,可以在應用程序啓動時從Mysql將一些數據加載到Redis中。在我們修改Mysql中的數據之前它一直在正常工作。什麼可以導致node.js打印殺死並退出?

現在它只是一個「封殺」的消息流出。

我試圖找出問題所在,但很難使用節點巡視員在--debug運行時,這個問題不會出現調試。

我不認爲我的問題是數據本身,因爲它的工作原理我的本地機器上,但在我的生產箱不起作用。

我的問題是,是什麼原因導致了「封殺」的消息,是Node.js加載或者是在MySQL驅動程序或其他地方?

回答

2

不知道的Redis是什麼原因導致被殺的消息,但是這是我的問題的原因。

我會發送到多的數據爲多,因爲我原本以爲是使用流水線(這是自動的)的方式。

+0

您是否找到解決方案? –

44

檢查您的系統日誌中是否有關於被終止的節點的消息。您的Node應用程序可能使用了過多的內存並被Out-Of-Memory killer殺死。

+0

感謝您的建議。 – Tim

+3

在我的情況下,的確如此,我在/ var/log/syslog中看到:'9月4日16:21:32託管內核:內存不足:殺死進程29620(nodejs)得分107或犧牲子進程9月4日16:21 :32主機內核:Killed進程29620(nodejs)total-vm:1054732kB,anon-rss:136168kB,file-rss:0kB'。感謝提示! – weekens

+2

如果您使用的是Redhat系統,那麼該日誌位於'/ var/log/messages'。內存不足似乎也是我的問題。 –

相關問題