小编clo*_*pez的帖子

突然 Mongodb 高连接/队列,db 停止响应

问题

我们的 mongodb 设置有一个奇怪的问题。有时我们会遇到高连接和高队列的峰值,如果我们让队列和连接增加,mongodb 进程就会停止响应。我们需要使用带有htop 的sigkill重新启动实例。

好像是系统限制/mongodb配置阻止mongodb运行,​​因为硬件资源没问题。此问题的版本发生在单机上,然后在生产服务器上设置副本。详情在前面。

关于软件环境

这是一个独立的 mongodb 实例(非分片或副本集),它在专用机器上运行,并由其他机器查询。我在 Debian 7.7 下使用 mongodb-linux-x86_64-2.6.12。

查询 mongo 的机器使用 Django==1.7.4、Mongoengine=0.10.1 和 pymongo==2.8、nginx 1.6.2 和 gunicorn 19.1.1。

在 Django settings.py 文件中,我使用以下几行连接到数据库:

from mongoengine import connect

connect(
    MONGO_DB,
    username = MONGO_USER,
    password = MONGO_PWD,
    host = MONGO_HOST,
    port = MONGO_PORT
)
Run Code Online (Sandbox Code Playgroud)

彩信统计

正如您在 MMS 服务的以下 img 中看到的,我们在连接和队列上有峰值:

毫米

发生这种情况时,我们的 mongodb 进程完全冻结。我们必须使用SIGKILL来重启mongodb,这真的很糟糕。

图中有 3 个冻结事件

队列

正如 img 所示,当这种情况发生时,我们在非映射虚拟内存上也有一个峰值。

虚拟内存

我们还发现 Btree 图表在第 2 次和第 3 次冻结前后有所增加。

树

我们检查了日志,但没有可疑的查询,而且 Opcounters 也没有暴涨,似乎没有比平时更多的查询。

这是同一错误的另一个屏幕截图,但在另一天/时间: 更多关于错误

在所有情况下,DB …

mongodb monitoring

13
推荐指数
1
解决办法
6889
查看次数

标签 统计

mongodb ×1

monitoring ×1