Mongodb 生产服务器与暂存服务器相比速度太慢

Mongodb 生产服务器与暂存服务器相比速度太慢

我们有两组数据库和应用服务器在 Rackspace VPS 上运行。生产和准备阶段。应用程序在 Rails 上,数据库是 MongoDB。

虽然暂存(与生产文档一样多,55k)运行良好,但生产服务器却非常慢。速度慢了 20 倍或更多。即使是简单的查询也要花费近 18 秒!

这是我目前所做的,但我仍然无法弄清楚。

  • 重新启动 Mongo 服务。
  • 检查了应用程序和数据库服务器之间的 ping 时间,看看是否是网络问题。结果不是。
  • 在模型上明确运行 create_indexes 但无济于事。
  • 启用了 mongo 分析选项,但它没有给我提供除我已有信息以外的额外信息。

这是运行某些数据库调用时的 mongostat 生产快照:

insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netOut  conn       time 
     0      0      0      0       0       1       0  1.95g  4.55g   122m     76        0          0       0|0     1|0    62b     1k     2   09:07:25 
     0      0      0      0       0       1       0  1.95g  4.55g   119m    121        0          0       0|0     1|0    62b     1k     2   09:07:26 
     0      0      0      0       0       1       0  1.95g  4.55g   120m     80        0          0       0|0     1|0    62b     1k     2   09:07:27 
     0      0      0      0       0       1       0  1.95g  4.55g   118m    116        0          0       0|0     1|0    62b     1k     2   09:07:28 

为什么有这么多故障?这是正常的吗?任何帮助/见解都将不胜感激。

答案1

原来,罪魁祸首是别的东西。Ubuntu 的错误报告包 Whoopsie。以下是它的追踪方法。

  • Mongostat 显示出异常多的故障,这意味着数据在 RAM 中不可用,并且 mongo 可能在每次查询时都会访问磁盘。
  • 然后我发布了 Linux自由的命令。它没有帮助。它在报告可用 RAM 时实际上会误导。请看这里 www.linuxatemyram.com
  • 顶部命令也没有起到什么作用,它总是显示内存使用率最高的是 mongo,最高不超过 20%。那么为什么 mongo 不使用剩余的内存呢?!
  • 在谷歌上快速搜索系统/内存监控工具显示顶部作为最喜欢的。

这是顶部服务器上的输出。 https://i.stack.imgur.com/2CLnI.png- 图像

高达 43.7% 的内存被 whoopsie 占用!真是糟糕透了。事实证明,它影响了生产和暂存服务器,但暂存服务器仍然在一定程度上幸存了下来。后来我又在谷歌上搜索了几次,发现这确实是 Ubuntu 上的一个错误。 https://bugs.launchpad.net/bugs/998521

我不认为 whoopsie(Ubuntu 崩溃数据库提交守护程序)在我的服务器上是必需的关键组件。我继续apt-get 已删除清除来自所有服务器的软件包。

相关内容