2012-02-01 67 views
0

我们已经开发了使用node.js()和mongo sharding的聊天模块,并且现场直播到生产服务器。但是今天它在MongoDB中达到了20000个连接,并且在日志中出现错误“连接太多”。之后,我们重新启动节点服务器并重新启动。现在它正常。但是我们必须知道如何立即解决这个问题。MongoDB - 太多的连接错误

任何配置都可以在mongodb中设置,以便在不使用时终止连接,或者在建立连接时设置到期时间。

请帮助我们解决此问题。

问候, 库马兰

回答

2

你可能没有运行到MongoDB的问题。对MongoDB的连接数量有一个限制,通常大致等于可用的最大文件描述符数量。

听起来好像您的代码(可能)或猫鼬(不太可能)中存在一个错误,它会创建比关闭连接更多的连接或从不关闭连接。例如,在Java中为每个查询创建一个新的“Mongo”类实例会导致这种问题,但我不使用node.js/mongoose,所以我不知道JS的等价物是什么。

关注mongostat并检查连接计数是否总是增加或是否有时会减少。如果它是前者,你的代码永远不会因任何原因而释放连接。如果是后者,你只需创建它们比空闲连接断开更快。这通常是由于为每个查询做了一些重量级的事情(比如驱动程序初始化它的连接池)而不是一次。

+0

正确地正确你在说什么。我们发现这个问题并修复它。感谢您的即时回复。 – Kumaran 2012-02-01 14:53:50

+0

不客气。如果答案正确,请接受答案;) – 2012-02-01 15:35:05