Skocz do zawartości
darnook

Skrypt lub rozwiązanie SaaS dla obsługi ogromnego sklepu

Polecane posty

Witajcie

Walczę z projektem sklepu w którym tylko jeden dostawca posiada ponad 21tys dostępnych produktów.

Te produkty opisane są średnio ponad 40 cechami które są wymagane dla wyszukiwarki parametrycznej.

 

Powiem jedno. O ile sama ilość produktów nie stanowi problemu dla PrestaShop o tyle już ilość rekordów (250k sic!) dla tabeli ps_product_features (~~21MB) powoduje niemały zawał skryptu przyprawiający serwer o symptom ataku DDoS... ;)

Sprawdzałem wszelkie możliwe ustawienia, serwery (hosting, dedyk, vps, local!) i mogę stwierdzić że

najlepiej działa oczywiście localhost ;) ale i tak z czasem ładowania strony kategorii różowo nie jest ~20/30 sek...

Najmilej zaskoczył mnie biznesowy hosting Home.pl... równie dobrze co localhost a czasami nawet lepiej :o...

 

Najgorzej wypadają VPS (homecloud) oraz dedyki (kimsufi coprawda...) - sypią błędami 500 po paru sekundach...

 

Jeśli nie PrestaShop to co sugerujecie z własnych doświadczeń?

Dodam że te 21k produktów to jest dopiero początek... (sic! x2) docelowo ponad 20 dostawców...

 

Chciałem spróbować usługi WPro na linuxpl - LiteSpeed oraz mysql na SSD brzmią zachęcająco ale mam problem z... UPC i łączem do hostingu ;/

 

Sądzę że długie czasy oczekiwania to w olbrzymiej kwestii sprawka zapytań do bazy MySQL. Sądzicie że baza danych na dyskach SSD w raid będzie w stanie to udźwignąć w rozsądnym czasie odpowiedzi z 20/30 sek do 5/10?

 

Dla zobrazowania problemu

http://www.digikey.com/product-search/en/integrated-circuits-ics/embedded-microcontrollers/2556109to jest żądany efekt...

 

Edytowano przez darnook (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Opisywane przez Ciebie ilości rekordów przy odpowiedniej konfiguracji serwera mysql nie są problemem, przyznam szczerze, nie pracowałem nigdy na prestashop ale mam inny system autorski który bezproblem obsługuje takie ilości danych przy dobrej optymalizacji skryptu oraz indeksach w bazie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ile ta baza waży? Ona się powinna w całości zmieścić w pamięci na większym VPS-ie albo dedyku.

 

Do tego potrzebujesz cache. Przynajmniej popularniejsze produkty powinny się wczytywać normalnie (czyli w mniej niż sekundę).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hej

No tak to teraz wygląda...

post-23347-0-55272700-1427712745_thumb.jpg

 

 

Gutek masz może jakieś demo do pokazania w działaniu ? zaciekawiłeś mnie (priv?)

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czyli raczej trzeba szukać rozwiązania tego problemu nie w konfiguracji sprzętowej lecz raczej w konfiguracji/optymalizacji samej bazy danych?
Jeśli chodzi o optymalizację która dotyczyłaby kompletnego jej przebudowania (tabel, powiązań) to chyba będzie niemożliwe albo conajmniej nie łatwe... ;/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Te bazy nie mają 100MB. Tutaj dysk nie powinien mieć znaczenia. Chociaż pewnie inne rzeczy (zdjęcia?) doczytujesz z dysku, więc lepiej mieć SSD.

 

Co zajmuje 30s? Otworzenie strony przedmiotu? Czy jakieś złożone zapytania z wyszukiwarki?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dokładnie jak wyżej, ta baza jest malutka :) Aczkolwiek niektóre współdzielone hostingi takie jak nazwa.pl/home.pl mogą sobie z nią nie radzić.

Po pierwsze zoptymalizuj sobie bazę danych i odpowiednio skonfiguruj (http://mysqltuner.com/), zobacz wolne zapytania. I jak na localhost Ci się ładuje 20-30 sekund to coś na pewno nie jest okej. Na koniec zainwestuj w cache.

Edytowano przez Viperoo (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sęk w tym że sklep jest w zasadzie gotowy (detale jak konfiguracja płatności, regulamin itp)

Problem powoduje odpalenie strony kategorii gdzie uruchomiony jest moduł BlockLayered odpowiedzialny za wyświetlenie parametrów produktów (cech, atrybutów) i ich wyszukanie.

Jego wyłączenie powoduje częściowe poprawienie odpowiedzi i czasu wczytania.

 

Mam pewien pomysł który wpadł mi teraz do głowy. Każda cecha ma w nawiasie pokazane ile produktów ją zawiera: szybkość (xxxx)

Zobaczę czy wyłączenie liczenia ilości jest w stanie poprawić wydajność

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ja bym na Twoim miejscu wyliczenia wykonywał raz dziennie w nocy i zapisywał a wyświetlana była by wartość wcześniej zapisana

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No Panowie. Dziękuję za naprowadzenie mnie na źródło problemu.

Udało mi się zejść na localu i na home.pl (business hosting) do niewyobrażalnej jeszcze rano wartości 6-9 sekund.

Zdecydowanie pomogło to o czym wspomniał gutek i ja wcześniej. Wyłączenie zliczania ilości produktów dla każdej z cech + wywalenie śmieciowego kodu z modułu BlockLayered + usprawnienie zapytania zaczerpnięte z Issue Trackera Prestashop.

 

W domu sprawdzę jak działa ta sama konfiguracja ale na SSD. Jeśli uda się zejść do wartości ok 3-6 sekund to będę w niebie :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×