Correct usage of PM2 for Node?

Problem

I am considering switching from forever to PM2 to keep my node application up and running.

I am confused about the following recommended methods for starting a process:

$ pm2 start app.js -i 4 # Daemonize pm2 and Start 4 clustered instances of app.js
                        # You can also pass the 'max' params to start

Could someone explain to me what is a clustered instance of app.js? How many instances should I start? 1? Max?

Problem courtesy of: user1031947

Solution

Clustered app means duplicating the application to use each cpu instead of only one,

If you do:

$ pm2 start app.js

It will only launch one application

If you do:

$ pm2 start app.js -i max

It will launch the maximum number applications depending on the number of cpus available, so if it's a networked app, requests will be balanced between all processes!

Solution courtesy of: Unitech

Discussion

There is currently no discussion for this recipe.

This recipe can be found in it's original form on Stack Over Flow.