pm2在使用配置文件时不会尽可能启动多个实例。

huangapple go评论124阅读模式
英文:

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',
            },
        },
    ],
};


huangapple
  • 本文由 发表于 2023年3月9日 14:35:59
  • 转载请务必保留本文链接:https://go.coder-hub.com/75681174.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定