2013-09-04 2 views
0

Я следил за инструкциями, изложенными в this answer, чтобы предотвратить переход Пассажира из моего приложения после того, как он не использовался в течение нескольких минут. Однако ничто из этого не сработало.PassengerPoolIdleTime игнорируется пассажиром

Если я обновляю свой веб-сайт (который выполняется только локально на моем Mac на Apache) примерно через 1 минуту, загрузка занимает около 6 секунд. После этой долгой загрузки сайт стал быстрым, и все хорошо. Если я позволяю ему сидеть в течение еще одной минуты, освежающий снова занимает еще 6 секунд.

Вот мой /etc/apache2/other/Passenger.conf файл:

LoadModule passenger_module /Users/maq/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.14/buildout/apache2/mod_passenger.so 
PassengerRoot /Users/maq/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.14 
PassengerDefaultRuby /Users/maq/.rvm/wrappers/ruby-2.0.0-p247/ruby 

PassengerSpawnMethod smart 
PassengerPoolIdleTime 1000 
RailsAppSpawnerIdleTime 0 
PassengerMaxRequests 5000 

PassengerMaxPoolSize 30 
PassengerMinInstances 1 
PassengerEnabled on 

И я перезапуск Apache после изменения всех этих параметров.

Любые идеи, что еще может быть?

Update:

Я пытался идти по пути хрон, где я бегу хрон каждую минуту, чтобы получить доступ к веб-странице и убедитесь, что он остается в живых. Интересно, что это тоже не работает.

Он обращается к веб-странице правильно, и я вижу в своих журналах, что страница обращается каждую минуту, однако каждый раз, когда я пытаюсь получить к ней доступ в браузере через минуту или около того, сгенерированная пользователем деятельность, что 6 секунд загружаются. Что это может быть?

Примечание: Я использую Rails 4.0.

+0

Каким образом вывод данных «пассажирских» tatus' выглядят сразу после доступа к сайту? А через 1 минуту? – Hongli

+0

@Hongli они выглядят точно так же. Максимальный размер пула: 6, Процессы: 4, Запросы в очереди верхнего уровня: 0 – Snowman

ответ

0

Оказалось, что причиной моих проблем был не пассажир, а Apache и DNS.

Это проблема Mac OSX, и вы можете узнать больше о проблеме/решения здесь: http://clauswitt.com/fixing-slow-dns-queries-in-os-x-lion.html

В принципе, если у вас есть запись в файле /etc/hosts под названием:

127.0.0.1 railsapp.local 

вам необходимо добавить свою аналогию с IPv6, чтобы система не выполняла удаленный DNS-запрос:

fe80::1%lo0 railsapp.local 
Смежные вопросы