由于内存不足导致Node.js死亡

我在只有512MB RAM的服务器上运行Node.js 问题是当我运行一个脚本,它会因为内存不足而死亡。

默认情况下, Node.js内存限制是512MB 。 所以我认为使用--max-old-space-size是没用的。

跟随/var/log/syslog

 Oct 7 09:24:42 ubuntu-user kernel: [72604.230204] Out of memory: Kill process 6422 (node) score 774 or sacrifice child Oct 7 09:24:42 ubuntu-user kernel: [72604.230351] Killed process 6422 (node) total-vm:1575132kB, anon-rss:396268kB, file-rss:0kB 

有没有办法摆脱内存不升级内存? (如使用持久性存储作为额外的RAM)

更新:这是一个使用节点模块请求和cheerio的刮板。 运行时,会打开数百或数千个网页(但不是并行)

如果你让节点访问可用512的每一个最后一兆字节,而且还不够,那么有两种方式:

  1. 减less程序的内存需求。 这可能会也可能不会。 如果你需要帮助,你应该发表另一个问题,详细说明你的function和内存使用情况。

  2. 获得更多的内存为您的服务器。 512mb并不多,尤其是在运行需要内存存储的其他服务时(如数据库或消息队列)。

有第三种使用swap空间的可能性(用作内存备份的磁盘存储),但这会对性能产生很大的影响。 如果你仍然想要它,谷歌如何为你的操作系统设置这个,有很多关于这个话题的文章。 这是OSconfiguration,而不是Node的。