Подтвердить что ты не робот

Сайт находится под большой нагрузкой + ROR

Мы запускаем веб-сайт с ROR на CentOS 6 с 2 веб-серверами и 1 сервером баз данных. Несколько раз он показывает сообщение "Веб-сайт находится под большой нагрузкой"... Может ли какая-нибудь помощь помочь вам проверить здесь.

Мы используем Passenger 4.0.21 с Ruby 1.8.7 и Apache 2.2.15. Веб-сервер работает со значениями по умолчанию.

Ниже приведена информация о статусе пассажира:

# статус пассажира

Version : 4.0.21
Date    : Thu Dec 12 02:02:44 -0500 2013
Instance: 20126
----------- General information -----------
Max pool size : 6
Processes     : 6
Requests in top-level queue : 0

----------- Application groups -----------
/home/web/html#default:
  App root: /home/web/html
  Requests in queue: 100
  * PID: 20290   Sessions: 1       Processed: 53      Uptime: 24h 3m 5s
    CPU: 0%      Memory  : 634M    Last used: 23h 16m 8
  * PID: 22657   Sessions: 1       Processed: 37      Uptime: 23h 15m 55s
    CPU: 0%      Memory  : 609M    Last used: 22h 44m
  * PID: 29147   Sessions: 1       Processed: 146     Uptime: 20h 47m 48s
    CPU: 0%      Memory  : 976M    Last used: 18h 20m
  * PID: 22216   Sessions: 1       Processed: 26      Uptime: 10h 3m 19s
    CPU: 0%      Memory  : 538M    Last used: 9h 44m 4
  * PID: 23306   Sessions: 1       Processed: 75      Uptime: 9h 43m 22s
    CPU: 0%      Memory  : 483M    Last used: 8h 44m 4
  * PID: 25626   Sessions: 1       Processed: 115     Uptime: 8h 46m 42s
    CPU: 0%      Memory  : 540M    Last used: 7h 59m 5
4b9b3361

Ответ 1

У вас слишком много запросов в очереди. Начиная с версии 4.0.15 существует предел, который по умолчанию равен 100. Вот краткий отрывок из http://blog.phusion.nl/2013/09/06/phusion-passenger-4-0-16-released/, в котором говорится:

Phusion Passenger теперь выводит сообщение об ошибке клиентам, если слишком много запросы помещаются в очередь, а не позволяют им ждать. Этого достаточно улучшает качество обслуживания. По умолчанию "слишком много" - 100. Вы можете настройте его с помощью PassengerMaxRequestQueueSize (Apache) или passenger_max_request_queue_size (Nginx).

Посмотрите на руководство пользователя по этому вопросу: http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequestQueueSize

Вы можете попробовать увеличить его или установить его на 0, чтобы отключить его.

ИЗМЕНИТЬ

Вы также должны проверить свои журналы, чтобы увидеть, есть ли запросы, которые занимают слишком много времени. Возможно, у вас есть некоторые процессы в коде, которые занимают слишком много времени. Я предпочитаю использовать NewRelic для наблюдения за этими вещами.