Serwer dla PrestaShop – jak wybrać, żeby sklep działał szybko

Przy wyborze serwera pod PrestaShop większość osób porównuje dwie liczby: pojemność dysku i liczbę rdzeni procesora. Z mojego doświadczenia wynika, że o tym, czy sklep działa szybko, decydują nie tylko wspomniane parametry. Liczą się również wydajność pojedynczego rdzenia procesora i szybkość dysków. Poniżej wyjaśniam dlaczego i pokazuję trzy sklepy, w których właśnie to było źródłem problemów.

Dlaczego wydajność pojedynczego rdzenia jest ważniejsza niż liczba rdzeni

Każde wyświetlenie strony, wyszukiwanie produktu czy import danych w PrestaShop to skrypt PHP, który wykonuje się na jednym rdzeniu procesora. Tak działa PHP. Serwer z 16 wolnymi rdzeniami nie wygeneruje strony szybciej niż serwer z 4 szybkimi – z większą częstotliwością taktowania pojedynczego rdzenia. Jedna operacja i tak korzysta tylko z jednego rdzenia.

Liczba rdzeni ma znaczenie przy dużej liczbie jednoczesnych odwiedzin, bo pozwala obsłużyć wiele żądań równolegle. A więc sprawdzi się w przypadku dużych serwisów z dużą ilością jednoczesnych żądań. Czas obsługi pojedynczego żądania, czyli to, co klient odczuwa jako „szybkość sklepu”, zależy jednak od wydajności jednego rdzenia: jego taktowania i generacji procesora.

Dlatego tani serwer z dużą liczbą starszych, wolniejszych rdzeni często okazuje się gorszym wyborem niż serwer z mniejszą liczbą nowoczesnych, szybkich rdzeni.

Dobrze pokazuje to przypadek z mojej praktyki: aplikacja PHP działająca w AWS na instancji z 2 rdzeniami obciążała procesor w 60-80%. Po przeniesieniu na instancję z tą samą liczbą rdzeni i pamięci, ale z nowszym procesorem o stałej wydajności, obciążenie spadło do 20–30%.

Szybkość dysku a baza danych sklepu

Sklep z kilkoma tysiącami produktów, kombinacjami, cenami i stanami magazynowymi to baza danych, do której przy każdym wyświetleniu strony trafiają dziesiątki zapytań. Przy wyszukiwaniu, filtrowaniu czy imporcie są ich tysiące. Jeśli dysk odpowiada wolno, procesor czeka na dane, a klient na stronę.

Pojemność dysku ma tu drugorzędne znaczenie. Typowy sklep PrestaShop mieści się z dużym zapasem na każdym współczesnym serwerze. Liczy się to, jak szybko dysk obsługuje wiele drobnych odczytów i zapisów. Dyski NVMe są pod tym względem wielokrotnie szybsze od klasycznych dysków SSD, nie wspominając o dyskach talerzowych. Najlepiej jak działają jednak w macierzy RAID w konfiguracji mirror.

Duża ilość pamięci RAM pomaga, bo pozwala bazie danych trzymać najczęściej używane dane w pamięci. Nie zastąpi jednak szybkiego dysku, gdy baza rośnie, a sklep wykonuje importy czy aktualizacje cen.

Trzy sklepy, trzy problemy, jedna przyczyna

Poniżej opisuję trzy sklepy PrestaShop, którymi się zajmowałem. Każdy miał kilka tysięcy produktów, każdy działał na innym rodzaju serwera i w każdym problem wyglądał inaczej. Przyczyna była jednak praktycznie ta sama: serwer nie był dobrany do realnych potrzeb sklepu.

Wyszukiwarka, na którą klienci czekali pół minuty

Sklep z około 3,6 tys. produktów działał na hostingu współdzielonym. Pakiet był duży, ale zasoby nadal dzielone z innymi klientami. Wyszukiwanie produktów potrafiło trwać ponad 30 sekund. Po przeniesieniu sklepu na serwer dobrany pod kątem wydajności procesora i dysków wyniki wyszukiwania pojawiają się dziś w około 0,2 sekundy, a serwer pracuje średnio przy około 10% obciążenia.

Import, który nigdy się nie kończył

Sklep z około 5,5 tys. produktów działał na serwerze dedykowanym kupionym w OVH, z panelem Plesk, ale bez administratora. Każdy import stanów magazynowych i cen kończył się błędem przekroczenia czasu, nawet po 10 minutach. Po zmianie serwera ten sam import trwał niecałe 30 sekund. Dziś żaden import nie przekracza standardowego limitu 60 sekund, a średnie obciążenie serwera nie przekracza 10%. Cięższe operacje, które podnoszą je do około 50%, wykonywane są w nocy.

Serwer bez aktualizacji od sześciu lat

Sklep z około 7 tys. produktów działał na serwerze dedykowanym z panelem ISPConfig. Ani system, ani panel nie były aktualizowane od co najmniej sześciu lat. Strony generowały się średnio w około 2,5 sekundy. Po przeniesieniu sklepu na nowy serwer, połączonym z aktualizacją PrestaShopa i lekką przebudową sklepu, średni czas generowania strony spadł do około 0,34 sekundy.

Sprzęt to nie wszystko – konfiguracja i aktualizacje

Dwa z trzech opisanych sklepów działały na serwerach dedykowanych, czyli teoretycznie na rozwiązaniu wydajniejszym niż hosting współdzielony. Mimo to działały źle. Serwer kupiony, zainstalowany z panelem i pozostawiony sam sobie z czasem staje się wolny, a do tego niebezpieczny. Nieaktualny system i oprogramowanie to nie tylko gorsza wydajność, ale też znane luki bezpieczeństwa, z których korzystają atakujący.

Najczęstsze błędy, które widzę przy serwerach dla PrestaShop:

  • sklep z tysiącami produktów na hostingu współdzielonym,
  • domyślna konfiguracja PHP i bazy danych, niedopasowana do sklepu,
  • wolne dyski,
  • procesor z wieloma, ale wolnymi rdzeniami,
  • brak aktualizacji systemu, panelu i oprogramowania serwera.

Dobrze dobrany sprzęt to fundament. O tym, czy sklep będzie szybki i bezpieczny także za rok czy dwa, decydują jednak konfiguracja i regularna opieka administratora.

Jak wybrać serwer pod PrestaShop – podsumowanie

Wybierając serwer dla sklepu PrestaShop, zwróć uwagę na:

  • wydajność pojedynczego rdzenia – nowoczesny procesor o wysokim taktowaniu jest bardzo często ważniejszy niż duża liczba rdzeni,
  • szybkość dysku – wybieraj dyski NVMe, a pojemność traktuj jako sprawę drugorzędną,
  • pamięć RAM – wystarczającą, by baza danych mogła trzymać najczęściej używane dane w pamięci,
  • stałą wydajność – unikaj hostingu współdzielonego, a w chmurze instancji z okresową wydajnością (burstable), jeśli sklep obciąża serwer stale,
  • konfigurację i opiekę – serwer dopasowany do sklepu i regularnie aktualizowany.

Jeśli nie wiesz, czy Twój obecny serwer jest dobrze dobrany, albo planujesz przeniesienie sklepu, mogę pomóc zarówno przy wyborze, jak i przy konfiguracji serwera dla PrestaShop. Jeśli sklep już działa, ale jest wolny, zacznij od audytu wydajności serwera. Wskażę, co realnie spowalnia sklep i co warto zmienić.

Podobne wpisy