繁体   English   中英

如何在集群模式下使用 pm2 启动 node.js 应用程序?

[英]How to start node.js app with pm2 in cluster mode?

我们正在尝试在带有八核处理器的 ubuntu 14.04 上使用 pm2 0.12.8 启动我们的应用程序。 git hub 上的 read me 有一个非常直接的命令,用于在集群模式下运行节点应用程序。

# 集群模式

$ pm2 start app.js -i 0        **# Will start maximum processes with LB depending on available CPUs**
$ pm2 start app.js -i max      **# Same as above, but deprecated yet.**

但是上面的命令对我们不起作用。 当我们尝试运行这些命令时,pm2 只列出了一个实例。

为什么? 任何建议

谢谢

您是否尝试过启动固定数量的进程? IE

pm2 start app.js -i 2 //should start two instances.

“pm2 monit”向您展示了什么?

也试试

pm2 stop all
pm2 delete all 

进而

pm2 start app.js -i 0

如果你在 pm2 中停止一个进程,它仍然为它保留一个 CPU,即使它没有运行。 你应该总是使用 pm2 delete

由于您希望使用进程文件来管理您的 pm2,因此该进程文件应类似于以下内容:

    // ecosystem.js
    {
    "apps" : [{
      "name"      : "API",
      "script"    : "server.js",// name of the startup file
      "instances" : 4,          // number of workers you want to run
      "exec_mode" : "cluster",  // to turn on cluster mode; defaults to 'fork' mode 
      "env": {
        "PORT"      : "9090" // the port on which the app should listen
      }
      // for more options refer : http://pm2.keymetrics.io/docs/usage/application-declaration/#process-file
    }]
    }

使用以下命令分别启动和停止运行此应用程序:

$ pm2 start ecosystem.js
$ pm2 stop ecosystem.js

新鲜加工用

pm2 start app.js --name "my-node-app" -i 2 // to create 2 process

使现有的运行过程。 如果是 fork 模式,您必须停止并删除当前正在运行的进程。 那么只有它可以创建集群模式。

pm2 stop my-node-app
pm2 delete my-node-app
pm2 start app.js --name "my-node-app" -i 2 // to create 2 process

我想你可能会用普通模式(fork_mode)启动这个项目,所以你应该在更改为集群模式之前删除所有进程列表,因为 pm2 会记住你的启动选项

pm2 delete all
pm2 start app.js -i [NUMBER_OF_INSTANCE|max]

你可以在这里获得最好的信息: pm2集群模式

要启用集群模式,只需传递 -i 选项:

pm2 start app.js -i max

max 表示 PM2 将自动检测可用 CPU 的数量并运行尽可能多的进程

或者通过 js/yaml/json 文件:

module.exports = {
  apps : [{
    script    : "api.js",
    instances : "max",
    exec_mode : "cluster"
  }]
}

注意:您需要将 exec_mode 设置为 cluster 以便 PM2 知道您要在每个实例之间进行负载平衡,默认情况下不会

然后启动进程文件:

pm2 start processes.json -i 或 instances 选项可以是:

0/max 将应用程序分布到所有 CPU

-1 将应用程序分布到所有 CPU - 1

number 将应用程序分布在多个 CPU 上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM