阿里云部署pm2集群多核不利用问题
发布于 9 年前 作者 seeyoup 6603 次浏览 来自 问答

目前是使用阿里云2台8核16G内存5M带宽ESC,2台RDS,所有ESC服务器都是简单的安装了node4.2.4(64位),且尚无做任何配置;

使用PM2,测试官网NODE示例:

const http = require('http');
const hostname = '127.0.0.1';
const port = 1337;
http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
}).listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

使用PM2启动单个线程:

┌──────────┬────┬──────┬──────┬────────┬──────┐
 App name  id  mode  pid  status  restart  uptime  memory  watching 
├──────────┼────┼──────┼──────┼────────┼──────┤
 test  0  fork  3431  online  0  0s  5.031 MB  disabled 
└──────────┴────┴──────┴──────┴────────┴──────┘

使用压力测试并发为:

webbench -c100 -t5 http://localhost:1337/

测试结果为:

Speed=259200 pages/min, 434191 bytes/sec.

使用PM2开启8个线程同时监听1337端口服务:

┌──────────┬────┬─────────┬──────┬────────┬──────────┐
 App name  id  mode  pid  status  restart  uptime  memory  watching 
├──────────┼────┼─────────┼──────┼──────── ──────────┤
 test  0  cluster  3694  online  0  0s  20.605 MB  disabled 
 test  1  cluster  3699  online  0  0s  20.648 MB  disabled 
 test  2  cluster  3704  online  0  0s  18.617 MB  disabled 
 test  3  cluster  3715  online  0  0s  18.656 MB  disabled 
 test  4  cluster  3724  online  0  0s  18.664 MB  disabled 
 test  5  cluster  3733  online  0  0s  20.582 MB  disabled 
 test  6  cluster  3742  online  0  0s  17.852 MB  disabled 
 test  7  cluster  3751  online  0  0s  14.590 MB  disabled 
└──────────┴────┴─────────┴──────┴─────┴─────────────┘
webbench -c100 -t5 http://localhost:1337/
Speed=226704 pages/min, 427094 bytes/sec.
Requests: 18892 susceed, 0 failed.

通过各种方式测试了一天,为什么开启集群模式后,并发量就是上不去呢?

9 回复

个人觉得, webbench和web服务不要跑在同一个服务器上。 你既然有两台,可以一台跑pm2集群,另外一台跑webbench。

@renaesop 早上测试了下,在其他主机进行测试,问题依然没有解决!

有人遇到过这个问题吗?

没有做过这方面研究,目前比较倾向于单核多服务器负集群模式。背多实例坑的不轻又查不到问题。

这些测试代码没有需要高CPU消耗的地方,再加多少核进去也白搭吧。

把pm2的exec mode设置为cluster_mode就哦了

回到顶部