2016-03-18 17 views
1

Mongo DBへの単一の接続を開きます。負荷テストの後、私のアプリからDbへの複数の開いている接続を見ることができます。ここネイティブNodeJS MongoDBドライバが追加の接続を開きます

コードである:

var app    = require('express')(); 
var logger   = require('log4js').getLogger(); 
var async   = require('async'); 

const logConnStr = 'mongodb://mysite.com/logs'; 
const AppPort  = 10000; 

logger.debug("Connecting to DB..."); 

function connectToLogs(cb) { 
    MongoClient.connect(logConnStr, { server: {reconnectTries: 3000} }, function(err, db) { 
    if (err) 
     return cb(err); 
    cb(null, db); 
    }); 
} 


function getRoot(req, res) { 
    var dbLogs = req.app.locals.dbLogs; 
    dbLogs.collection('banners').count(function(err, count) { 
    if (err) 
     return res.json({status: false, result: err}); 
    logger.debug(`Returning ${count}`); 
    res.json({status: true, result: count}); 
    }); 
} 

function onDbInit(err, dbs) { 
    assert.equal(err, null); 
    logger.debug("Connected."); 
    app.locals.dbLogs = dbs[0]; 
    app.get('/', getRoot); 
    app.listen(AppPort); 
    logger.debug(`Listening on ${AppPort}, pid=${process.pid}`); 
} 

async.series([ 
    connectToLogs 
], onDbInit); 

アプリケーションが予想通りのMongoDBへの接続の数は、1で実行されると:

[[email protected] ~]# lsof -p 19199 | grep TCP 
node 19199 root 12u IPv4 3024199246  0t0  TCP aaa.xxx.yyy.zzz:53535->aaa.xxx.yyy.zzz:27017 (ESTABLISHED) 
node 19199 root 13u IPv4 3024199307  0t0  TCP *:ndmp (LISTEN) 
[[email protected] ~]# 

そしてIは包囲してアプリケーションをテストロード:

siege -r 10 -c 10 aaa.xxx.yyy.zzz:10000 

および実行losof再び:

[[email protected] ~]# lsof -p 19199 | grep TCP 
node 19199 root 12u IPv4 3024199246  0t0  TCP aaa.xxx.yyy.zzz:53535->aaa.xxx.yyy.zzz:27017 (ESTABLISHED) 
node 19199 root 13u IPv4 3024199307  0t0  TCP *:ndmp (LISTEN) 
node 19199 root 14u IPv4 3024238770  0t0  TCP aaa.xxx.yyy.zzz:53752->aaa.xxx.yyy.zzz:27017 (ESTABLISHED) 
node 19199 root 15u IPv4 3024238914  0t0  TCP aaa.xxx.yyy.zzz:53758->aaa.xxx.yyy.zzz:27017 (ESTABLISHED) 
node 19199 root 17u IPv4 3024238779  0t0  TCP aaa.xxx.yyy.zzz:53754->aaa.xxx.yyy.zzz:27017 (ESTABLISHED) 
node 19199 root 18u IPv4 3024238824  0t0  TCP aaa.xxx.yyy.zzz:53756->aaa.xxx.yyy.zzz:27017 (ESTABLISHED) 
[[email protected] ~]# 

これらの接続はどこからですか?

テスト・システム:

CentOS6、NodeJS 5.8.0、MongoDBの3.2 WiredTiger、NodeJS MongoDBのドライバ2.1.7

答えて

2

あなたが単一の接続を作成していないためだ、あなたは(接続プールを作成していますデフォルトは5です)、driver docsを参照してください。

+0

nice one ..... ..... –

関連する問題