Медленная обработка запросов в рельсах, сообщение «ожидание сервера» - PullRequest
2 голосов
/ 18 июля 2010

У меня довольно большое приложение, запущенное изнутри расширения spree.Теперь проблема в том, что все запросы очень медленные, даже локально.Я получаю сообщения типа «Ожидание локального узла» или «Ожидание сервера» в строке состояния моего браузера в течение 3-4 секунд для каждого отправленного запроса, прежде чем он начнет выполняться. Я вижу, что время выполнения, зарегистрированное в файле журнала, довольно хорошее. Нообщее время отклика невелико из-за начальной задержки. Поэтому, пожалуйста, подскажите, с чего мне начать улучшать эту ситуацию?

Ответы [ 2 ]

0 голосов
/ 18 июля 2010

Как только вы отправите запрос, вы увидите «ожидающий хост» вплоть до завершения работы Ruby, и он начнет отправлять ответ.Итак, если есть какая-то обработка, которая замедляет вас, вы увидите эту ошибку.То, что вы хотели бы сделать, это начать смотреть на функции, на которых вы видите поведение, и разбивать их на части, чтобы увидеть, какие кусочки работают медленно.Если ВСЕ медленно, то вам нужно взглянуть на то, что является общим для каждой функции - перед функциями, или кодом Application Controller, или чем-то подобным.То, что я делаю, когда я просто играю, чтобы увидеть, что мне нужно исправить, это просто помещает операторы put в код на разных этапах, чтобы вывести текущее время, тогда я вижу, какая стадия занимает много времениты знаешь?

0 голосов
/ 18 июля 2010

Одной из возможных первопричин такого рода проблем является то, что исходное разрешение DNS-имени не удается до окончательного решения.Вы можете проверить, так ли это, используя tcpdump (если это доступно для вашей платформы) или wireshark .Найдите порты к вашему клиентскому хосту на порту 53 и посмотрите, происходят ли своевременные ответы с именами.

Если выясняется, что это проблема, вам нужно убедиться, что клиентнастроен так, что первый распознаватель знает о адресах вашего сервера (полагаю, это локальные адреса локальной сети, которые не работают).Различные платформы имеют разные способы настройки этого.Быстрым хаком было бы поместить адрес вашего сервера в файл hosts клиента, чтобы посмотреть, исправит ли он это.

...