英文:
pm2 doesn't start as many instances as possible when using config file
问题
我正在使用pm2在我的机器上的核心数上运行我的应用程序的多个实例。运行以下命令可以正常工作:
pm2 start build/server.js --watch -i max
这将启动16个实例。
但是,当我尝试使用我的ecosystem.config.js文件执行相同的操作时,我只看到一个实例:
[PM2] App [server_from_config] launched (1 instances)
我的ecosystem.config.js文件如下:
module.exports = {
apps: [
{
name: 'server_from_config',
script: './build/server.js',
env_production: {
NODE_ENV: 'production',
watch: true,
instances: 'max',
exec_mode: 'cluster',
},
},
],
};
这是怎么回事?
英文:
I'm using pm2 to run my app on as many instances as there are cores on my machine. Running the following command works as expected:
pm2 start build/server.js --watch -i max
This starts up 16 instances:
michael@my-machine todo % pm2 list
┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼───────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ server │ default │ 1.0.0 │ cluster │ 68303 │ 1s │ 0 │ online │ 73% │ 114.1mb │ michael │ enabled │
│ 1 │ server │ default │ 1.0.0 │ cluster │ 68304 │ 1s │ 0 │ online │ 68% │ 114.8mb │ michael │ enabled │
│ 2 │ server │ default │ 1.0.0 │ cluster │ 68305 │ 1s │ 0 │ online │ 63% │ 79.9mb │ michael │ enabled │
│ 3 │ server │ default │ 1.0.0 │ cluster │ 68308 │ 1s │ 0 │ online │ 58% │ 74.4mb │ michael │ enabled │
│ 4 │ server │ default │ 1.0.0 │ cluster │ 68311 │ 1s │ 0 │ online │ 54% │ 67.3mb │ michael │ enabled │
│ 5 │ server │ default │ 1.0.0 │ cluster │ 68314 │ 1s │ 0 │ online │ 49% │ 65.9mb │ michael │ enabled │
│ 6 │ server │ default │ 1.0.0 │ cluster │ 68317 │ 1s │ 0 │ online │ 47% │ 65.5mb │ michael │ enabled │
│ 7 │ server │ default │ 1.0.0 │ cluster │ 68320 │ 1s │ 0 │ online │ 45% │ 63.1mb │ michael │ enabled │
│ 8 │ server │ default │ 1.0.0 │ cluster │ 68321 │ 1s │ 0 │ online │ 42% │ 61.8mb │ michael │ enabled │
│ 9 │ server │ default │ 1.0.0 │ cluster │ 68324 │ 1s │ 0 │ online │ 39% │ 58.5mb │ michael │ enabled │
│ 10 │ server │ default │ 1.0.0 │ cluster │ 68325 │ 1s │ 0 │ online │ 37% │ 58.8mb │ michael │ enabled │
│ 11 │ server │ default │ 1.0.0 │ cluster │ 68326 │ 0s │ 0 │ online │ 35% │ 56.3mb │ michael │ enabled │
│ 12 │ server │ default │ 1.0.0 │ cluster │ 68329 │ 0s │ 0 │ online │ 0% │ 54.2mb │ michael │ enabled │
│ 13 │ server │ default │ 1.0.0 │ cluster │ 68332 │ 0s │ 0 │ online │ 0% │ 51.7mb │ michael │ enabled │
│ 14 │ server │ default │ 1.0.0 │ cluster │ 68335 │ 0s │ 0 │ online │ 0% │ 47.8mb │ michael │ enabled │
│ 15 │ server │ default │ 1.0.0 │ cluster │ 68343 │ 0s │ 0 │ online │ 0% │ 46.8mb │ michael │ enabled │
└─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
However, when I try to do the same thing, using my ecosystem.config.js file, I only see one instance:
[PM2] App [server_from_config] launched (1 instances)
┌─────┬───────────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼───────────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ server_from_config │ default │ 1.0.0 │ cluster │ 69680 │ 0s │ 0 │ online │ 0% │ 7.3mb │ michael │ enabled │
└─────┴───────────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
My ecosystem.config.js file:
module.exports = {
apps: [
{
name: 'server_from_config',
script: './build/server.js',
env_production: {
NODE_ENV: 'production',
watch: true,
instances: 'max',
exec_mode: 'cluster',
},
},
],
};
What's going on here?
答案1
得分: 1
请删除 env_production 并尝试
module.exports = {
apps: [
{
name: 'server_from_config',
script: './build/server.js',
NODE_ENV: 'production',
watch: true,
instances: 'max',
exec_mode: 'cluster',
},
],
};
英文:
Please remove env_production and try
module.exports = {
apps: [
{
name: 'server_from_config',
script: './build/server.js',
NODE_ENV: 'production',
watch: true,
instances: 'max',
exec_mode: 'cluster',
env_production: {
NODE_ENV: 'production',
},
},
],
};
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论