1

我以每分钟约 30,000 个请求达到 mongodb 端点。在 20,000 个请求之前,一切似乎都可以正常工作,之后所有请求都失败了

t [对象对象]。(/home/ubuntu/node_modules/mongodb/lib/mongodb/connection/server.js:530:7) 在 [object Object].emit (events.js:88:20) 在 [object Object]。(/home/ubuntu/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:104:15) 在 [object Object].emit (events.js:70:17) 在 Socket。(/home/ubuntu/node_modules/mongodb/lib/mongodb/connection/connection.js:411:10) 在 Array.0 (net.js:319:25) 的 Socket.emit (events.js:67:17)在 EventEmitter._tickCallback (node.js:192:41)

每次迭代关闭数据库连接,仅供参考,我每次都连接到多个数据库。

再次重复相同的过程会产生相同的后果。

4

1 回答 1

1

这通常是服务器上的 ulimit 问题,因为您打开了太多连接,但您需要查看 mongod/mongos 日志以确定。如果是这种情况,您将看到有关无法分配资源和/或创建新线程的错误。有关如何解决此问题,请查看此处:

http://docs.mongodb.org/manual/administration/ulimit/

此外,根据您使用的驱动程序关闭连接可能是一个非常糟糕的主意,并且可能是问题的根本原因(特别是如果您适当地设置了 ulimits)。现在的大多数驱动程序,包括我相信的节点都有一个连接池,可以适当地管理连接并允许重用。通过明确关闭它们,您实际上可能会在短期内导致旧连接建立。

于 2013-02-12T18:37:22.627 回答