Hej!
Postawiłem jakiś czas temu sklep na spree z dosyć sporym ruchem (22k sesji na mc) i mam potężny problem z wydajnością. Przez większość czasu wszystko jest ok ale od czasu do czasu wszystkie wskaźniki na newrelic skaczą do góry, serwer się zmula, strona przestaje działać i jedyne co mogę wtedy zrobić to go zrestartować. Np. tak wyglądała sytuacja wczoraj wieczorem:
Ciężko mi powiedzieć co się konkretnie wtedy działo na serwerze ale z tego co wiem admin wrzucał dużo zdjęć i przestawiał produkty w taxonach. Swoją drogą taxony to często pojawiający się temat - np. w zestawieniu najkosztowniejszych requestów i kontrolerów/akcji, strona z listą produktów w kategorii (czyli bodajże właśnie TaxonsController#show) jest na mocnym pierwszym miejscu i rozkład czasowy wygląda tak:
Jak widać najwięcej zajmuje wyrenderowanie partiala z produktem. Problem polega na tym, że używam domyślnego partiala stworzonego przez spree, nie nadpisuję go.
Strona główna sklepu to lista produktów we wszystkich kategoriach (czyli taxons controller właśnie) więc domyślam się, że kiedy ruch wzrasta to wychodzi jakiś problem z tym kontrolerem i partialem produktu i serwer się zatyka.
Generalnie najrozsądniej by chyba było powiększyć serwer ale z tego co widzę jego parametry powinny być wystarczające dla instancji spree, którą serwuję więc postanowiłem spróbować szczęścia na forum. Jeśli ktoś z Was ma jakieś dodatkowe pytania to śmiało, pytajcie, chętnie zrobię wszystko żeby rozwiązać ten problem.
Będę ogromnie wdzięczny za jakąkolwiek pomoc i wskazówki. Z góry dzięki!
- ruby 2.2.1
- rails 4.2.0
- spree 3.1.0 beta
- 2GB RAM
- ~ 2000MHz