我正在使用 MongoDB 作为数据库和 mgo 作为驱动程序在 Go 中编写 REST API。对于路由器,我使用的是客户:pi。
在程序启动时,我创建了一个主 mgo.Session,然后,对于每个处理的请求,我复制主会话并在完成后关闭它。
但是,当同时处理多个请求时,我观察到 MongoDB 连接仍然打开,即使我关闭了复制的每个 mgo.Session。
以下是lsof命令的输出示例:
milano-ru 18790 neel_v 118u IPv4 34115804 0t0 TCP localhost:44238->localhost:27017 (ESTABLISHED)
milano-ru 18790 neel_v 119u IPv4 34115812 0t0 TCP localhost:44241->localhost:27017 (ESTABLISHED)
milano-ru 18790 neel_v 120u IPv4 34115813 0t0 TCP localhost:44242->localhost:27017 (ESTABLISHED)
milano-ru 18790 neel_v 121u IPv4 34115814 0t0 TCP localhost:44243->localhost:27017 (ESTABLISHED)
milano-ru 18790 neel_v 122u IPv4 34115815 0t0 TCP localhost:44244->localhost:27017 (ESTABLISHED)
因此,在我的应用程序运行几个小时后,它停止工作,因为它无法打开另一个 MongoDB 连接,因为达到了限制 (1024)。
我读过关于增加MongoDB 的ulimit,但这真的是一个解决方案吗?
守候你守候我
相关分类