我正在使用pm2和node 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"
]
}
]
}
3条答案
按热度按时间wqnecbli1#
我使用pm2直接运行node.js脚本,下面的代码对我很有效:
希望max-memory-restart参数对您有用
kx1ctssn2#
您必须使用
node_args
而不是args
。另外,为了安全起见,您可以手动设置max_memory_restart
此选项使您能够在进程崩溃之前重新启动进程。83qze16e3#
您说您已经尝试了--max-old-space-size命令,但没有成功。
看起来您试图通过“args”pm2命令传递它,但这不起作用,主要原因是需要显式地告诉它将命令传递给它正在处理的nodeJS进程。
--node-args=允许你在使用PM2时传递典型的NodeJS命令。这里有两种传递方式。第一种是通过一个直接的package.json文件脚本(把这个留给其他人以防万一):
或者像上面的评论者通过pm2配置文件发布的那样: