节点JS pm2最大内存限制

Mas*_*rN8 2 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"
     ]
   }
 ]
Run Code Online (Sandbox Code Playgroud)

}

zha*_*hou 11

我使用pm2直接运行node.js脚本,这段代码对我有用:

pm2 start file.js --max-memory-restart 100M
Run Code Online (Sandbox Code Playgroud)

希望max-memory-restart参数适合您

  • @Pytth同意!即使你问为什么要投票,有些人也不会发表评论. (2认同)

Amu*_*yap 5

你必须使用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"
     ]
   }
 ]
}
Run Code Online (Sandbox Code Playgroud)