【问题标题】:node.js out of memory when run as a cron jobnode.js 作为 cron 作业运行时内存不足
【发布时间】:2012-07-03 18:02:31
【问题描述】:

我编写了一些在 node.js 下运行的 JavaScript 代码,用于将一个大 (~20 MB) 文件备份到 Azure blob。这在从 bash shell 运行时有效,但在作为 cron 作业运行时失败并出现以下错误(在两种上下文中以 root 身份运行):

致命错误:v8::Context::New() V8 不再可用

大概这意味着它用完了堆空间,但是为 cron 作业设置的限制在哪里?

(这是在 64 位 RHEL 6.2 服务器上,具有 8GB RAM 和 426GB 可用磁盘空间。Node.js 版本为 0.8.1,Azure 来自文件 azure-2012-06.tar.gz。)

谢谢 基思

【问题讨论】:

    标签: node.js azure cron


    【解决方案1】:

    当您说大时,您真的是指 ~20MB 作为大文件吗?您的 cron 作业在返回 OOM 之前运行了多长时间?此外,当您运行 cron 作业时,您是否检查了内存使用情况以验证实际使用情况,以验证这是否是原因。

    关于 cron 作业中的内存/堆限制,cron 只是充当作业调度引擎,因此 node.js 仍然使用自己的内存/堆设置,这不应该特定于 cron 调度程序。如果要更改/修改 V8 内存,可以使用 --max-old-space-size 选项将其提升到更高的值。

    我很想知道您如何将 node.js 代码作为 cron 作业运行。您编写 cron 作业的方式可能会在调用 Azure 存储时消耗大量内存。

    【讨论】:

    • 是的,文件大约 20MB。这是 cron 运行的脚本:
    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 2021-04-06
    • 1970-01-01
    • 2017-12-23
    • 2017-07-08
    • 2017-06-05
    相关资源
    最近更新 更多