在服务器启动时将2GB(大约)数据从mongodb导出到redis,然后将错误视为FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory.
然后使用此命令启动服务器node --max-old-space-size=4076 server.js并正常工作.但需要在nodejs应用程序中进行配置,以便节点服务器始终以4gb内存启动.请帮我解决这个问题?谢谢.
Jam*_*air 25
一个选项:npm启动脚本
https://docs.npmjs.com/misc/scripts
这些将添加到"scripts"部分下的package.json中
{
//other package.json stuff
"scripts":{
"start": "node --max-old-space-size=4076 server.js"
}
}
Run Code Online (Sandbox Code Playgroud)
然后运行它调用npm start而不是键入node + args +执行点.
注意:如果您将其命名为start之外的其他内容,npm run [yourScriptNameHere]则将是运行它的命令
这是一个比尝试重新配置节点默认使用4gb更好的选择(甚至不知道它是否可能tbh).它通过使用烘焙方法使您的配置可移植,并允许将来遇到您的代码的其他人了解这是一个需要.
M T*_*ead 14
节点SomeScript.js --max-old-space-size = 8192
您还可以NODE_OPTIONS在运行npm脚本而不是node自身时进行设置:
"scripts": {
"start": "NODE_OPTIONS=--max-old-space-size=4096 serve",
},
Run Code Online (Sandbox Code Playgroud)
小智 5
有两种方法可以解决此问题,第一种方法是为您的应用程序显式设置内存大小,上面已经回答了。另一种方法是为节点全局设置内存大小 - 这是通过创建一个环境变量来完成的,其中
variable name=NODE_OPTIONS
Run Code Online (Sandbox Code Playgroud)
和
variable value=--max-old-space-size=4096
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34267 次 |
| 最近记录: |