MongoDB CPU 使用率过高

MongoDB CPU 使用率过高

在 Ubuntu 14.04.1 LTS 上运行 MongoDB 2.4.11

在 top 中,这个 mongod 线程持续使用 ~195% 的 CPU:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
24524 mongodb   20   0 4676092 767556 719184 S 194.9 37.4 221:15.16 mongod

当我跟踪 PID 时,我得到无尽的结果:

select(11, [9 10], NULL, NULL, {0, 10000}) = 0 (Timeout)

我认为这是 Mongo Timeout 的问题?但我不太确定,因为我对服务器问题解决还不熟悉。

MongoDB配置: http://pastebin.com/sheb1hTG

来自 Mongo 日志的尾部: http://pastebin.com/V5apSsq5

来自 mongostat 的示例: http://pastebin.com/VRQzqn3D

我有 7 个 Node.js 服务器连接到在这个 Ubuntu 上运行的 Mongo——我知道这太多了,但只有 2 个服务器导致 CPU 过载问题——当我将它们都关闭时,CPU% 恢复正常。

我不确定这些 Node 服务器是如何实现的,以及它是如何导致 Mongo 问题的。

答案1

我在使用提供的存储库将 MongoDB 全新安装到 RHEL 6.3 上时遇到了类似的问题

mongodb-org.x86_64                               3.2.0-1.el6

安装后,服务启动时没有错误,但 CPU 超过 100%。我还注意到软中断非常高,上下文切换数以百万计。就我而言,虚拟机出了问题,重新启动后,问题解决了。上面的 strace 输出似乎对 MongoDB 来说是“正常的”——它使用了某种轮询?

相关内容