pm2 的cluster模式如何使用?
发布于 7 年前 作者 lyt308012546 3600 次浏览 来自 问答

现有一个程序,非web程序,需要处理任务列队,希望能够采用4个进程同时进行处理,那么在单核CPU的服务器上,在使用pm2的时候。 1、使用cluster模式是否有效? 2、单核CPU开4个进程处理程序是否有必要?也就是说开4个进程是否比1个进程处理速度快。 3、还有一个目的是利用cluster可以0秒更新,和不中断重启,那么是否有必要使用cluster.

我查网上资料都说cluster都说1核一个进程,我不太明白,就像node可以同时运行N个项目,那么N个项目在单核CPU上运行,怎么会1核1个进程呢?

2 回复

最好一个CPU对应一个node进程。 一台单核的服务器跑10个node进程也是没问题的,只不过这10个进程会互相抢夺CPU资源,这样可能会导致CPU现在正在处理A进程的任务,这时候有用户的请求到了B进程,那么这时候用户就会一直等待,直到CPU来处理B进程或者超时 (纯属个人理解,经供参考)

cluster模式其实就是prefork的工作方式。 只不过是将master process创建的listener的socket fd共享给了child processes们。 prefork是一种常驻进程,你只需要在listener的callback里实现对应的处理函数即可。 如果存在CPU密集任务请做好调用限制,避免同时进来太多CPU密集任务抢占太多资源。

回到顶部