Poziom: 0 | Kategoria: Komputerowo-internetowo, Ruby, Ruby on Rails, Techblog, Web Design.
Ponieważ zaczęły mnie denerwować timeouty w przekazywaniu żądań z Apache do mongreli na Rootnode zacząłem rozglądać się za czymś lepszym. Pod uwagę brałem VPS-y w cenie do ok. 60zł za miesiąc. Postanowiłem w najbliższych miesiącach przetestować kilka z nich. Na pierwszy ogień poszedł ProVPS. Za tym rozwiązaniem przemawia lokalizacja serwerów w Polsce, w Gdańsku, a co za tym idzie niskie pingi, w granicach 35-45ms. Jednak na tym plusy się kończą (porównując do reszty ofert branych pod uwagę). Za 49 zł netto miesięcznie dostajemy gwarantowane 128 MB RAM-u, rozszerzane do 512 MB, 5 GB powierzchni dyskowej, 25 GB transferu miesięcznego oraz 1 adres IP. Na tle konkurencji trochę blado.
Wczoraj aktywowano mi VPS i spędziłem kilka ładnych godzin na konfigurowaniu poszczególnych części systemu. Postanowiłem uruchomić minimum usług, głównie po to, by zmieścić się w drakońskich limitach pamięci. Niestety musiałem zrezygnować z mySQL, ponieważ nie znalazłem sposobu na ograniczenie konsumpcji pamięci do akceptowalnego na tym serwerze poziomu — po uruchomieniu mysqld konsumował ok. 100 MB pamięci operacyjnej pomimo przeróżnych konfiguracji znalezionych w sieci i w dokumentacji mySQL. Zaminiłem mySQL na PostgreSQL i tutaj małe zaskoczenie — domyślna instalacja postgresa zużywa ponad połowę mniej pamięci niż mySQL!
Gdy baza danych była już gotowa, nadszedł czas na serwer WWW. Wybór oczywiście padł na nginx, o wiele lżejszy od Apache'a serwer plus load balancer. Na VPS-ie będą uruchamiane jedynie statyczne pliki oraz aplikacje w Railsach i Merbie (w liczbie max. 3 — patrz pamięć). Z konfiguracją nginxa nie było żadnych problemów, świetną konfigurację dla aplikacji railsowych w obsługą cache przygotował Ezra Zygmuntowicz. Konfiguracja ta dostępna jest na jego stronie.
Następną rzeczą do zrobienia była kompilacja Ruby, Rubygems, ImageMagick oraz instalacja Subversion. Oczywiście po drodze były mniejsze komplikacje — a to zabrakło biblioteki zlib, a to nie zainstalowałem libsqlite3-dev. W każdym razie po mniej więcej 5 godzinach miałem już działającego Postgresa, nginxa, SVN, Ruby+Rails i całą resztę potrzebnych do życia aplikacji.
Nadszedł czas na sprawdzenie, czy praca nie poszła na marne. Zgrałem pisaną ostatnio aplikację, zmigrowałem bazę, ustawiłem dwie instancje serwera thin i uruchomiłem je. Et voilà! Wszystko ruszyło i działa jak należy i, co najważniejsze, naprawdę dużo szybciej niż na Rootnode, gdzie aplikacja stała poprzednio.
Nieprzespana noc z konfiguracją serwera za mną, ale za miesiąc prawdopodobnie czeka mnie następna, ponieważ, jak pisałem na wstępie, mam w planie przetestowanie kilku dostawców, którzy mają mniejszy miesięczny abonament i gwarantują 2x więcej pamięci, co dla mnie jest rzeczą ważną. Zastanawiam się, czy sensowne będzie kupowanie VPS-a w USA. Na mojej liście jest Slicehost oraz SilverRack z całkiem niezłą ofertą za niewielkie pieniądze. Z drugiej strony za zachodnią granicą mamy Host Europe, również z ciekawą ofertą i niskimi pingami.
Pomimo dużo większych nakładów czasowych myślę, że nie wrócę już do dzielonego hostingu. VPS i serwer dedykowany daje tę wolność, jakiej nie ma na żadnym dzielonym hostingu (Rootnode jest bardzo liberalne, ale, np. nie mogłem doprosić się o aktualizację Ruby do wersji 1.8.6, ponieważ ma "za dużo zależności"). Pamiętać trzeba oczywiście o tym, że samemu trzeba dbać o stabliność i bezpieczeństwo danych na takim serwerze, ale to z kolei wymusza pewną pracę i naukę, która później nie zginie.
PS. Jakby ktoś z czytających miał wiedzę na temat tego, jak ograniczyć zużycie pamięci przez mySQL, proszę o kontakt.
a nie mogles sobie ruby lokalnie skompilowac?
11 marca 2008 o 14:54:21móc mogłem, ale i tak miałem już bałagan w ~/. Poza tym miałem problemy z proxy na linii Apache-mongrel, co skutkowało niejednoktotnie „error reading from remote server”
11 marca 2008 o 14:56:21Mój mysql zjada aktualnie ~38mb. Łap skrypta (http://anfo.pl/static/tuning-primer.sh) który pomaga w konfiguracji mysql analizując i pokazując co można zmienić – jak masz plesk’a i odpalisz jako admin to sam sobie hasło znajdzie, jak nie, poprosi.
Jakby co mogę podesłać swój my.conf
11 marca 2008 o 15:11:09BTM: dzięki za skrypt, ale jeśli mógłbyś to byłbym wdzięczny jeszcze za my.cnf, np. na ghandal (na) ghandal.net
11 marca 2008 o 15:24:13Faktycznie swoj vps to wolnosc, chyba lepszy bedzie serwer europejski, np emcwebhosting.com, dobry stosunek ceny do mozliwosci z tego co widze.
Ciekawi mnie jakie timeouty miales pomiedzy mongrelem a apachem. Mam blog na Rootnode i nie odczuwam czegos takiego.
11 marca 2008 o 17:20:20na Rootnode miałem kilka aplikacji w railsach, do tej pory było ok, dopiero ostatnio Apache zaczął sypać błędami 503…
11 marca 2008 o 17:23:04Ja dostałem na prywatnym (?) albo biurowym serwerze VPS-a. System własnoręcznie wybierany (każdy :) ja wybrałem Gentoo), dostęp po VNC albo SSH.
13 marca 2008 o 18:15:27<a href=„http://moarc.jogger.pl/2008/03/09/vps/”>http://moarc.jogger.pl/2008/03/09/vps/</a>
Ech, to Textile… nie można po ludzku dać (X)HTML-owego linka…
http://vps4less.de/virtual.php – 14 zł
13 marca 2008 o 18:34:55Adam Ziaja: oferta VPS4less nie jest w żadnym stopniu atrakcyjna. Prawie wszystkie pakiety mają <= 128 MB RAM-u, łącze też nie jest najszybsze…
13 marca 2008 o 18:37:111gb miejsca? 64mb ram? Sorry, to ja mam w ehost.pl cud VPS w takim razie ;]
13 marca 2008 o 18:50:17