Hej.
Mam na DreamHost umieszczoną stronkę napisaną w RoR. Od jakiegoś tygodnia występują dziwne problemy z jej wyświetleniem, pojawia się komunikat: “Application error
Rails application failed to start properly”, co dziwne raz udaje mi się załadować stronkę a raz pojawia się powyższy komunikat, np. raz 2h działa poprawnie a później znowu siada i nie wyświetla się przez nasyępne 5h. W Google Analytics też obserwuję że są jakieś problemy z wyświetleniem tej strony. Na DreamHost mam też inne stronki które nie są napisane w RoR i one ładują się ok. Możecie coś poradzić ?
Z tego co pamietam to oni ubijaja dispatchery co jakis czas. Dodanie ponizszego kodu do dispatch.fcgi powinno zalatwic sprawe.
[code]RailsFCGIHandler.process! nil, 10
class RailsFCGIHandler
private
def frao_handler(signal)
dispatcher_log :info, “asked to terminate immediately”
dispatcher_log :info, “frao handler working its magic!”
restart_handler(signal)
end
alias_method :exit_now_handler, :frao_handler
end[/code]
U nich na wiki tez chyba o tym wspominaja, a moze to byl hostingrails.com.
DreamHost ostatnio jest tak fatalny, że aż ciężko w to uwierzyć. Na początku roku skopali coś w obsłudze znaków LATIN2 w MySQL i przez to zarówno mój sklep (www.ezosfera.pl) jak i Wykop.pl przestały działać. Problem był trywialny do usunięcia, ale przez 5 (PIĘĆ!) dni nie udało nam się dogadać z administratorami DreamHostu i namówić ich żeby poświęcili te kilkanaście minut na naprawę. Dostawaliśmy tylko opóźnione i wymijające odpowiedzi.
A potem zaczęły się jeszcze gorsze dramaty. Tak jak opisujesz, serwer najpierw działał przez kilka godzin a potem się zawieszał na godzinę lub więcej. Przez kilka dni miałem Error 500 przez jakieś 50% dnia (w sumie). Sam problem objawiał się tak, że strona próbowała się łączyć i po jakiejś minucie wysypywała się z komunikatem błędu.
Po wielu próbach naprawienia tego przy pomocy DH, dostałem w końcu od nich odpowiedź, że moja aplikacja zabiera za dużo pamięci. Dziwne tylko dlaczego akurat teraz zaczęły się z tym problemy. Zauważyłem za to, że ich serwer ostatnimi czasy odpala niepotrzebnie coraz więcej procesów Railsowych. Zamiast utrzymywać ich np. 3 sztuki i w ten sposób oszczędzić pamięć, to momentami widziałem, że było ich 7 lub więcej.
I tutaj właśnie uwaga do tego kodu, który podał pawel.
Zawsze miałem to wpisane do dispatch.fcgi, ale w ostatnich dniach zacząłem podejrzewać, że może to to jest powodem odpalania dodatkowych procesów przez DH. Usunąłem i faktycznie zauważyłem, że strona trochę mniej się wiesza. Oczywiście błędy 500 ciągle się pojawiają (a jakże!), ale tym razem wskakują od razu, po jakiejś sekundzie, i po zrobieniu refresh w przeglądarce (lub wejściu na stronę jeszcze raz) znikają. Serwer też dłużej jest stabilny, chociaż co 2-3 dni trzeba mu zrobić reset.
Więc choć to dalej nie jest dobre rozwiązanie, to jest to trochę mniejszy ból. A mnie to akurat ratuje, bo w następnym tygodniu powinienem mieć już gotowy serwer dedykowany i wtedy uciekam z DH
OK, podsumowując:
DreamHost jest beznadziejny, ich serwery są wolne, co chwilę coś się chrzani i do tego mają ciągłe problemy z obsługą Rails. Zdecydowanie nie polecam.
Jak już musisz, to spróbuj jednak wariant bez tego dodatkowego kodu w dispatch.fcgi. Być może tak jak u mnie, będzie Ci to lepiej działać.
to znaczy, sprostuję: ostatnio mi działa z tym dodatkowym kodem w miarę. tzn. 3 dni chyba się nic nie sypie. ale poprzednio, także z nim, nic mi nie działało.
Hm… czyli możliwe, że po prostu akurat teraz DreamHost zaczął działać znośnie. Byłoby dobrze, gdyby mu już tak zostało. Chociaż patrząc na doświadczenia ostatnich miesięcy raczej w to wątpię…
Dla mnie DH nie istnieje, wiecej zabawy niz z dedykiem i to z marnym skutkiem.
Z tego co zauwazylem:
Po deploymencie trzeba bylo ubijac procesy recznie po pidzie, bo zadna inna met. nie skutkowala.
Ruby byl 1.8.2 i przestarzale gemy (zwl. te wymagajace kompilacji) czyli skonczylo sie na wlasnej instalacji + wszystkie potrzebne liby i gemy, dodatkowo potrafili ubic kompilacje w toku bo im za duzo zasobow brala.
Dedyki sa fajne, ale za duzo zabawy z nimi. Te komputery to zazwyczaj stare graty (tzn. najtansze dedyki), backupy trzeba we wlasnym zakresie zorg. - jednym slowem atrakcja dla administratora a nie developera. Ale jak sie troche czasu poswieci to wszystko pieknie chodzi: mongrelki, rake remote:deploy itd.
Dla mnie teraz to opcja jest tylko VPS (Dedykowany Ram, ograniczona liczba klientow 10-15, dobry sprzet np. Dell PowerEdge, automatyczne backupy i inne goodies)
Szkoda sie maltretowac dzielonym hostingiem, a do dedyka tez nie kazdy ma zdrowie
Z tym killowaniem to też miałem problem, ale ostatecznie okazało się, że kombinacja poniższych dwóch poleceń usuwała wszystkie procesy (i te działające i te wiszące).
killall -9 ruby
killall -9 ruby1.8
A co do reszty… ja na razie postawiłem na dedyka, zobaczymy co z tego wyjdzie. Wiem już na pewno, że DreamHost to porażka, i chyba ciężko, żeby było gorzej, więc jestem nastawiony pozytywnie
Hej, dzięki za szeroki odzew. Z jednej strony przyznam że troszkę mnie to pocieszyło :), to znaczy… że nie jest to wina aplikacji z drugiej zaś strony szkoda ża takie rzeczy się zdarzają. Od czasu kiedy dopisałam do dispatch-a fragment kodu aplikacja działa ale w związku z tym o czym napisaliście nie wiem teraz czy to sprawa kodu czy DH wzioł w garść. Taka sytuacja (z takim samym błędem) zdarzyła mi się po raz drugi na przestrzeni 4 miesięcy.
a na DH nie można odpalić mongrela ? Ja robiłem jakieś proste benchmarki i wychodziło że nawet jeden proces mongrela jest w stanie obsłużyć mały ruch. Odpada wtedy problem dispachowania dużych ilości procesów.
[quote=darek_rusin]Z tym killowaniem to też miałem problem, ale ostatecznie okazało się, że kombinacja poniższych dwóch poleceń usuwała wszystkie procesy (i te działające i te wiszące).
killall -9 ruby
killall -9 ruby1.8
[/quote]
jeszcze czasem trzeba dispatch.fcgi usuwać osobno (ktoś wie, czemu 1 aplikacja na kilka sposobów się uruchamia?)
chyba na razie się z DH nie wyniosę, mam tam zdecydowanie za dużo rzeczy, ale faktycznie, za dobrze to nie działa. znaczy działa tak jak kosztuje.
nie można. można zagłosować, żeby wprowadzili. ja zagłosowałem.[/quote]
A no właśnie - dlatego mi się wydawało że coś robiłem z mongrelem na DH - też głosowałem