Mongodb-连接池大小未反映

时间:2018-11-21 12:39:08

标签: node.js mongodb mongoose

Mongodb具有默认的连接轮询大小eq 5。

如果我通过mongodb客户端连接到mongodb,连接池大小总是等于1,如果我通过mongoose连接到mongodb,则连接池大小总是等于2

关于猫鼬,如果我将poolSize = 1设置,则连接poolSize将为1,如果我尝试使其大于2,则poolSize将仅为2

我还为猫鼬和mongodb客户端设置了maxPoolSize,没有反映!

我正在通过命令从mongodb服务器检查连接池大小  “ db.serverStatus().connections

但是,如果我登录了表单客户端(connections.length),对于mongoose和mongodb客户端,它始终等于1

我想知道mongodb服务器或操作系统“ Debian 9”是否有配置来更新最大池大小

我尝试了多种方法来设置poolSize(通过将其添加为查询参数或选项对象)

Mongodb性能太差->

我正在通过jmeter通过从一个线程无限循环发送请求来测试Express http服务器,吞吐量为12000 + 响应是静态的hello world文本

添加猫鼬并发送响应后(发现表中的所有记录只有5条记录)吞吐量仅为600+

所以我想知道如何最大化连接池和黑客来提高猫鼬的性能

Ps:我已将ulimit打开文件更改为64000

猫鼬连接代码:

mongoose.connect(dbUrl , {  useNewUrlParser: true  , 
                        autoReconnect:true ,
                        poolSize: 100,
                        reconnectInterval: 1000,
                        reconnectTries: 30
                    });
var db = mongoose.connection;
    db.once('open', function() {
  console.log(mongoose.connections.length);
});

Mongodb客户端代码:

var MongoClient = require('mongodb').MongoClient;
MongoClient.connect(dbUrl, {
useNewUrlParser: true , 
  poolSize: 1000
  }, function(err, client) {

!err ? console.log('') :console.log(client);
});

0 个答案:

没有答案