【问题标题】:what can cause node.js to print Killed and exit?什么会导致 node.js 打印 Killed 并退出?
【发布时间】:2020-08-20 06:07:44
【问题描述】:

我有一个 Node.js 应用程序,它在应用程序启动时将一些数据从 Mysql 加载到 Redis。在我们修改 Mysql 中的数据之前,它一直运行良好。

现在它只是以Killed 消息退出。

我正在尝试查明问题,但很难使用节点检查器进行调试,因为在 --debug 中运行时不会出现问题。

我不认为我的问题出在数据本身,因为它可以在我的本地机器上运行,但不能在我的生产机器上运行。

我的问题是,是什么导致了Killed 消息?是 Node.js 还是在 Mysql 驱动或其他地方?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    检查您的系统日志以获取有关节点被杀死的消息。您的 Node 应用程序可能正在使用过多的内存并被 Out-Of-Memory killer 杀死。

    【讨论】:

    • 就我而言,确实,我在 /var/log/syslog 中看到:Sep 4 16:21:32 hosting kernel: Out of memory: Kill process 29620 (nodejs) score 107 or sacrifice childSep 4 16:21:32 hosting kernel: Killed process 29620 (nodejs) total-vm:1054732kB, anon-rss:136168kB, file-rss:0kB。感谢您的提示!
    • 如果您使用的是 redhat 系统,则该日志位于 /var/log/messages。内存不足似乎也是我的问题。
    • 你太棒了,我真的开始用 docker 调查弹性 beanstalk 机器中的进程死亡,查看系统生成的每个日志文件,当我决定只问谷歌时,到达你的帖子,并且在messages.log 中找到了确切的问题。谢谢!
    • 在这种情况下,什么会解决“内存不足终止进程”?增加记忆力? node --max-old-space-size=31744 dataTreatment.js #增加到31gb左右?
    • @ChristopherMartinez 内存不足杀手是一个内核特性,所以它完全发生在节点之外——如果发生,就意味着你的物理内存用完了。您可能需要减少正在运行的进程的内存使用量,而不是增加它。
    【解决方案2】:

    不确定 Redis 是否是导致 Killed 消息的原因,但这是我的问题的原因。

    我将大量数据发送到 multi,因为我最初认为这是使用流水线的方式(这是自动的)。

    【讨论】:

    • 你找到解决办法了吗?
    猜你喜欢
    • 1970-01-01
    • 2012-10-04
    • 2022-08-21
    • 2011-02-08
    • 1970-01-01
    • 2021-01-03
    • 2021-04-27
    • 1970-01-01
    • 2012-01-18
    相关资源
    最近更新 更多