在小负载上,所有查询都需要很长时间,然后返回站点返回错误 “与MongoDB的连接失败。现在正在进行操作” 在mongostat,我们看到大约10-30个连接(非常小,因为我们 通常使用400-500) 但是当我键入“netstat -na | grep 27017”时,我看到了很多 TCP连接(> 150):
为什么mongodb关闭连接但TCP仍然打开?
我们不使用持久连接并始终执行Mongo:close() 在脚本的末尾。
像Amazon EC2这样的云系统上的站点工作(我们没有观察到任何 网络问题)
10.1.1.16 - MongoDB 10.1.1.7 - Apache 服务器之间的1Gbit / s 操作系统:Debian 6 Squeeze MongoDB:1.8.2(1.6.6我们有同样的问题) Apache 2 PHP 5.3.6 PHP mongo驱动程序1.1.0(1.2.x中的连接池非常糟糕 我们)
答案 0 :(得分:0)
看起来您的驱动程序(例如PHP)实际上并未关闭TCP连接,即使您使用该方法关闭它也是如此。
如果您使用PHP作为模块,请尝试使用优雅的apache重新加载以使PHP模块卸载并再次加载。这样,就会调用析构函数并关闭连接。
如果您使用PHP作为fastcgi应用程序,请重新启动(kill / exec)它并再次调用。
如有必要,请提交错误。