【发布时间】:2021-06-05 22:14:50
【问题描述】:
我刚刚使用 MongoDB 设置了一个完整的 NodeJS 机器人。这个 Discord 服务器大约有 24,000 人使用命令向机器人左右发送垃圾邮件,我已经使用过
(信息模糊,因为那里有用户名、密码、ips)
"url": "mongodb://XXXX:XXXX@XXX.XX.XXX.XX.XXX:25000/?authSource=admin?maxPoolSize=500&poolSize=300&autoReconnect=true",
这是我的 URI,如您所见,我允许的池大小非常大。
通常情况下,我的应用程序(在启用池之前)的平均连接数会达到 300-600,因为它有多个“MongoDB.Connect(uri) 等”实例,而且数量庞大db.close() 在集合的末尾。
我已经清理了整个事情,我只调用了 MongoClient.Connect() 的 1 个实例,然后在代码中引用了这个连接一次(作为绕过者)。
在我确定清除所有会关闭数据库的东西之后 (db.close();)
我已经启动,一切似乎仍然响应 - 所以没有数据库/mongo 错误。
但是,通过 MongoDB Compass,我的连接数稳定在 29 左右。显然哪个好,但是当我启用 300 个池时,这不应该更高吗?
有什么我错过的吗?还是一切正常?
【问题讨论】:
-
虽然让它做一些工作(在总共 25.000 个文件中每毫秒更改 100 个文件),但似乎连接数并没有真正转移太多(我们谈论 37 个)。为什么涨的不多?加快进程 - 完成后,连接数保持在 37 而不是下降。
-
serviceExecutor:自适应 - 在 mongod.cfg 中这可能是相关的吗?