gpt4 book ai didi

Node.js 由于内存不足而被杀死

转载 作者:搜寻专家 更新时间:2023-11-01 00:05:58 25 4
gpt4 key购买 nike

我在只有 512MBRAM 的服务器上运行 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)

更新:这是一个使用 Node 模块请求和 cheerio 的抓取工具。当它运行时,它会打开成百上千个网页(但不是并行的)

最佳答案

如果您让 Node 访问可用 512 中的最后一兆字节,但仍然不够,那么有两种方法:

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

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

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

关于Node.js 由于内存不足而被杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39914890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com