在服务器启动时将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内存启动.请帮我解决这个问题?谢谢.
一个选项:npm启动脚本
https://docs.npmjs.com/misc/scripts
这些将添加到"scripts"部分下的package.json中
{ //other package.json stuff "scripts":{ "start": "node --max-old-space-size=4076 server.js" } }
然后运行它调用npm start
而不是键入node + args +执行点.
注意:如果您将其命名为start之外的其他内容,npm run [yourScriptNameHere]
则将是运行它的命令
这是一个比尝试重新配置节点默认使用4gb更好的选择(甚至不知道它是否可能tbh).它通过使用烘焙方法使您的配置可移植,并允许将来遇到您的代码的其他人了解这是一个需要.
节点SomeScript.js --max-old-space-size = 8192
您还可以NODE_OPTIONS
在运行npm脚本而不是node
自身时进行设置:
"scripts": { "start": "NODE_OPTIONS=--max-old-space-size=4096 serve", },