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?
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.
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.
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ę.