5 niezbędnych wskazówek, jak ulepszyć Magento TTFB

Opublikowany: 2019-01-08

To jest gościnny post Wasilija Nikołajewa.

Czas do pierwszego bajtu (TTFB) to jeden z najważniejszych wskaźników szybkości witryny. Wskazuje, ile czasu minie po wprowadzeniu przez użytkownika adresu URL Twojego sklepu Magento i kiedy otrzyma odpowiedź, nawet tak małą jak 1 bajt (stąd nazwa, „czas do pierwszego bajtu”).

Czas do pierwszego bajtu ma kluczowe znaczenie zarówno dla ludzi (nie lubią czekać), jak i robotów wyszukiwarek (Google nie znosi wolnych stron i umieszcza je niżej ― kliknij tutaj, aby dowiedzieć się więcej o najlepszym w swojej klasie rozwiązaniu SEO Magento 2 MageWorx).

Ale jednocześnie istnieją przekonujące dowody od Johna Muellera, jednego z gadających głów Google, że Google nie używa TTFB do rankingów:

Magento 2 TTFB | Blog MageWorx

Dlatego radzimy, aby nie mieć obsesji na punkcie TTFB zbyt wiele dla SEO, ale zamiast tego skupić się na doświadczeniu użytkownika i wydajności sklepu.

Dlaczego TTFB jest ważniejszy niż pełne ładowanie strony (tzw. „czas do ostatniego bajtu”)? Cóż, ponieważ im szybciej załadujesz pierwszy bajt, tym szybciej użytkownicy zaczną czytać Twoją treść. Nie ma znaczenia, że ​​nie mogą od razu zobaczyć każdego zdjęcia na stronie. Ważniejsze jest zaoferowanie użytkownikom czegoś do zrobienia, gdy serwer sieciowy jest zajęty ładowaniem reszty treści.

Spis treści

  • 1. Zrozum swoje wąskie gardła, aby je wyeliminować
    • Co to jest dobry TTFB?
  • 2. Przeprowadź migrację do bardziej odpowiedniego silnika bazy danych
  • 3. Dopasuj konfigurację serwera do aktualnych potrzeb w zakresie ruchu
  • 4. Skonfiguruj lepsze rozwiązanie buforowania
  • 5. Pozbądź się bezużytecznych rozszerzeń
  • Dodatkowa wskazówka: Tweak Store i ustawienia logowania klienta
  • Ciągła walka o wydajność

1. Zrozum swoje wąskie gardła, aby je wyeliminować

Co to jest dobry TTFB?

Magento 2 TTFB | Blog MageWorx
Google twierdzi, że celem jest TTFB poniżej 200 ms. Poniżej 200 ms wyszukiwarka oceni Cię najwyżej. Gdy przekroczysz tę wartość, Google nałoży kary na Twoją witrynę. 600 ms lub więcej oznacza, że ​​nie możesz nawet przejść własnego testu TTFB Google.

Istnieje wiele czynników, które wpłyną na Twój TTFB. W dowolnej kolejności:

  • konfiguracja i zasoby serwera WWW,
  • szybkość rozwiązywania nazw serwerów,
  • czasy wykonania kodu na stronie,
  • wdrożone rozwiązania backend caching,
  • przypuszczenie sieci.

Sprawdź swoją wartość TTFB za pomocą usługi innej firmy lub testu Google TTFB. Możesz także porównać swoje wyniki z popularnymi witrynami lub z konkurencją tutaj, aby uzyskać wyjątkową perspektywę na to, jak Twój sklep ładuje się dla użytkowników mobilnych.

Magento 2 TTFB | Blog MageWorx Kolejnym świetnym narzędziem diagnostycznym jest Magento 2 Profiler . Dzięki niemu możesz łatwo podzielić każde żądanie strony na mniejsze bloki, które można szybko wizualizować i analizować.

W tabeli zwróć szczególną uwagę na 2 ważne wartości, Czas i Liczenie. Czas nie wymaga wyjaśnień. Jest to rzeczywiste opóźnienie między żądaniem użytkownika a odpowiedzią serwera. Wiersz Cnt odpowiada liczbie wywołań tego elementu przed utworzeniem danych wyjściowych.

Warto używać Database Profiler w połączeniu z domyślnym profilerem Magento 2 do analizy zapytań do bazy danych.

