Rails - Mongoid:生产和开发之间的缓慢问题

Rails - Mongoid : Slow problem between production and development

我的 Rails 申请有问题。

我在 rails 的 3.2.22 和 ruby 的 2.2.5 连接到一个 mongodb 2.6.

问题是我在简单或更复杂的查询上的性能差异很大。

例如:

我运行 rails c开发然后我执行我的函数(相当复杂)它在30秒后响应 我运行railsc制作,我执行和上一个一样的功能,6分30秒后响应,慢了7倍。 所以我尝试将配置 'development' 复制粘贴到 'production',但结果保持不变,与 Gemfile 相同。

我查看项目的所有代码,环境生产和开发没有区别。

你知道rails这两种环境的内心差异吗?有人遇到过这个问题吗?

重要的是,我当然连接到 同一个数据库

提前致谢。

您没有指定您的 mongo (Ruby 驱动程序) 和 mongoid 版本,如果它们是旧的,您可能需要升级 and/or 将代码调整为你的环境。

要确定减速是发生在数据库中还是应用程序中,请使用此处所述的命令监视:https://docs.mongodb.com/ruby-driver/current/tutorials/ruby-driver-monitoring/#command-monitoring

查看与您的查询对应的日志条目,并记下它们在每个环境中的记录方式。通过实现自定义事件订阅者,您还可以保存发送的命令并验证它们在两个环境中是否相同。

我明白了!

看到生产中的请求数,立马想到了查询缓存

我找到了mongo的'identity_map_enabled'参数,所以我把它改成了true,然后跳魔法!