我们已经开发了使用node.js()和mongo sharding的聊天模块,并且现场直播到生产服务器。但是今天它在MongoDB中达到了20000个连接,并且在日志中出现错误“连接太多”。之后,我们重新启动节点服务器并重新启动。现在它正常。但是我们必须知道如何立即解决这个问题。MongoDB - 太多的连接错误
任何配置都可以在mongodb中设置,以便在不使用时终止连接,或者在建立连接时设置到期时间。
请帮助我们解决此问题。
问候, 库马兰
我们已经开发了使用node.js()和mongo sharding的聊天模块,并且现场直播到生产服务器。但是今天它在MongoDB中达到了20000个连接,并且在日志中出现错误“连接太多”。之后,我们重新启动节点服务器并重新启动。现在它正常。但是我们必须知道如何立即解决这个问题。MongoDB - 太多的连接错误
任何配置都可以在mongodb中设置,以便在不使用时终止连接,或者在建立连接时设置到期时间。
请帮助我们解决此问题。
问候, 库马兰
你可能没有运行到MongoDB的问题。对MongoDB的连接数量有一个限制,通常大致等于可用的最大文件描述符数量。
听起来好像您的代码(可能)或猫鼬(不太可能)中存在一个错误,它会创建比关闭连接更多的连接或从不关闭连接。例如,在Java中为每个查询创建一个新的“Mongo”类实例会导致这种问题,但我不使用node.js/mongoose,所以我不知道JS的等价物是什么。
关注mongostat并检查连接计数是否总是增加或是否有时会减少。如果它是前者,你的代码永远不会因任何原因而释放连接。如果是后者,你只需创建它们比空闲连接断开更快。这通常是由于为每个查询做了一些重量级的事情(比如驱动程序初始化它的连接池)而不是一次。
正确地正确你在说什么。我们发现这个问题并修复它。感谢您的即时回复。 – Kumaran 2012-02-01 14:53:50
不客气。如果答案正确,请接受答案;) – 2012-02-01 15:35:05