由于内存不足导致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的每一个最后一兆字节,而且还不够,那么有两种方式:
-
减less程序的内存需求。 这可能会也可能不会。 如果你需要帮助,你应该发表另一个问题,详细说明你的function和内存使用情况。
-
获得更多的内存为您的服务器。
512mb
并不多,尤其是在运行需要内存存储的其他服务时(如数据库或消息队列)。
有第三种使用swap
空间的可能性(用作内存备份的磁盘存储),但这会对性能产生很大的影响。 如果你仍然想要它,谷歌如何为你的操作系统设置这个,有很多关于这个话题的文章。 这是OSconfiguration,而不是Node的。