Mongod 在 Ubuntu 14.04 上陷入停止/等待状态

Mongod 在 Ubuntu 14.04 上陷入停止/等待状态

我按照文档在 Ubuntu 14.04 上安装了 MongoDB。它运行良好,但每隔几个小时就会莫名其妙地停止运行,需要手动重新启动才能service mongod restart再次运行。发生这种情况时,mongod.log 中没有任何内容。

此外,当我重新启动然后使用 检查状态时service mongod status,它会给我mongod stop/waiting一个事件,尽管应用程序能够连接到它。我一直在寻找如何调试它,但还是卡在了这一点上。

答案1

事实证明,问题出在 OOMkiller 终止 mongod 进程上。如 MongoDB 生产说明中所述(https://docs.mongodb.com/v3.2/administration/production-notes/#disk-and-storage-systems):

分配交换空间可以避免内存争用问题,并可以防止 Linux 系统上的 OOM Killer 杀死 mongod。

我使用以下命令创建交换文件,解决了该问题(在 Ubuntu 14.04 上):

> sudo fallocate -l 2G /swapfile
> sudo chmod 600 /swapfile
> sudo mkswap /swapfile
> sudo swapon /swapfile

然后我将以下内容添加到/etc/fstab文件中以使其永久生效:

/swapfile 无 交换 sw 0 0

答案2

需要先卸载mongodb,可以使用:

sudo apt-get purge mongodb-org*

之后,通过以下方式安装 mongodb

sudo apt-get install mongodb

然后更新:

sudo apt-get update

您已完成 mongodb 的安装。您可以使用以下命令进行检查:

mongo --version

相关内容