node.js作为cron作业运行时内存不足

时间:2012-07-02 11:19:59

标签: node.js azure cron

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

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

据推测,这意味着它耗尽了堆空间,但cron作业的限制设置在哪里?

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

由于 基思

1 个答案:

答案 0 :(得分:0)

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

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

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