pymongo没有关闭连接

时间:2012-02-20 01:03:20

标签: python mongodb pymongo

我们正在尝试为我们的项目创建一个api服务器。

我们在debian盒子上使用mongodb和pymongo。每个人都在努力 日期。

但是我们遇到了一个非常奇怪的连接问题。有 当我检查时,通常超过15k-32k连接到mongodb端口 与

root @ webserver1:/ #netstat -na | grep mongo_db_ip | wc -l <​​/ p> 我得到了15363

连接处于TIME_WAIT状态...

但是当我查看mongo时,我现在只看到5-6个连接......

我们编写了一个mongodb类,它创建了一个实例并生成 连接。我们尝试调用conn.disconnect()或conn.end_request() 每次查询结束但它没有停止高连接 数...

有没有人可以说出我的错误是什么,或者有什么 为mongodb编写的python类来检查其他人如何制作如 东西...

感谢您的帮助和信息......

1 个答案:

答案 0 :(得分:2)

TIME_WAIT不是开放连接。它是套接字的操作系统状态,因此它可以确保所有数据都已通过。 AFAIK,Linux上的默认长度是一分钟。看看http://antmeetspenguin.blogspot.com/2008/10/timewait-in-netstat.html,它有一个很好的解释。您可以告诉内核重用TIME_WAIT套接字:

echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

将它减少到30秒。

但是,您应该检查为什么要建立这么多连接。你说你正在使用Debian软件包用于mongod和pymongo,它们往往过时了。你真的想要运行mongod 2.0.2和pymongo 2.1.1。