[英]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,它們的結果完全一樣。
我以為可能是游泳池的大小,所以我增加了/減少了。 沒有。 沒有錯誤或異常。 我不知所措...
任何幫助,將不勝感激。
謝謝。
測試代碼如下;
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;
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.