簡體   English   中英

Node.js,集群,Express,Apache Ab和MongoDB

[英]Node.js, cluster, express, apache ab and mongodb

我是mongo的新手,並且使用Node.js(v0.4.12),集群(Learnboost v0.7.7)和express(v2.5.9)進行了一些性能測試。 我正在嘗試連接到mongo,並使用apache ab做一個簡單的性能測試。 我已經使用MySql進行了設置,並且可以完美地工作,但是當我嘗試使用mongo進行相同的測試時,卻沒有得到我期望的結果。

使用MySql,我向node.js集群(8個內核)發送了10,000個請求,並向數據庫中插入了10,000行。 沒有問題。 但是,當我對mongo做同樣的事情時,我只能得到4,500-4,900左右。 我試過mongoskin,mongo-lite,node-mongodb-native,它們的結果完全一樣。

我以為可能是游泳池的大小,所以我增加了/減少了。 沒有。 沒有錯誤或異常。 我不知所措...

任何幫助,將不勝感激。

謝謝。

測試代碼如下;

app.js

var mongoLite = require('mongo-lite');
var express   = require('express');

var count  = 1;
var config = {
host    : 'localhost', 
user    : USER,
pass    : PASSWORD,
port    : '27017',
db      : 'test',
options : 'poolSize=10'
};

var configUrl = 'mongodb://'    +
              config.user + ':' + 
              config.pass + '@' + 
              config.host + ':' + 
              config.port + '/' +
              config.db;


var mongo   = mongoLite.connect(configUrl);
var server  = express.createServer();

server.get('/test/:id', function (req, res) {               
mongo.collection('test_' + req.params.id).insert({_id: count++}, function(err, doc){
    if (err)
        throw err;
});
res.end('inserted');
});

module.exports = server; 

server.js

var cluster = require('cluster');

cluster('./app')
    .use(cluster.reload())
    .use(cluster.logger('logs'))
    .use(cluster.stats())
    .use(cluster.pidfiles('pids'))
    .use(cluster.cli())
    .use(cluster.repl(8888))
    .listen(81);

我在Apache Ab中遇到了這些問題。 我的結論是,它在節點處觸發請求的速度比處理它們的速度要快,這是因為如果某些請求根本無法得到處理。

我寫了自己的基准測試來解決Java中的HTTP連接問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM