Rails - Mongoid: медленная проблема между производством и разработкой - PullRequest
0 голосов
/ 23 мая 2019

У меня проблема с приложением Rails.

Я нахожусь в версии 3.2.22 рельсов и 2.2.5 ruby ​​для подключения к mongodb 2.6 .

Проблема в том, что у меня огромная разница в производительности при простых или даже более сложных запросах.

Например:

Я запускаю rails c development, а затем выполняю свою функцию (довольно сложную), она отвечает через 30 секунд Я запускаю рельсы c production, я выполняю ту же функцию, что и предыдущая, она отвечает через 6 минут 30 секунд, в 7 раз медленнее. Поэтому я пытаюсь скопировать вставленную конфигурацию «разработка» в «производство», но результат остается тем же, что и для Gemfile.

Я смотрю во всем коде проекта никакой разницы между средой производства и разработки.

Знаете ли вы различия в сердце рельсов между этими двумя средами? кто-нибудь сталкивался с проблемой?

Важно отметить, что я, конечно, подключаюсь к к той же базе данных .

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Я получил это!

Когда я увидел количество запросов в работе, я сразу подумал о кеше запросов.

Я нашел параметр "identity_map_enabled" для Монго, поэтому я изменил его на true, и хоп магия!

0 голосов
/ 25 мая 2019

Вы не указали свои версии mongo (драйвер Ruby) и mongoid, если они устарели, вам может потребоваться обновить и / или настроить код в соответствии с вашей средой.

Чтобы определить, происходит ли замедление в базе данных или в вашем приложении, используйте команду мониторинга, как описано здесь: https://docs.mongodb.com/ruby-driver/current/tutorials/ruby-driver-monitoring/#command-monitoring

Посмотрите записи в журнале, соответствующие вашим запросам, и запишите, как они ведут журнал в каждой среде. Реализуя настраиваемого подписчика на события, вы также можете сохранить отправляемые команды и убедиться, что они идентичны в двух средах.

...