为何PM2可创建超过本地CPU核心数的集群实例?
为什么pm2 scale app 10能创建10个实例?
这是因为PM2的配置文件初始设置和运行时缩放命令的优先级、功能定位不同:
配置文件的
instances: 0是启动默认规则,而非上限
你配置里的instances: 0仅作用于应用**首次启动(或通过pm2 start ecosystem.config.cjs重启)**时,自动根据CPU核心数生成对应数量的实例。它只是一个启动时的默认值,不是实例数的硬性限制。pm2 scale是运行时动态调整命令,优先级高于初始配置pm2 scale app 10属于PM2的动态管理命令,作用是直接修改运行中应用的实例数量,会完全覆盖配置文件里的instances设置。不管你初始配置是0还是其他数值,执行这个命令后,PM2都会按照你指定的数量创建或销毁worker进程。Node.js Cluster模块本身不限制worker数量
PM2的cluster模式基于Node.js原生的cluster模块,而这个模块并没有限制worker进程的数量上限。虽然从性能角度,推荐实例数和CPU核心数匹配(减少CPU上下文切换开销),但功能上完全支持创建超过核心数的实例——这也是PM2允许你这么做的底层原因。
内容的提问来源于stack exchange,提问作者jinjin
相关产品推荐
相关产品推荐

