MongoDB连接不断增加

我一直在打我的连接限制,但httpstream量保持一致。 我使用MMS来分析我的mongod进程,并看到连接数不断上升:

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使用的连接数量:

  1. 在启动应用程序之前打开连接(您不希望在每个请求中打开连接):

      var db = new mongoskin.db(...) db.open(function(err, db) { // Application logic }) 
  2. 调整节点 – 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);