PM2 在运行时更改集群进程大小
PM2 change cluster processes size at runtime
>有谁知道是否可以在 NodeJS PM2 中更改运行时应用程序的集群进程数?
问候菲利普
您可以使用
pm2 scale
在运行时垂直扩展进程数,请注意,它仅适用于集群模式。例:
-
pm2 scale APPNAME 2
会将进程扩展到正好 2 个实例。 -
pm2 scale APPNAME +2
将添加两个进程。 -
pm2 scale APPNAME -1
将删除一个进程。
源链接
以
JSON 格式指定 PM2 设置:
{
"apps": [{
"name": "server",
"script" : "index.js",
"instances": 2,
"exec_mode: "cluster",
"cwd": "/path/to/script"
}]
}
启动服务器:
pm2 start application.json
假设您要再添加 2 个实例,只需再次运行相同的命令:
pm2 start application.json
检查进程列表:
pm2 list
要测试所有 4 个实例是否在集群模式下运行,请执行以下操作:
pm2 restart server
它将重新启动 4 个进程中的每一个。
在运行时(应用程序启动后(,有两种方法可以"扩展"应用程序:
1( 使用命令行(此处记录在"实时扩展集群"下(,如下所示:
pm2 scale <app name> <n>
请注意,这可以是群集将纵向扩展或缩减到的一致数字。它也可以是添加的,例如 pm2 缩放应用 +3,在这种情况下,将向群集添加 3 个辅助角色。
2( 使用程序化 API(文档在这里,但没有记录规模(。由于没有记录,因此您可以通过以下方式进行操作:
pm2.scale(<APPNAME>, <SCALE_TO>, errback)
请注意,这是将放大或缩小到的数字,而不是添加或删除的数字。下面是连接到并扩展到 4 个实例的完整示例:
var pm2 = require('pm2');
pm2.connect(function (err) {
pm2.scale('appname', 4, function(err, procs) {
console.log('SCALE err: ', err);
console.log('SCALE procs: ', procs);
});
});
我们遇到了同样的问题,但没有找到任何解决方案。为了解决这个问题,我为PM2编写了一个小插件,它可以帮助根据利用率需求动态扩展应用程序。您可以尝试使用它 https://www.npmjs.com/package/pm2-autoscale
或者直接安装它
pm2 install pm2-autoscale
当模块检测到 CPU 利用率高于预期时,它将开始将实例增加到最大 CPUs-1,并且服务器是否有可用内存。
当模块检测到 CPU 利用率正在下降时,它将停止无用的实例。
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何在运行时在angular 2中加载外部js脚本
- JavaScript错误:Microsoft JScript运行时错误:应为对象
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- http.listen()在运行时接受终端命令
- 自定义运行时Can'在谷歌应用引擎中看不到我的自定义日志
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- JavaScript运行时是如何工作的
- 在运行时创建元素时移到一边时出错
- 如何在运行时在HTML5画布中绘制正方形
- 如何在运行时使用javascript隐藏图像
- 在运行时使用jquery准备表体会导致设计问题
- 使用主题运行时portlet liferay时出现Javascript错误
- JavaScript运行时事件循环现有技术
- Appcelerator Titanium:在运行时下载并解释JavaScript代码
- angularjs ng点击运行时标记不起作用
- 在函数运行时显示对话
- PM2 在运行时更改集群进程大小
- PHP 在进程运行时刷新临时表单
- 在其他进程运行时更改 dom 元素