【发布时间】:2019-06-18 01:00:14
【问题描述】:
我正在我的 Ubuntu 16.04 服务器上运行 node.js 服务。我最近遇到了一个问题,我收到以下错误消息:"UFATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory"。
现在,我读到这里,我可以使用类似的东西:node --max-old-space-size=4096 yourFile.js 来解决这个问题,但是我不会那样启动我的服务,我使用 supervisorctl start <servicename> 来启动服务。
所以,我不确定如何解决我的问题。
你能建议我该怎么做吗?
【问题讨论】:
-
可能值得优化代码而不是增加堆大小。过去,当某些递归函数失控时,我遇到过这个问题,也许您可以开始寻找那里?
-
我这里其实没有递归代码,但是我处理的是客户端请求,每秒最多可以收到几百个请求
-
那时你真的应该使用一个进程集群。这是第一个进程接受请求并将它们分派给工作人员的地方。这与预分叉 Apache 相同。您可以获得更多堆空间,但您必须处理不能依赖于单个共享堆的事实。
标签: node.js