Najmniejszy możliwy RAMowo serwer pod RoR

Witam,

Chciałbym przenieść stronę hostowaną obecnie na rootnode na VPSa.
VPS ma gwarantowane 512 MB ramu z limitem do 1024MB.

Obecnie na serwerze stoi Apache + PHP, Memcache i MySQL z jakimś tam cachem.

Tu pojawia się pytanie.

O ile jestem w stanie obciąć trochę ilość wątków w apache, zmniejszyć bufor mysqla, i pamięć dla memcacched to
nie wiem ile zajmuje pamięciowo obsługa RoR’a

Którą z implementacji Rubiego polecilibyście do tego, czy są jakieś gotowe małoramożerne rozwiązania?

EDIT:
Poniższe, kupno dodatkowego serwera niestety odpada.
Pytanie czy przejście na Lighttpd albo nginx i użycie np Ruby 1.9.2 pozwoli na najmniejsze możliwe zuużycie RAMu?

Polecam - od 24zł/miesiąc.

Wystarczy z dużym zapasem.
Instancja aplikacji w Rails zajmuje od 40 do 100 MB ram (no dobra, można więcej, ale mówię o przeciętnych aplikacjach). Spokojnie więc starczy na jakieś 3 procesy, serwer http (apache lub nginx), mysql (bez specjalnego tuningowania, a i może nawet “w górę” dla poprawy wydajności kosztem ramu) i niewielki memcached (na przykład około 32MB).

Teoretycznie Ruby Enterprise Edition (REE) pozwala obciąć zużycie ramu o 20-30% na proces, ale

  • to ruby 1.8.7, a jeśli Twoja aplikacja może pójść na 1.9.2, to jest to wysoce wskazane (bardzo!)
  • zdarzają się bugi w lub powodowane przez REE, ich wyłapywanie i usuwanie wspominam jako koszmar

Wystarczy z dużym zapasem.
[…][/quote]
dzięki za odpowiedź,
obadam R 1.9.2 + Lighttpd + Thin i zobaczę jak się to wymiesza

Wystarczy z dużym zapasem.
Instancja aplikacji w Rails zajmuje od 40 do 100 MB ram (no dobra, można więcej, ale mówię o przeciętnych aplikacjach).[/quote]
Jak używasz Rails 3.0.7 to nawet 2GB może być za mało dla prostej aplikacji!
Tak, wiem czepiam się.

[quote=Tomash]Teoretycznie Ruby Enterprise Edition (REE) pozwala obciąć zużycie ramu o 20-30% na proces, ale

  • to ruby 1.8.7, a jeśli Twoja aplikacja może pójść na 1.9.2, to jest to wysoce wskazane (bardzo!)[/quote]
    Co może spowodować że aplikacja nie pójdzie?

[quote=rtqsd]dzięki za odpowiedź,
obadam R 1.9.2 + Lighttpd + Thin i zobaczę jak się to wymiesza[/quote]
Bardzo niestandardowy stos (zwłaszcza lighttpd), na początek naprawdę lepiej spróbować z Passengerem (czyli Apache lub Nginx). Łatwiej skonfigurować i odpada Ci kwestia ręcznego zarządzania ilością procesów.

3.0.7 w trybie development lubi wycieknąć, to prawda. Ale w trybie produkcyjnym, jeśli dobrze pamiętam, już jest spokój.

Niekompatybilne z 1.9.2 gemy.

REE naprawdę daje rewelacyjne rezultaty - 1/3 pamięci przy ograniczonych zasobach jest zauważalna). Co do bugów, to zgadzam sie z Tomashem. Jeśli ma byc 1.8.7 to spróbuj REE, jeśli będą dziwne problemy (nas dręczyło kiedyś segmentation fault), to po prostu przełącz sie na zwykłą wersję.

Jak używasz 3.0.7, to powinineś zrobić update do 3.0.10

to może trochę pospamuje,
aplikację udało się postawić,

nginx + thin/unicorn dają naprawdę ciekawe rezultaty,
unicorn o dziwo był wolniejszy od thina, nawet na kilku wątkach

zużycie pamięci wynosiło jakieś 40mb na proces ruby (z kombo 1.9.2@rvm),

wniosek mam z zabawy taki że da się na naprawdę małym VPSie postawić szybkie mysql+memcached+nginx i do tego Ruby i PHP przez FCGI