Własny VPS

Znów trochę czasu minęło od ostatniego posta, ale tym razem i temat i środowisko inne :)

Z racji iż postanowiłem w końcu darować sobie hosting współdzielony (mimo iż ten na Webio był całkiem niezły i nie miałem raczej powodów do narzekania, to nastąpił jednak moment, w którym już nie wystarczał i ograniczał) i zakupić na początku małego VPS-a, to musiałem wcześniej zainwestować trochę czasu w przypomnienie sobie Linuxa, jego obsługi, etc. Do tego administracja tym systemem była dla mnie cokolwiek nowością - tego musiałem się w sumie nauczyć i zgłębić temat.

Wybrałem na początek najmniejszą instancję z Ubuntu na pokładzie z oferty DigitalOcean i muszę przyznać, że jestem zachwycony. Początkowo trochę się obawiałem, czy 512 MB ramu wystarczy do jego poprawnej pracy - czyli do udźwignięcia bazy MySQL, kilku stronek, bloga i aplikacji webowych, ale okazuje się, że jest to ilość wystarczająca do porządnej pracy i do tego przy minimalnym obciążeniu.

Kilka lat doświadczenia tylko z platformą Microsoftu, czy to w kwestii serwerów, czy desktopów jest w stanie zepsuć poczucie racjonalności odnośnie doboru parametrów do maszyny, którą ma zamiar się zakupić - jako, że 512MB ramu to byłaby ilość wystarczająca (albo i nie) na poprawne działanie samego systemu. O dodatkowym oprogramowaniu można byłoby zapomnieć. Jeśli do tego doliczyć takie niuanse jak brak normalnej konsoli, brak SSH, czy mocno żałosny uptime, to aż się człowiek zastanawia, kto to kupuje. No, ale mniejsza - kto racjonalny używa Windowsa jako systemu serwerowego? :)

W każdym razie, okazuje się, że wystarczą tylko chęci i zapał by poprawnie skonfigurować usługi, zabezpieczyć system i bazę danych bez jakiejś specjalistycznej wiedzy na temat systemów unixowych. Oczywiście są rzeczy, których uczę się w trakcie, jak na przykład dzisiejszy problem z MySQL. O dość losowej godzinie baza miała awarię i przestała odpowiadać. Z racji iż codziennie korzystam z różnych rzeczy, które tej bazy używają dość szybko zorientowałem się o niedostępności i rozpocząłem badanie co poszło nie tak.

Okazuje się, że logi MySQL są bardzo pomocne w dochodzeniu problemów (przynajmniej tego jednego - wcześniej nie potrzebowałem specjalnie z nich korzystać) i okazało się, że stała się rzecz całkiem głupia - zabrakło pamięci.

xxxxxx 19:59:20 InnoDB: Fatal error: cannot allocate memory for the buffer pool

Na Linuxie brak pamięci nie jest niczym problematycznym o ile skonfiguruje się wcześniej SWAP file, co po polsku nazywamy chyba przestrzenią wymiany. Z tego co widziałem analizując problem, VPSy domyślnie są udostępnione bez takowej przestrzeni skonfigurowanej. Dlatego, konfigurując nowy VPS, warto pamiętać o SWAP, aby ustrzec się nieprzyjemności. Zapewne problem jest oczywisty i znany wszystkim specjalistom, ale dla tych dopiero rozpoczynających swoją przygodę z Linuxem na serwerach być może nie. Dla mnie była to nowość :)Żeby nie było - instalując samemu nowy system z płytki na ogół się ustrzeżemy przed tym, gdyż większość instalacji albo automatycznie sama konfiguruje plik SWAP, albo przy wyborze partycji, na której ma zostać zainstalowany Linux, wskazuje i nakazuje potrzebę utworzenia takiego pliku.

Znając już problem rozwiązanie jest trywialne i tutorialowe:

Instrukcja utworzenia pliku SWAP na Ubuntu

Instrukcja jest nawet w kategorii samouczków na DigitalOcean i nawet nie wiem czemu ją przeoczyłem :)

I przy okazji kilka słów o samym DigitalOcean - może się komuś przydać jak sam się rozgląda za przyzwoitym VPSem.

Logo DigitalOcean

Zalety

  • śmiesznie tani ($5 / mies.)
  • brak problemów technicznych po stronie dostawcy
  • dostępna lokalizacja europejska - Amsterdam
  • wysoki uptime
  • łatwy system rozliczeń i opłat (PayPal lub karta)
  • okres próbny i czasami można się załapać na bonusy
  • całkiem łatwa konfiguracja NS
  • bezpłatny backup
  • bardzo dobre tutoriale i samouczki dla osób dopiero zaczynających

Także jakby się ktoś zastanawiał cały czas nad wyborem VPS zastanawiał, to gorąco polecam :)