节点JS pm2最大内存限制

时间:2017-03-22 22:19:42

标签: javascript node.js pm2

我正在使用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"
     ]
   }
 ]

}

2 个答案:

答案 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"
     ]
   }
 ]
}