我们使用以下方法监控我们的 mongoDB 连接数:
http://godoc.org/labix.org/v2/mgo#GetStats
但是,我们一直面临一个奇怪的连接泄漏问题,其中 connectionCount 每 10 秒持续增加 1 个打开的连接。(这与是否有任何请求无关)。我可以在 localhost 中启动一个服务器,把它留在那里,什么都不做,conectionCount 仍然会增加。连接数最终会上升到几千,然后它会杀死应用程序/数据库,我们必须重新启动应用程序。
这可能不足以让您进行调试。有没有人有任何想法,您过去处理过的连接泄漏。你是怎么调试的?我可以通过哪些方式调试它。
我们已经尝试了一些事情,我们扫描了我们的代码库以查找任何可以打开连接并将计数器/调试语句放在那里的代码,到目前为止我们没有发现任何泄漏。这几乎就像某个地方的图书馆发生了泄漏。
这是我们一直在研究的分支中的一个错误,并且已经有数百次提交。我们已经在 this 和 master 之间做了一个差异,但找不到为什么这个分支中存在连接泄漏。
例如,我引用的数据集是:
Clusters: 1
MasterConns: 9936 <-- creeps up 1 per second
SlaveConns: -7359 <-- why is this negative?
SentOps: 42091780
ReceivedOps: 38684525
ReceivedDocs: 39466143
SocketsAlive: 78 <-- what is the difference between the socket count and the master conns count?
SocketsInUse: 1231
SocketRefs: 1231
MasterConns 是每 10 秒增加一个的数字。我不完全确定其他数字可能意味着什么。
红糖糍粑
相关分类