求助: mongodb 连接没有释放掉,一直占用在那里,怎么清理这些僵尸连接

2017-01-12 22:10:38 +08:00
 kiuyu

用的是阿里云的 mongodb 最低配置,只给了 200 条连接,用 pymongo 连接,基本上是写数据,很少读。 之前我怀疑是程序异常退出时连接没有关,之后我又在程序中添加了连接本地的 mongo ,每次往 aliyun 的 mongo 写一次,本地再写一次,现在 aliyun 的 200 条连接又要用完了,本地的 mongo 只有 1 条连接。 现在我也搞不清问题出在哪里, google 好久都没能找出解决方法,前面几次连接数满了都是直接重启的。 想问问大家有没有遇到过这种问题,现在只希望至少能把僵尸连接清理了。

9802 次点击
所在节点    MongoDB
11 条回复
spice630
2017-01-12 22:44:06 +08:00
连本地和连远程的配置和代码是完全的嘛?
python 的问题怎么这么多。。。
kiuyu
2017-01-12 23:02:35 +08:00
@spice630 写在一起的,先存远程再存本地。
tracymcladdy
2017-01-12 23:12:33 +08:00
正常是自动释放的啊 你是瞬间超过 200 爆了吧
spice630
2017-01-12 23:13:04 +08:00
可以问下阿里, 200 条是怎么统计的。
kiuyu
2017-01-12 23:14:21 +08:00
@tracymcladdy 用了三天左右
billlee
2017-01-12 23:29:06 +08:00
PyMongo 自带连接池,默认的线程池大小是 100. 按理说是不会有 200 条连接的。
你的程序是多线程的吗,所有线程是不是共用一个全局的 MongoClient 对象?
kiuyu
2017-01-13 00:43:06 +08:00
@billlee 200 条连接是 aliyun mongodb 统计的连接,我这边程序都断开了, aliyun 上统计的连接数还一直保持在那,一直都没有释放
linbiaye
2017-01-13 06:30:14 +08:00
@kiuyu 你是怎么确定程序断开连接了? netstat 看了 tcp 连接么?
kiuyu
2017-01-13 09:12:24 +08:00
@linbiaye 确定断了,关机停一个晚上,连接数还保持在那
linbiaye
2017-01-13 09:51:50 +08:00
@kiuyu 你需要看看是什么 ip 连过去的,可能是透过代理连接的。 tcp 连接不可能一边断了一晚上,另一边还能 established ,除非把内核改疵了。
kiuyu
2017-01-13 16:07:03 +08:00
@linbiaye 非常感谢,帮大忙了。是通过 rinetd 转发的,把 rinetd 重启了一下连接数就没了,具体的原因还没搞清。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/334233

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX