ab测试简单负载均衡node.js配置失败

时间:2013-12-30 16:23:39

标签: node.js testing connection http-proxy

我正在开始安装和学习avout node.js,因此我在AB测试期间测试了一些基本配置e我总是遇到问题。

我在端口上启动了一个非常小的节点脚本的4个实例:8001,8002,8003和8004。 我还有一个节点脚本,用于在端口80上启动模块http-proxy进行负载平衡。

这是负载平衡脚本的代码:

var arguments = process.argv.splice(2);
var httpProxy = require('http-proxy');

//
// Addresses to use in the round robin proxy
//
var addresses = [
    {
    host: 'localhost',
    port: 8001
    },
    {
    host: 'localhost',
    port: 8002
    },
    {
    host: 'localhost',
    port: 8003
    },
    {
    host: 'localhost',
    port: 8004
    }
];

var i = 0;
httpProxy.createServer(function (req, res, proxy) {
    proxy.proxyRequest(req, res, addresses[i]);

    i = (i + 1) % addresses.length;
}).listen(arguments[0] || 80);

这是在端口8001,8002,8003,8004上等待的脚本代码:

var http = require("http");
var port = process.argv[2];

http.createServer(function(request, response) {
  response.writeHead(200);
  response.end("aGoodPower");
}).listen(port);

然后我以这种方式启动脚本:

     1. open terminal
 2. get root credentials: su (password)
 3. launch scripts:
    node simpleServer.js 8001 &
    node simpleServer.js 8002 &
    node simpleServer.js 8003 &
    node simpleServer.js 8004 &
    node nodeHttpProxy.js &
 4. ab -n 100000 -c 100 http://127.0.0.1/

此测试始终在30.000和40.000请求之间失败并出现错误:apr_poll:指定的超时已过期(70007)

我不知道为什么,我在网上找不到解释。

我使用一个simpleServer.js脚本进行了相同的测试,测试结束,直到100.000请求没有问题。

有谁能告诉我问题出在哪里?

非常感谢你 Elaidon

0 个答案:

没有答案