Procesy Thina pożerają z biegiem czasu coraz więcej pamięci

Tak wyglądają dane z top przed i po service restart thin:

Mem:  12318872k total, 12245788k used,    73084k free,   196856k buffers
Mem:  12318872k total,  2787580k used,  9531292k free,   201004k buffers

Przy 7 procesach, w ciągu kilku dni uzbierało się 9GB, to za dużo na jakieś cache. Czy można zrobić bug w aplikacji powodujący wycieki pamięci? Czy ktoś spotkał się z czymś takim przy Thinie?

Prawdopodobnie nie sam thin ale Twoja aplikacja rezerwuje pamięć. To trochę przerażające, ale Ruby nie oddaje pamięci do systemu po tym jak raz ją zarezerwował. Przyczyną może być ładowanie dużych plików do pamięci, albo tworzenie symboli dynamicznie, ze Stringów (te nie znikają nigdy).

Jaki Ruby? 1.8?

Plików dużych nie ładuję. A o co chodzi z tymi symbolami tworzonymi ze stringów? Można jaśniej? :stuck_out_tongue:

Ruby 1.8.7.

Spróbuję po restarcie obciążać różne funkcje aplikacji, może ustalę w ten sposób które metody pożerają tą pamięć.

Plików dużych nie ładuję. A o co chodzi z tymi symbolami tworzonymi ze stringów? Można jaśniej? :P[/quote]
Symbole są globalne dla interpretera i tym samym nie są usuwane przez śmieciarza:
http://www.tricksonrails.com/2010/06/avoid-memory-leaks-in-ruby-rails-code-and-protect-against-denial-of-service/

"jakis string".to_sym

ale to by była jakas abstrakcja, żeby to tak szybko pożerało pamięć.

http://support.newrelic.com/discussions/support/2247-how-to-monitor-memory-usage-issues

może coś w tym wątku znajdziesz

Dzięki za linki, jestem w trakcie czytania. Spróbuję też monitorowania pamięci używając gemów wymienionych na forum Newrelic.