Mój pierwszy VPS

11 marca 2008, 14:43:37

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.

Tagi:

Komentarze do notki “Mój pierwszy VPS”:

  1. D4rky

    a nie mogles sobie ruby lokalnie skompilowac?

  2. GhandaL

    mó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”

  3. BTM

    Mó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

  4. GhandaL

    BTM: 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

  5. wijet

    Faktycznie 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.

  6. GhandaL

    na Rootnode miałem kilka aplikacji w railsach, do tej pory było ok, dopiero ostatnio Apache zaczął sypać błędami 503…

  7. Moarc/J-23

    Ja 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.
    <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…

  8. Adam Ziaja

    http://vps4less.de/virtual.php – 14 zł

  9. GhandaL

    Adam Ziaja: oferta VPS4less nie jest w żadnym stopniu atrakcyjna. Prawie wszystkie pakiety mają <= 128 MB RAM-u, łącze też nie jest najszybsze…

  10. btm

    1gb miejsca? 64mb ram? Sorry, to ja mam w ehost.pl cud VPS w takim razie ;]

Zostaw komentarz (Textile włączony):