MongoDB连接不断增加
我一直在打我的连接限制,但httpstream量保持一致。 我使用MMS来分析我的mongod进程,并看到连接数不断上升:
我为Node.js(Express)使用mongoskin包装器。 我有一个自定义路由中间件,在执行其他路由之前连接到mongo数据库:
var _connect = function(req, res, next) { res.db = mongoskin.db(_us.sprintf( '%s:%s@localhost:27017/%s?auto_reconnect', app.set('mongoDbUser'), app.set('mongoDbPw'), app.set('mongoDb') )); next(); };
难道我做错了什么? 我应该如何打开和closures连接?
mongoskin是node-mongodb-native驱动程序的包装,因此底层本地驱动程序的选项仍然适用。
一些build议,以减less使用的连接数量:
-
在启动应用程序之前打开连接(您不希望在每个请求中打开连接):
var db = new mongoskin.db(...) db.open(function(err, db) { // Application logic })
-
调整节点 – mongo – 本地连接poolSize 。 连接池允许在您的应用程序中共享一组连接,而不是总是打开新的连接。 2012年8月16日发布的node-mongo-native 1.1.4驱动程序的默认poolSize为1,较旧的驱动程序为5。
所以你可以尝试这样的:
var mongoskin = require('mongoskin'); var serverOptions = { 'auto_reconnect': true, 'poolSize': 5 }; var db = mongoskin.db('localhost:27017/test', serverOptions);