W jaki sposób został przywrócony do życia sklep internetowy?
01/09/2023Optymalizacja techniczna sposobem na poprawę wyników
18/03/2024Czego lepiej nie załączać w ustawieniach wydajności?
Jeżeli jesteś osobą, która dopiero rozpoczyna swoją przygodę z Prestashop, to niemal na pewno będziesz próbował włączyć jak najwięcej opcji. Problem jednak jest w tym, że akurat w tym przypadku, mniej znaczy więcej... znaczy szybciej.
Jakiś czas temu przyspieszanie sklepu, stało się moją pasją, albo nawet obsesją :) Jak zapewne wielu z Was, wyszukiwałem wszelkie informacje w sieci na temat tzw. cacheowania, minimalizacji kodu javascript itd. Co zrozumiałe, zdobytą wiedzę wdrażałem na bieżąco. Niestety "przeciwnik" z jakim w pewnym momencie miałem do czynienia, był odporny na te wszystkie cudowne "recepty z neta". Prawda jest taka, że nie każde ustawienie włączone na maksa, wyciska z systemu maksimum. Pomimo tego, że samo w sobie może być całkiem dobrym narzędziem, to w połączeniu z całością może nie dać dobrego rezultatu.
Przeanalizujmy zatem konfigurację, która po wielu godzinach ustawiania sprawiła, że sklep zbudowany na Prestashop autentycznie przyspieszył.
Ustawienia dotyczące SMARTY
Pierwsze ustawienia są dosyć standardowe, czyli:
- Kompilacja szablonu (skompiluj ponownie, jeżeli nastąpiła zmiana)
- Pamięć podręczna (opcja na tak, gdy oczywiście sklep jest gotowy)
- Synchronizacja wielu serwerów (opcja nie)
- Tryb cacheowania (system plików)
- Wyczyść pamięć podręczną (za każdym razem, kiedy będzie coś zmienione)
Generalnie ustawienia jak dla mnie, nie mogą być uciążliwe, stąd pewne rzeczy dzieją się z automatu, zamiast za każdym razem np. czyścić cache ręcznie.
Funkcjonalność CCC
Tak, wiem. Opcje z CSS oraz Javascript są ekstra tylko, że nie do końca to się sprawdzało i wreszcie, gdy je wyłączyłem, to dopiero wtedy, było tak jak trzeba.
- Inteligentna pamięć podręczna dla CSS (opcja nie)
- Inteligentna pamięć podręczna dla JavaScript (opcja nie)
- Optymalizacja Apache (opcja tak)
Hosting na którym to konfigurowałem, to VPS, stąd opcja Apache, zamiast Lite Speed.
Cache
Wisienka na torcie ;)
Tam jest kilka możliwości z Memcache, Memcached na czele... ale biorąc pod uwagę wcześniejsze ustawienia, to wyłączenie tej opcji zdecydowanie pomogło.
- Użyj pamięci podręcznej (opcja nie)
Redis i podsumowanie
Cichym zwycięzcą zostaje natomiast Redis :) Jest to bardzo ciekawe rozwiązanie. Baza danych, która przechowuje informacje w formie par klucz-wartość bezpośrednio w pamięci RAM. Dzięki temu, zapewnia ona błyskawiczny dostęp do konkretnych danych, eliminując konieczność przeszukiwania całej bazy. Po zabawie z innym narzędziami do cacheowania, to Redis wykonał zadanie jak trzeba.