MongoDB连接数配置与优化
一 关键概念与默认值
二 配置方法与验证
net:
maxIncomingConnections: 2000
保存后重启实例生效。命令行方式:mongod --maxIncomingConnections 2000 或旧参数 mongod --maxConns 2000。修改后可用以下方式验证:
db.runCommand({ serverStatus: 1 }).maxIncomingConnectionsdb.serverStatus().connections(关注 current 与 available)
若设置后仍接近或达到上限,需检查并提升操作系统文件描述符限制(如 ulimit -n 或在 /etc/security/limits.conf 中提升 nofile)。三 客户端连接池配置
const { MongoClient } = require('mongodb');
const uri = 'mongodb://localhost:27017/?maxPoolSize=100';
const client = new MongoClient(uri, {
maxPoolSize: 100, // 连接池最大连接数
socketTimeoutMS: 30000, // 套接字超时
waitQueueTimeoutMS: 5000 // 等待队列超时
});
原则:让应用的总连接池规模(应用实例数 × 每实例 maxPoolSize)小于或接近服务器的 maxIncomingConnections,并保留一定余量给运维与监控连接。四 监控与容量规划
db.serverStatus().connections、mongostat、系统命令(如 netstat -anp | grep mongod | wc -l)五 常见问题与处理