Po raz pierwszy uruchamiałem aplikację na serwerze Mongrel. Obecnie działa ona w trybie test. Zdarza się że podczas użytkowania aplikacji serwer mongrel wyłącza się. W logach nie pojawiają się informacje o błędach bądź wyjątkach. Po każdej takiej sytuacji muszę serwer ręcznie restartować logując się za pomocą ssh. Zauważyłem że serwer sypie się podczas gdy np przyjdzie do niego wiele takich samych akcji od jednego użytkownika, ale nie jestem tego pewny.
Czy możecie coś zaradzić bądź poradzić na to? Próbuję na razie zrobić skrypt, który będzie sprawdzał czy mongrel jest odpalony, a w przeciwnym razie go odpalić.
Może jak przestawię serwer na production coś to da?
Uruchamiam serwer w taki sposób:
mongrel_rails start -e test -n 128 -p 8000 -a 0.0.moje.ip.0 -l log/mongrel_0.log -P tmp/pids/mongrel_0.pid -c /home/users/admin/rails/MojaAplikacja -d -B
Czy rozważałeś użycie Passengera? Jest moduł dla Apache’a i Nginxa, a konfiguracja i ogólne zarządzanie znacznie prostsze niż w przypadku Mongrla/klastra Mongreli.
Dziękuję za posty, spróbuję najpierw zmienić z wersji test na production.
W ogóle to aplikacja jest ciągle jeszcze rozwijana i chciałem oglądać wyjątki itp. Wiem że powinno się stosować wersję development, ale strasznie muli mi cała aplikacja i wiem że aplikacja Flex-owa pobierająca xml-e z akcji nie chciała współpracować.
Na lokalnym komputerze używam Webricka i wszystko śmiga szybko, natomiast wersja udostępniona na mongrelu z opcją development nieziemsko przymula, chociaż serwer jest szybki.
Development przymula zapewne dlatego, że całe cachowanie (łącznie z klasami i strukturą tabel w bazie) jest wyłączone. Więc przy każdym requeście wszystko jest ładowane.
Development env odpala się lokalnie podczas programowania i sprawdzania na bieżąco wszystkiego, z kolei test podczas uruchamiania testów automatycznych.
Jeśli apka nie jest gotowa do uruchomienia w środowisku produkcyjnym, zwyczajowo odpala się ją w środowisku staging, chociaż poza różnicą w nazwie bardzo często innych różnic nie ma pomiędzy nimi.
Na stagingu też można dość łatwo podejrzeć wszystkie szczegóły requestów (podobnie, a nawet lepiej niż logi mongrela) korzystając z pluginu Rack::Bug.
Moją aplikację odpaliłem w trybie development oraz w trybie production pod Mongrele. Ustawiłem inne połączenia z bazą, a także aplkacja była w dwóch różnych folderach. Jedna już działa w trybie produkcyjnym, a druga będzie udoskonalana.
Wszystko fajnie działało, aż do dzisiaj. Aplikacja w trybie development działała a ta w trybie production już nie
Przejrzałem logi i nic niepokojącego nie zauważyłem. Było żądanie do akcji zarówno w pliku mongrel jak i w pliku production i potem już nic.