About
pm
是一个轻量级的Node.js多进程管理器,基于之前的node-cluster
重构而来,在淘宝内部的生产系统中得到了广泛的应用.
- 基于 master + worker 模式,master负责进程管理,worker 处理业务逻辑,有效利用现代服务器的多CPU;
- 同一 master 可管理多种类型的worker, 并且支持在不同类型的 worker 之间进行轻量的消息传递;
- 同一类型的 worker ,对于TCP请求,采用抢占式的方式进行负载均衡;
- 平滑退出和 不退出前提下的 worker 进程重载 (reload).
Api
- Visit the wiki page to get more infomation about
pm
. - Also, we supply demo scripts in the code directory demo.
Install
$ npm install pm
Benchmark
$ siege -b -c100 -t 60S http://172.0.0.2:33749/
- QPS (only one child, http server, response req.url) (node0.6.17):
CASE | Closed | KeepAlive |
---|---|---|
pm2.0 | 5600 | 10553 |
pm1.0 | 5231 | 10388 |
node | 5481 | 10126 |
Usage
- in
master.js
, run as master:
var app = ; app; app;app;
- in
http.js
, run as worker:
var http = ; ;
Contributors
Thanks goes to the people who have contributed code to this module, see the GitHub Contributors page.
Below is the output from git-summary
project: pm
commits: 91
files : 27
authors:
86 aleafs 94.5%
4 wanglang 4.4%
1 fengmk2 1.1%
License
pm
is published under MIT license.
See license text in LICENSE file.