【发布时间】:2013-05-28 20:04:36
【问题描述】:
这是我正在使用的请求示例:
app.get('/', function (req, res) {
var user_hash = req.cookies.SESSION;
db.connect(mongoURI, function (err, db) {
var collection = db.collection('sessions');
collection.findOne({hash: user_hash}, function (err, item) {
res.render('index', {title: 'Домашняя страница', session: item !== null});
db.close();
});
});
});
我有很多这样的请求。
当我 Apache Benchmark 使用以下命令时出现问题:
ab -n 100 -c100 http://127.0.0.1:8080
我收到以下错误:
cannon read property collection of null
我的猜测是,在 apache 基准测试之后,在 mongodb 上打开的连接数是 130 - 150。 现在,我正试图在将我的服务器午餐投入“战斗”之前让它更加稳定。 我听说过连接池,但不知道。
现在问题: 由于“在 mongodb 上打开了许多连接”或其他原因,我的服务器崩溃了吗? 我应该怎么做才能修复它?
【问题讨论】:
-
检查你的mongod日志文件,如果打开的连接太多,它会这样说。 mongod 运行的用户很可能存在线程限制(mongod 为每个连接创建一个线程)