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);
});