Ile RAMu potrzebuje Spree?

Czy ktoś mógłby powiedzieć coś więcej o potrzebnej pamięci dla Spree? Albo coś o zależności traffic/memory usage? Widziałem wątki na Google Groups gdzie podawano zużycie RAMu od 150 do 250 MB. A jakie są wasze doświadczenia?

To mocno zależy od tego ile będziesz miał wystartowanych instancji, jakie obciążenie serwera itd. Ogólnie to ciężkie bydle jest, chyba za mało zakładasz.

około 200mb per instancja. Zależy od ilości rozszerzeń, użytej wersji ruby, oraz architektury (32 / 64 bit).

Od siebie dodam że im dłużej dana instancja serwuje requesty tym bardziej cieknie, po kilkunastu godzinach może urusnąć do 1GB :wink:

Samo Spree? Wydaje mi się, że robisz coś źle.

Samo Ruby -> Rails -> Aplikacja XYZ

Każdy element w różnym stopniu. Nie posiadam żadnych empirycznych danych na temat kto ile. Widze tylko na przestrzeni lat ile instancja w 1.8.6, 1.8.7, 1.8.7 ree, Rails 1.2.3, 2.0, 2.3.1, 2.3.10 etc, oraz wszelkie wersje moich aplikacji. Im dłużej proces działa tym więcej nacieknie, same symbole przecież już ciekną ;), a lata tego w Rails masa. Przepraszam jeśli offtopuje ale samo spree to tylko wierzchołek całości. Porces po odpaleniu będzie zajmował od 100 do 500 MB w zaelżnosci od tego jakiej wersji rails, ruby się użyje, po kilku godzinach to urośnie, chociaż wszystkie jeszcze zależy od tego jak ma się skonfigurowanego passengera i czy wogóle się go używa :wink:

Właśnie podejrzałem instancje passengera i zajmują po około 300 MB, ale 500 z tego co wiem nigdy nie przekroczyły i nadal uważam, że jeśli cieknie do 1Gb to coś z tym trzeba zrobić.

Te wycieki o których pisze Paweł były bardziej widoczne przy ciągle działających procesach (mongrel, thin, unicorn) i cieknących aplikacjach (a nie domyślnie w każdej). Passenger + REE (w zależności od konfiguracji, ale domyślnie tak działa) ubija co jakiś czas proces i tworzy nowy więc tego tak nie widać. Paweł: wycieki ostatecznie trzeba łatać, napisałeś to tak jakby trzeba je zaakceptować ? Jeszcze trzeba odróżnić wycieki od źle napisanej aplikacji + MRI (np. zapytanie ładujące 10,000 obiektów - GC w MRI już tej pamięci nigdy nie zwolni do systemu, itd.)

Procesy po starcie zajmują średnio 200 MB, po kilku godzinach 400-600 MB, jak ktoś odpali moduł raportów skacze to do 1.5 GB i czasami passanger nie jest w stanie tego zabić :wink: Najgorzej było włąśnie z mongrelem gdy nie było nic co by zarządzało procesami. Ale i tak uważam że Ruby potrafi ciec bardzo mocno, nie musi to być źle napisana aplikacja, wystarczy żeby była duża, 10-20 k lini kodu. Passanger bardzo pomaga, szczególnie możliwość konfiguracji jak długo proces może żyć.

U mnie max. 70 MB. Spree 0.40.3 + kilka rozszerzeń. Już kilka tygodni śmiga na serwerze i nie przekracza 70 MB.

Z życia: Belleg.de zużywa 274MB Virt, 154MB Res. Uruchomione na Winnie Cloud (Debian 64bit, REE). 64 bitowy system ma znaczący wpływ na zużycie, przy 32bit byłoby ok. połowę tego.

Nie połowę, generalnie jakieś 25% mniej. Ale to jest jeden z powodów dla których trzymam się mocno 32bitów gdzie się da.

Dziękuję wszystkim za odpowiedź.