我是 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 并且都得到了完全相同的结果。
我想可能是池的大小,所以我增加/减少了它。没有什么。没有错误或异常。我很茫然...
任何帮助,将不胜感激。
谢谢。
测试代码如下;
应用程序.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;
服务器.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);