2009-02-24 15 views
6

Używam Apache + Passenger do obsługi niektórych aplikacji Railsowych. Coś wydaje się przechodzić w trybie uśpienia, gdy nie ma prośby przez dłuższy czas. Załadowanie witryny zajmuje 10-20 sekund. Wydaje się, że jest coś, co musi się obudzić, gdy nie ma żądań na dłuższy czas.Moja aplikacja Railsowa, zasilana przez pasażerów, potrzebuje czasem dużo czasu, aby załadować

Jak mogę to naprawić? Mam wystarczającą ilość pamięci RAM, więc nie powinno być problemu, jeśli cokolwiek pójdzie spać, po prostu nie zasypia. ;)

Odpowiedz

10

Proszę spojrzeć na parametr PassengerPoolIdleTime dla pasażera. Określa maksymalną liczbę sekund, przez które instancja aplikacji może być bezczynna, zanim zostanie wyłączona w celu oszczędzania pamięci.

Wartość domyślna to 300, ale można spróbować ustawić większą liczbę i sprawdzić, czy to pomaga.

1

Ponadto, jeśli jesteś na współdzielonym hoście i nie możesz zmienić tego ustawienia, zawsze możesz napisać skrypt cron, który będzie trafiać na twoją witrynę raz na x sekund (gdzie x jest nieco krótszy niż PassengerPoolIdleTime) i aktualizować pakiet analityczny do ignorowania żądań z adresu IP skrzynki, która wykonuje polling.

1

Dokumentacja pasażerska zaleca ustawienie PassengerPoolIdleTime na 0 na niepodzielonych hostach, na których działa tylko kilka aplikacji Railsowych. To powinno zapobiec rozładowaniu, chyba że jest to absolutnie konieczne.