PM2在运行时更改集群进程大小

时间:2015-03-28 16:15:02

标签: javascript node.js pm2

是否有人知道是否可以在运行时更改NodeJS PM2中应用程序的集群进程数?

问候 菲利普

3 个答案:

答案 0 :(得分:5)

您可以使用pm2 scale垂直缩放运行时的进程数,请注意它仅适用于群集模式。 示例:

  • pm2 scale APPNAME 2会将流程缩减为2个实例。
  • pm2 scale APPNAME +2将添加两个进程。
  • pm2 scale APPNAME -1将删除一个流程。

source link

答案 1 :(得分: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个进程中的每一个。

答案 2 :(得分:0)

在运行时(在应用程序启动之后),有两种方法可以"缩放"申请:

1)使用命令行(记录here下"实时扩展群集"),如下所示:

pm2 scale <app name> <n>

请注意,这可以是群集向上或向下扩展的一致数字。它也可以是一个附加项,例如pm2 scale app +3,在这种情况下,将有3个工作人员添加到集群中。

2)使用Programmatic API(文档为here,但未记录比例)。由于没有记录,您可以按照以下方式进行操作:

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);
    });
});