我正在使用pm2和节点js。我想要做的是为应用程序设置最大内存限制。我的开发服务器的限制是在两个应用程序之间分配500mb。理想情况下,我想将其限制在200mb。我需要将此限制作为应用程序的硬限制,并且如果它超过它,则不会像pm2命令“max_memory_restart”那样重新启动应用程序。我也尝试过使用--max_old_space_size命令而没有运气。有没有办法做到这一点?
示例pm2 json文件
{
"apps": [
{
"name": "Sample",
"script": "runit.js",
"watch": false,
"cwd": "xxxxxx",
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": '0',
"NODE_ENV": "local_public",
"PORT": 3000,
"PROXY_PORT": 4000,
},
"args": [
"--max_old_space_size=200"
]
}
]
}
答案 0 :(得分:9)
我使用pm2直接运行node.js脚本,这段代码对我有用:
pm2 start file.js --max-memory-restart 100M
希望max-memory-restart参数适合你
答案 1 :(得分:2)
您必须使用node_args
而不是args
。另外,为了安全起见,您可以手动设置max_memory_restart
,此选项使您可以在进程崩溃之前重新启动它。
{
"apps": [
{
"name": "Sample",
"script": "runit.js",
"watch": false,
"cwd": "xxxxxx",
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": '0',
"NODE_ENV": "local_public",
"PORT": 3000,
"PROXY_PORT": 4000,
},
"max_memory_restart": "180",
"node_args": [
"--max_old_space_size=200"
]
}
]
}