Magento 2 TTFB | Blog MageWorx To pierwszy krok, który musisz wykonać: włącz Magento Profiler i przejrzyj strony, które mają największe problemy z TTFB. Chociaż możesz użyć domyślnego programu profilującego, zalecamy skonfigurowanie programu Profiler SQL. Jest bezpłatny i oferuje wygodny przegląd liczby zapytań na sesję.

Profiler podzieli wszystkie żądania na mniejsze części, dzięki czemu możesz od razu zobaczyć, które sekcje ciągną Cię w dół.

2. Przeprowadź migrację do bardziej odpowiedniego silnika bazy danych

Baza danych sklepu Magento 2 może łatwo stać się największym wąskim gardłem wydajności, jeśli jest nieefektywna, wolna lub używa silnika pamięci masowej, który nie jest najlepszym wyborem do obsługi Magento.

Dlaczego to jest ważne? Istnieje duży wybór różnych silników pamięci masowej dla MySQL. W oficjalnej dokumentacji MySQL naliczyliśmy co najmniej 10 obsługiwanych rozwiązań, a na wolności jest ich jeszcze więcej.

Chociaż możesz używać Magento z domyślnym silnikiem MyISAM MySQL, alternatywne silniki baz danych, takie jak MariaDB Ari lub silnik Percona XtraDB, mogą sprawić, że Twój sklep będzie bardziej stabilny i (czasami) szybszy w porównaniu z domyślną konfiguracją.

Na przykład silnik Aria stosuje inteligentniejsze podejście w przypadkach, gdy Magento wymusza na silniku pamięci masowej korzystanie z wielu tabel tymczasowych.

Percona to kolejny rozwidlenie MySQL, który z czasem zintegrował szereg poprawek wydajności, aby przyspieszyć zapytania do bazy danych. W porównaniu do MyISAM działa znacznie szybciej z wieloma równoległymi zapytaniami i specjalizuje się w przetwarzaniu transakcji.

Mimo że najlepszą rekomendacją do optymalizacji bazy danych byłoby dokładne zbadanie swoich potrzeb i wybranie silnika, który najbardziej Ci odpowiada, mamy kilka wskazówek, które przydadzą się każdemu:

  • unikaj domyślnego MySQL do wyszukiwania w sklepie. Zainstaluj Elasticsearch, aby przyspieszyć wszystkie zapytania wyszukiwania w Twojej witrynie,
  • wybierz silnik bazy danych, który najlepiej Ci odpowiada.

3. Dopasuj konfigurację serwera do aktualnych potrzeb w zakresie ruchu

Taniej infrastruktury nie jest dobrym pomysłem. Z biegiem czasu stale rozwijająca się firma będzie miała więcej klientów, więcej transakcji i więcej zamówień. Tak więc zdrowo jest utrzymywać swoją konfigurację na poziomie 80%, aby dostosować się do losowych skoków użytkowania i generowanego przez zdarzenia ruchu pieszego. Te 20% może przejść długą drogę, aby utrzymać przyzwoity poziom wydajności we wszystkich sytuacjach.

Godny uwagi zespół hostingowy podpowie Ci, jakich wymagań systemowych potrzebujesz do sprawnego działania. Ale jeśli przez pewien czas szybko się rozwinąłeś, to twoim obowiązkiem jest nakreślenie mapy drogowej do aktualizacji.

W Twoim sklepie Magento znajduje się kilka krytycznych punktów, które będą miały duży wpływ na wymagania systemowe:

  • wielkość sklepu (liczba odsłon),
  • kategorie i SKU w katalogu (z atrybutami i zestawami atrybutów),
  • średnie liczby ruchu (średnie odsłony i historyczne szczyty),
  • transakcji dziennie (cyfrowe pobrania, płatności i podobne operacje).

Ogólnie rzecz biorąc, średni ruch ma bezpośredni wpływ na to, ile mocy procesora potrzebujesz. Tak więc, po ustaleniu optymalnej konfiguracji procesora, dopasuj pamięć RAM do wymagań procesora, aby utworzyć zrównoważony profil serwera WWW.

