2009-02-24 1 views
6

Я использую Apache + Passenger для размещения некоторых приложений Rails. Кажется, что что-то происходит в спящем режиме, когда нет запроса на более длительное время. Затем загрузка сайта займет 10-20 секунд. Похоже, что есть что-то, что нужно просыпаться, когда не было запросов на более длительное время.Мое приложение Rails для пассажирских поездок иногда требует долгого времени

Как это исправить? У меня достаточно ОЗУ, поэтому это не должно быть проблемой, если что-то, что идет спать, просто бодрствует. ;)

ответ

10

Посмотрите на параметр PassengerPoolIdleTime для пассажира. В нем указано максимальное количество секунд, в течение которых экземпляр приложения может простаивать, прежде чем он выключится, чтобы сохранить память.

По умолчанию 300, но вы можете попытаться установить большее число и посмотреть, поможет ли это.

1

Кроме того, если вы используете общий хост и не можете изменить этот параметр, вы всегда можете написать сценарий cron, чтобы попасть на ваш сайт каждые x секунд (где x немного меньше, чем PassengerPoolIdleTime), и обновить аналитический пакет, чтобы игнорировать запросы с IP-адреса поля, в котором выполняется опрос.

1

В документации для пассажира рекомендуется установить для PassengerPoolIdleTime значение 0 на не общих хостах, на которых запущено только несколько приложений Rails. Это должно помешать его разгрузке, если это абсолютно необходимо.