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,然后跳魔法!
我的 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,然后跳魔法!