Rozmiar pamięci bazy danych zależy od aktualnej pamięci RAM, więc powinieneś wybrać tylko tyle, aby pokryć wszystkie bieżące potrzeby. Stwórz również poduszkę wyczynową, która zapewni trochę przestrzeni do oddychania. Twoim celem jest zawsze mieć co najmniej 20-25% wolnego procesora i pamięci RAM, aby poradzić sobie ze sporadycznymi skokami ruchu.

4. Skonfiguruj lepsze rozwiązanie buforowania

Buforowanie stron internetowych to kolejna najlepsza rzecz po wynalezieniu frytek. Pamięć podręczna serwera poprawia szybkość działania witryny, dzięki czemu jest znacznie szybsza. Buforowanie działa poprzez przenoszenie często używanych danych z dysku SSD lub dysku twardego do pamięci RAM.

Tam, gdzie dyski twarde mogą sekwencyjnie odczytywać dane do 200 MB/s, a dyski SSD do 3200, moduły DRAM mogą osiągać prędkość do 20 GB/s. Co daje nam różnicę x10 lub przynajmniej jeden rząd wielkości.

Zarówno Redis , jak i Varnish to jedne z najpopularniejszych ulepszeń dla sklepów Magento. Jest to zalecana opcja buforowania dla Magento 2. Oba rozwiązania działają również świetnie z Magento 1.

Lakier jest trudnym narzędziem do skonfigurowania, ale po prawidłowym wykonaniu oferuje wartości TTFB w zakresie 100-200 ms. W przypadku konfiguracji z całostronicową pamięcią podręczną TTFB będzie mieścić się w zakresie 250 ms.

Kolejna wyraźna zaleta lakieru ― działa na większej liczbie stron internetowych. Chociaż FPC nie działa na stronach z dużą ilością dynamicznej zawartości, Varnish oferuje lepszą wydajność nawet w tych trudnych przypadkach użycia.

5. Pozbądź się bezużytecznych rozszerzeń

Szczerze mówiąc, wyłączenie nieużywanych rozszerzeń jest wskazówką nr 1 dla każdego sklepu Magento 2, ale często jest pomijana. Każde rozszerzenie działające w Twojej witrynie będzie zużywać część Twoich zasobów. Jeśli są źle skonfigurowane, mogą również spowolnić TTFB.

Pamiętaj: serwer musi wykonać ten kod, zanim wyśle ​​jakąkolwiek informację zwrotną do użytkownika.

Wyczyszczenie listy rozszerzeń również przyspieszy Magento. Nawet jeśli nie możesz wyłączyć żadnego z nich, aktualizuj zarówno sklep Magento, jak i rozszerzenia innych firm, aby korzystać z poprawek i optymalizacji, które z pewnością poprawią wydajność Twojej witryny .

Dodatkowa wskazówka: Tweak Store i ustawienia logowania klienta

Pamiętaj, aby wyłączyć logowanie klientów Magento. Pomoże to skrócić czas spędzany na zapytaniach do bazy danych. Nie ma to dużego wpływu, ponieważ rejestrowanie klientów jest stosunkowo niewielką czynnością. Wzrost wydajności będzie zależał od liczby klientów aktualnie odwiedzających Twój sklep.

Nie zalecamy wyłączania rejestrowania sklepu. To cenne narzędzie, które pomaga w rozwiązywaniu problemów Magento. Ale zamiast pozwolić, aby logi sklepu zajmowały czas serwera, możesz przenieść je do usługi innej firmy, takiej jak Papertrail.

Ciągła walka o wydajność

Nie ma dwóch takich samych sklepów Magento. Każdy z nich stanie przed różnymi wyzwaniami w optymalizacji witryn sklepowych pod kątem szybkości. Może to dotyczyć zwłaszcza starszych (i większych) witryn Magento, które mają wiele złożonych rozszerzeń stron trzecich, duże bazy danych i wiele sklepów.

I chociaż nigdy nie możemy „wygrać” tej bitwy o wydajność, naszym wspólnym celem jest sprawienie, aby sklepy Magento były najlepsze w swojej klasie pod względem szybkości, wygody użytkownika i bezpieczeństwa spośród wszystkich witryn e-commerce.


O autorze

Wasilij Nikołajew nieustannie poszukuje skarbów, aby znaleźć najskuteczniejsze wskazówki, które ułatwią życie właścicielom sklepów. Nie ma nic bardziej satysfakcjonującego niż znalezienie dla niego świetnego rozwiązania trudnego problemu.