> For the complete documentation index, see [llms.txt](https://kompendium.cloudlets.zone/kompendium/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kompendium.cloudlets.zone/kompendium/aplikacje/magento-2-automatycznie-skalowalny-klaster-z-cdn.md).

# Magento 2 - automatycznie skalowalny klaster z CDN

Magento 2 to bardzo popularny system e-commerce wybierany zwykle dla wymagających projektów. Magento jest projektem open-source, za którym stoi spory ekosystem twórców i dostawców. Dzięki temu, użytkując platformę możemy korzystać z szerokiej gamy wbudowanych funkcji, takich jak zarządzanie katalogiem danych, narzędzia marketingowe, analityka, optymalizacja SEO, raportowanie i wiele innych.&#x20;

Magento w wersji 2 wymaga odpowiednio przygotowanej architektury, aby obsłużyć wielu jednoczesnych użytkowników i zapewnić wysoką dostępność sklepu. Bardzo ważne jest również automatyczne skalowanie [pionowe](/kompendium/konfiguracja/skalowanie-poziome-i-pionowe.md#automatyczne-skalowanie-pionowe) i [poziome](/kompendium/konfiguracja/skalowanie-poziome-i-pionowe.md#automatyczne-skalowanie-poziome), co przygotowuje e-commerce na obsłużenie pików ruchu. Ciągłość działania Magento 2 realizowana jest poprzez architekturę klastrową, gdzie kluczowe warstwy są zdublowane.

![](/files/jh92FYDyHywuf91oH1WX)

Poniżej znajduje się opis głównych składowych oraz warstw klastra Magento 2.

* **Premium CDN** - integracja z siecią Edgecast CDN zapewnia błyskawiczne ładowanie sklepu bez względu na lokalizację geograficzną dzięki zaawansowanym mechanizmom buforowania i akceleracji, ogromnej przepustowości, obsłudze protokołu HTTP/3.
* **Let's Encrypt SSL** dodatek zapewnia automatyzację operacji zarządzania certyfikatami SSL - wydawanie zaufanych certyfikatów, weryfikację niestandardowej domeny, automatyczne odnawianie certyfikatów.
* **LiteSpeed ​​Web ADC** równoważy obciążenia dzięki elastycznym algorytmom dystrybucji ruchu (w celu optymalizacji wydajności), obsłudze nowoczesnego protokołu HTTP/3 i dynamicznej pamięci podręcznej ESI (do obsługi żądań dynamicznych bezpośrednio redukujących liczbę żądań do serwerów).
* **LiteSpeed ​​Web Server** - wysokowydajny serwer WWW z szerokim zestawem funkcji, takich jak obsługa HTTP/3, pamięć podręczna ESI, optymalizacja CSS i JavaScript, optymalizacja obrazu, obsługa pamięci podręcznej przeglądarki i obiektów, obsługa CDN, wbudowany WAF, Geo-DNS, CAPTCHA, dławienie IP, ochrona anty-DDoS, itp.
* **Web Application Firewall** (WAF) funkcja bezpieczeństwa dla stosu LiteSpeed ​​Web Server, która zawiera filtrowanie anty-DDoS w warstwie 7, przepustowość na poziomie IP i ograniczanie szybkości żądań.
* **LiteMage Cache** to ulepszone rozwiązanie buforowania[ ](https://translate.google.com/website?sl=auto\&tl=pl\&u=https://www.litespeedtech.com/products/cache-plugins/magento-acceleration) dla zasobów dynamicznych, które umożliwia przechowywanie ich jako statycznych, co znacznie przyspiesza obsługę żądań.
* **Klaster MariaDB** - topologia replikacji podstawowa-podstawowa zapewnia lepszą wydajność przechowywania zawartości dynamicznej i prostszą procedurę przełączania awaryjnego.
* **Redis** to wysokowydajne rozwiązanie buforujące działające w pamięci RAM, które działa w kontenerze LiteSpeed ​​Web Server, aby przechowywać już załadowane wyniki zapytań do bazy danych i wyświetlać je szybciej na żądanie.
* **OpenSearch** - napędzana przez społeczność wyszukiwarka typu open-source, która zapewnia rozproszone wyszukiwanie pełnotekstowe z obsługą wielu użytkowników.
* **Shared storage** - węzeł przechowywania danych dla plików multimedialnych.

## Instalacja klastra Magento 2

Zaloguj się do [Panelu Usług Cloudlets.Zone](https://app.controller.cloudlets.zone) i wykonaj kolejne kroki.

1\. Wybierz z menu **Marketplace**, wyszukaj pakiet *Auto-Scalable Magento Cluster* i naciśnij **Instaluj**. Pamiętaj, że rozwiązanie klastrowe jest dostępne tylko dla kont pełnych, a więc nie zainstaluje się na koncie próbnym.

![](/files/YTPdmArOOu3zZ0KWkCgO)

2\. Na podstawie oczekiwanego poziomu obciążenia klastra, wybierz strategię skalowania (Scaling Strategy), aby określić opcje automatycznego skalowania poziomego (można to później modyfikować z poziomu: **Ustawienia** / [**Automatyczne Skalowanie Poziome**](/kompendium/konfiguracja/skalowanie-poziome-i-pionowe.md#automatyczne-skalowanie-poziome)).

**Low Load** (Niskie obciążenie)

* dodaje 1 węzeł serwera aplikacji, jeśli obciążenie jest wyższe niż 70%&#x20;
* usuwa 1 węzeł serwera aplikacji, jeżeli obciążenie spadnie poniżej 20%

**Medium Load** (Średnie obciążenie)

* dodaje 1 węzeł serwera aplikacji, jeśli obciążenie jest większe niż 50%&#x20;
* usuwa 1 węzeł serwera aplikacji, jeżeli obciążenie spadnie poniżej 20%

**High Load** (Wysokie obciążenie)

* dodaje 2 węzły serwera aplikacji, jeśli obciążenie jest wyższe niż 30%
* usuwa 1 węzeł serwera aplikacji, jeżeli obciążenie spadnie poniżej 10%

3\. Instalacja środowiska i konfiguracja klastra potrwają kilka minut, zanim zobaczysz okienko wyświetlające Twój bezpośredni link do panelu administracyjnego Magento z danymi uwierzytelniającymi, aby uzyskać do niego dostęp za pośrednictwem przeglądarki internetowej.

![](/files/3eDXZ4x3YRDZ3j4JyCSo)

4\. Naciśnij **Otwórz w przeglądarce,** aby przejść do strony docelowej wstępnie skonfigurowanego motywu Magento **LUMA**, który umożliwia korzystanie z systemu Magento e-commerce zaraz po instalacji.

![](/files/f5sntgDk1hfRrOSV5DjX)

Z tego samego okienka możesz uzyskać dostęp do panelu administracyjnego Magento 2.&#x20;

![](/files/KqD2lP2M3mgW5dKdbTCs)

![](/files/BXpitrQ3lA0WIBxQAIPz)

5\. Zweryfikuj przydzielone domyślnie limity skalowania pionowego ([cloudlety](/kompendium/faq/czym-jest-cloudlet.md#co-to-jest-cloudlet)) dla warstw z pojedynczym kontenerem (np.: Load, Balancer, NFS), tak aby upewnić się, że  stworzona dla Magento 2 topologia, odpowiada prognozowanym obciążeniom.

![](/files/2HnBmIwjYBZuF5v8gs74)

### Instalacja CDN Edgeport

Obecnie tylko LiteSpeed ​​Web Server obsługuje protokół HTTP/3. W przypadku serwera WWW NGINX ten nowoczesny protokół jest wciąż w [fazie rozwoju](https://trac.nginx.org/nginx/milestone/nginx-1.17) . Aby więc zapewnić najwyższą możliwą wydajność dla CDN zintegrowanego ze środowiskiem, w tej instrukcji omówimy konfigurację Magento 2 opartego na LiteSpeed ​​Web Server.

Jeżeli w podczas instalacji klastra Magento 2 nie została zaznaczona opcja: *Install Lightning-Fast Premium CDN* należy zainstalować specjalny dodatek. Jeżeli opcja była zaznaczona, a więc masz już zainstalowany CDN, wówczas przejdź od razu do konfiguracji, a więc kroku 3.

1. Po zalogowaniu do [Panelu Usług ](https://app.controller.cloudlets.zone)Cloudlets.Zone, otwórz Marketplace, znajdź dodatek **HTTP/3 Premium CDN** i kliknij **Zainstaluj** .

![](/files/olLe6E3nW9ClQBx4aGlU)

2\. W otwartym oknie wybierz środowisko (w naszym przypadku: *Auto-Scalable Magento Cluster v2*), w którym ma być włączony CDN, preferowaną warstwę węzłów (*Load Balancer*) i naciśnij **Zainstaluj**.

![](/files/sNKQbNmRGhNDPaH0b6Oo)

Po zakończeniu instalacji pojawi się wyskakujące okienko z adresem URL CDN w następującym formacie:

<mark style="color:yellow;">**nazwaśrodowiska**</mark><mark style="color:orange;">**-chmur.cdn.edgeport.net**</mark>

w naszym przypadku: https\://*Magento2-chmur.cdn.jelastic.net* **CDN Endpoint URL** zostanie także przesłany na skrzynkę e-mail konta.&#x20;

{% hint style="info" %}
W ciągu pierwszej godziny może wystąpić błąd 404, ponieważ rozpropagowanie nowego środowiska w sieci CDN zajmuje trochę czasu.
{% endhint %}

3\. Jeżeli chcesz skonfigurować własną domenę dodaj odpowiedni rekord A. W naszym przykładzie będzie to:

```
A | magento2 | 212.127.94.81 | 1800
```

Następnie sprawdź, czy nastąpiło rozpropagowanie nowego wpisu używając na przykład [DNS Checker](https://dnschecker.org/).

![](/files/ZcED7w5Tn1JvzTGyFctg)

4\. Jeśli rozwiązywanie nazw dla Twojej domeny jest prawidłowe możesz zmienić konfigurację dodatku Let's Encrypt, a więc nadpisać domenę domyślną i wygenerować certyfikat SSL dla domeny docelowej. Z poziomu warstwy *Load Balancer* wybierz ikonę **Dodatki**, a następnie **Configure** przy dodatku *Let's Encrypt Free SSL*.

![](/files/0Od6gqNiHALAQmdYdlTC)

Wpisz właściwą domenę i kliknij przycisk **Zastosuj**.

![](/files/4ssF0FB3buPOXV0xkwSE)

5\. Pozostaje jeszcze zmiana bazowego adresu URL dla Magento. Robimy to z menu kontekstowego dla warstwy aplikacji klikając ikonę **Dodatki**.

![](/files/HLMJI39RNZ9HjLKc8Qf2)

A następnie wpisujemy naszą domenę wcześniej zdefiniowaną w DNS. W naszym przypadku będzie to:  <https://magento2.produkcjachmur.pl>&#x20;

![](/files/5dNSKWbRJE6EvAaSd1w5)

Od teraz sklep będzie już pod naszą własną nazwą domeny. Uwzględnij to przy logowaniu do panelu administracyjnego.

![](/files/NF7TR1BZbmnCtoCAC8jS)

6\. Na koniec sprawimy, że statyczna zawartość strony będzie dostępna do pobrania z sieci CDN. W tym celu logujemy się do Magento 2 jako administrator. Wchodzimy do **STORES / Configuration / Web / Base URLs (Secure).** W pol&#x61;**:**

* Secure Base URL for Static View Files
* Secure Base URL for User Media Files

**w**klejamy **CDN Endpoint URL,** w naszym przykładzie to: <https://Magento2-chmur.cdn.jelastic.net/>&#x20;

Ustawiamy też protokół SSL jako obowiązujący dla sklepu i panelu administracyjnego modyfikując (wizualizacja na grafice):

\--- Secure Base Link URL&#x20;

\--- Use Secure URLs on Storefront&#x20;

\--- Use Secure URLs in Admin&#x20;

![](/files/ypcEiM95J82SYm3y8oa4)

7\. Robimy to też dla zakładki **Base URLs** i zapisujemy zmiany - **Save Config.**

![](/files/Mb6hsLdTO9XFB4XdBoUw)

Zrobione. Od tego momentu cała statyczna zawartość sklepu udostępniana będzie z sieci CDN Edgeport, z punktów geograficznie najbliższych dla odwiedzającego Twoją witrynę.&#x20;

### Zmiana ustawień CDN

#### **Jak zastąpić "CDN Endpoint URL" własną domeną?**

1. Możesz zamienić wygenerowany domyślnie URL dla CDN. W tym celu do DNS domeny należy najpierw dodać CNAME do serwera DNS domeny głównej. W naszym przykładzie wygląda to tak: &#x20;

```
CNAME | cdn.magento2 | cdn.magento2.produkcjachmur.pl | 1800
```

![](/files/6AJcfyDmuSQaNA2wzKVx)

2\. Wybierz rodzaj metodę równoważenia obciążenia, aby zapewnić tryb wysokiej dostępności.&#x20;

* **Round Robin** - równomierne rozłożenie żądań pomiędzy dostępne węzły.
* **Primary Failover** - wszystkie żądania są wysyłane do pierwszego węzła, jeśli stanie się niedostępny, żądania są przekierowywane do następnego i tak dalej.

![](/files/Q5TLmJQwiP2szPVfGZUJ)

Zatwierdź przyciskiem **Apply** i poczekaj około godziny, aż zmiana zostanie wprowadzona do sieci CDN.

{% hint style="info" %}
Podczas skalowania poziomego węzłów w warstwie serwera aplikacji, platforma automatycznie aktualizuje rekordy dostępnych węzłów wewnątrz usługi CDN. Eliminuje to konieczność wykonywania ręcznych modyfikacji podczas skalowania.
{% endhint %}

#### **Czyszczenie pamięci podręcznej CDN**

Do czyszczenia pamięci podręcznej zasobów statycznych w sieci CDN możemy użyć akcji **Purge** lub **Purge All**. Po usunięciu zasobów CDN zaczyna pobierać ich nowe kopie z serwera źródłowego. Obsługa funkcji odbywa się na poziomie dodatku **HTTP/3 Premium CDN** w warstwie **Load Balancera.**

![](/files/HATmZxBmnpl7lps9ERJC)

A. **Purge** (Przeczyść) usuwa określone zasoby w określonej ścieżce.

![](/files/g1RPGKrTKXgFRzyLf1Wn)

B. Tymczasem ***Purge All*** (Przeczyść wszystko) usuwa wszelkie statyczne zasoby w sieci CDN, prosząc uprzednio użytkownika o potwierdzenie operacji. Proces odnawiania pamięci podręcznej jest znacznie szybszy w porównaniu z inicjalną (pierwszą) dystrybucją zasobów statycznych po instalacji dodatku.

## Testy wydajności Magento 2 - JMeter

Dobrą praktyką przed dokonaniem wyboru hostingu pod Magento 2 jest sprawdzenie jak środowisko reaguje na określony ruch. Poniższa instrukcja przedstawia jak przygotować sklep oraz narzędzie testowe. JMeter możesz uruchomić na [Cloudlets.Zone](https://cloudlets.zone/) by przetestować hosting Magento 2 innego dostawcy. Zaczynamy!

{% hint style="info" %}
Benchmark Magento 2 za pomocą JMeter realizowany może być wyłącznie na środowisku developerskim lub testowym, gdyż związany jest z generowaniem i nadpisaniem kategorii produktowych.
{% endhint %}

### Przygotowanie Magento 2

1. Skorzystamy z tego, że Magento zapewnia wewnętrzną funkcjonalność do generowania danych testowych za pośrednictwem profili ładowania. Każdy profil generuje następujące kategorie:

<table><thead><tr><th width="263">Element</th><th align="center">SMALL</th><th align="center">MEDIUM</th><th width="200" align="center">LARGE</th><th align="center">EXTRA LARGE</th></tr></thead><tbody><tr><td>websites</td><td align="center">1</td><td align="center">3</td><td align="center">5</td><td align="center">5</td></tr><tr><td>store_groups</td><td align="center">1</td><td align="center">3</td><td align="center">5</td><td align="center">5</td></tr><tr><td>store_views</td><td align="center">1</td><td align="center">3</td><td align="center">5</td><td align="center">5</td></tr><tr><td>simple_products</td><td align="center">800</td><td align="center">24 000</td><td align="center">300 000</td><td align="center">600 000</td></tr><tr><td>configurable_products</td><td align="center">16 z 24 opcjami</td><td align="center">640 z 24 opcjami</td><td align="center">8 000 z 24 opcjami</td><td align="center">16 000 z 24 opcjami</td></tr><tr><td>product_images</td><td align="center">100 obrazów/3 na produkt</td><td align="center">1 000 obrazów/3 na produkt</td><td align="center">2 000 obrazów/3 na produkt</td><td align="center">2 000 obrazów/3 na produkt</td></tr><tr><td>categories</td><td align="center">300</td><td align="center">3 000</td><td align="center">3 000</td><td align="center">6 000</td></tr><tr><td>categories_nesting_level</td><td align="center">3</td><td align="center">3</td><td align="center">5</td><td align="center">5</td></tr><tr><td>catalog_price_rules</td><td align="center">20</td><td align="center">20</td><td align="center">20</td><td align="center">20</td></tr><tr><td>catalog_target_rules</td><td align="center">5</td><td align="center">5</td><td align="center">5</td><td align="center">5</td></tr><tr><td>cart_price_rules</td><td align="center">20</td><td align="center">20</td><td align="center">20</td><td align="center">20</td></tr><tr><td>cart_price_rules_floor</td><td align="center">2</td><td align="center">2</td><td align="center">2</td><td align="center">2</td></tr><tr><td>customers</td><td align="center">200</td><td align="center">2 000</td><td align="center">5 000</td><td align="center">10 000</td></tr><tr><td>tax rates</td><td align="center">130</td><td align="center">40 000</td><td align="center">40 000</td><td align="center">40 000</td></tr><tr><td>orders</td><td align="center">80</td><td align="center">50 000</td><td align="center">100 000</td><td align="center">150 000</td></tr></tbody></table>

2\. Jako, że pracujemy na świeżej instalacji Magento 2, dlatego trzeba wygenerować dane testowe. Zrobimy to z poziomu linii komend. Zaczynamy od ustawienia parametru globalnego w bazie danych. UWAGA, w tym celu otwórz dostęp Web SSH na warstwie BAZY DANYCH.

![](/files/pbjrEuLJevQbYOGKJO5j)

3\. Wpisz poniższą komendę uzupełniając właściwe dane w miejscach <mark style="color:yellow;">{db\_user}</mark> i <mark style="color:yellow;">{db\_pass}</mark>. Zwróć uwagę na brak spacji między parametrem "**-u"** i "**-p",** a ciągiem znaków definiujących użytkownika i hasło.&#x20;

```
mysql -u{db_user} -p{db_pass} -e "SET GLOBAL log_bin_trust_function_creators = 1;"
```

4\. Aby upewnić się, że wszystkie cytaty są puste, uruchom następujące zapytanie MySQL **przed każdym uruchomieniem scenariusza,** wstawiając w miejsce **magento\_dbnamen** właściwą nazwę bazy danych Magento 2, którą znajdziesz w phpMyAdmin.

```
mysql -u{db_user} -p{db_pass} -e "USE magento_dbname; UPDATE quote SET is_active = 0 WHERE is_active = 1;"
```

5\. Teraz wygenerujemy dane produktów za pomocą poniższego polecenia, uwzględniając parametr "**-s"**, aby pominąć początkowe indeksowanie. Polecenie wydajemy z linii komend otwierając Web SSH na poziomie WARSTWY APLIKACJI!

![](/files/XRemYK9sGYgKgFXR0ZhC)

```
php /var/www/webroot/ROOT/bin/magento setup:performance:generate-fixtures -s /var/www/webroot/ROOT/setup/performance-toolkit/profiles/ce/small.xml
```

![](/files/u8HIf9T5bNhEYeRFBOvY)

6\. Po wygenerowaniu danych należy ręcznie uruchomić indeksowanie.

```
php /var/www/webroot/ROOT/bin/magento indexer:reindex
```

7\. Na zakończenie, czyścimy pamięć podręczną następującą komendą:

```
php /var/www/webroot/ROOT/bin/magento cache:flush
```

![](/files/o4dCs1tVSzKlxhcMhAPF)

i sprawdzamy, czy są teraz ogólne kategorie z prostymi produktami zastępczymi na witrynie testowej, jak na obrazku poniżej.

![](/files/lsqsdEXTzjpkIPOwLP3G)

8\. Logujemy się do Magento 2 jako administrator, w tym naszym przykładzie będzie to adres: <http://magento2.produkcjachmur.pl><mark style="color:yellow;">/admin/</mark> i zmieniamy hasło dla konta **admin,** na: <mark style="color:yellow;">123123q</mark>

![](/files/rI6n3UhhLnlLUfy9FJsk)

9\. Włącz przepisywanie serwera [WWW](http://WWW). Otwórz stronę administratora swojej witryny i zaloguj się, a następnie przejdź do menu: **Stores / Configuration / General / Web / Search Engine Optimization**. Odznaczamy "**Use system value**" i wybieramy z menu "**Use Web Server Rewrites** - **YES"** i zapisujemy.

![](/files/2Bez0wgGu3SD2kWUIjGd)

10\. Wejdź do menu **System / Index Management** i ustaw wszystko w trybie „**Update by Schedule**”, zaznaczając z użyciem funkcji *Mass Action* i klikając przycisk **Submit.**

![](/files/N73zhQMrrqAyJW8RFAzF)

11\. Sprawdź stronę zarządzania pamięcią podręczną witryny i zaktualizuj wszelkie nieprawidłowe dane  -->  **System / Cache Management.** Wybierz wszystkie typy skrzynek i odśwież je, klikając przycisk **Submit**.

![](/files/IiTJXqvBPlqzHn6gAOsk)

Uff, faza przygotowania danych sklepu zakończona.

### Instalacja i uruchomienie JMeter&#x20;

Do wygenerowania obciążenia wykorzystamy pakiet JMeter-cluster. Topologia obejmuje następujące komponenty:

* **Web** - do wizualizacji procesu generowania obciążeń i dostarczania wyników przez przeglądarkę,&#x20;
* **Workers** - rozproszone serwery JMeter do generowania obciążeni&#x61;*,*
* **Master** - używany do konfiguracji planu testów i zarządzania warstwą *Workers.*

![](/files/1in3R4qq6y23mtgav0hQ)

1. Instalację JMeter cluster zrealizować można za pomocą manifestu JPS, który wklejamy w oknie importu w zakładce *URL:* <https://raw.githubusercontent.com/sych74/jmeter/master/manifest.jps>

![](/files/9eYuZ40YjnO5ZEGFxv7s)

2\. Następnie, parametryzujemy test domyślnego scenariusza przeznaczonego dla Magento. Kluczowe parametry planu testów dostępne w oknie instalacji to:&#x20;

* **Protocol and Domain**. Lista obsługiwanych protokołów znajduje się w dokumentacji JMeter.&#x20;
* **Virtual Users (VU)**. Jest to liczba współbieżnych wątków, których JMeter będzie używał do testowania.&#x20;
* **Test Duration, min**. Czas trwania testu obciążeniowego w minutach.&#x20;
* **Ramp-up Period, min**. Przedział czasu, w którym wszyscy użytkownicy wirtualni (VU) stają się aktywni. Na przykład, dla 120 VU i czasu aktywacji 1 minuta - co sekundę będą dodawane 2 nowe VU. Zakres wartości od 0 do 60 minut. Aby natychmiast uruchomić wszystkich wirtualnych użytkowników, ustaw okres rozruchu na 0.

![](/files/L9PXvGzx4bi7FYnPY8Kb)

Po zakończeniu instalacji okno dialogowe z linkami do panelu testów i Grafany.&#x20;

![](/files/h5cXkLTBHyNs5zD6fMIh)

3\. Przed uruchomieniem testu sprawdź, czy konfiguracja testu odpowiada wcześniejszym ustawieniom. Z poziomu warstwy **Master**, należy uruchomić dodatek *JMeter Cluster Settings* - **Configure**.

![](/files/SRUWtGM4U6dxB8vRyRxE)

Dla naszego przykładu, konfiguracja powinna wyglądać tak jak poniżej:

![](/files/0gUtZw7mcntoScp8ltpr)

4\. Aby uruchomić test wejdź wybierz dodatek *JMeter Cluster Settings* z warstwy **Master** i wciśnij przycisk **Run test**.&#x20;

![](/files/CSDh7F2wdZsghBGKPHSk)

Test obciążeniowy się rozpoczął, co system potwierdzi oknem dialogowym zawierającym URL do panelu testu:

![](/files/KQtUWC8lHBAD7Kk7lJij)

5\.  W panelu testu obserwować można postępy, wejść do statystyk testu zwizualizowanych w Grafanie oraz na koniec pobrać rezultaty - RESULTS DIR.

![Panel testów obciążeniowych - JMeter](/files/Khl5eGBHjthAOin1Z2bW)

![Podgląd testu obciążeniowego Magento 2 z Grafany](/files/WKeYNVXmK39U4kmhBnSH)

![](/files/ck6fZbo3b3fbsTIMN5fG)

### Scenariusz testowy

Magento udostępnia scenariusz do testowania wydajności, który imituje aktywność użytkowników. Magento udostępnia scenariusz testowy dla JMeter do sprawdzania wydajności, który imituje aktywność użytkowników. W rezultacie, otrzymujesz zestaw wskaźników, których możesz użyć do oceny, w jaki sposób zmiany parametrów i ustawień oraz przydzielonych zasobów dla Magento wpływają na wydajność, a więc szybkość ładowania sklepu.

Gotowy skrypt emuluje typowe scenariusze użycia witryny e-commerce, takie jak:

* Przeglądanie katalogu, w tym odwiedzanie strony głównej, strony katalogu, strony produktu, konfigurowalną stronę produktu oraz prostą stronę produktu;
* Dodanie do koszyka zarówno prostego, jak i konfigurowalnego produktu;
* Dokończenie pełnego procesu płatności (wszystkie kroki) jako gość i zarejestrowany klient;
* Czynności administracyjne.

Scenariusz wykorzystuje następujące wzorce ruchu w witrynie dla działań użytkowników:

90% użytkowników puli frontendu, gdzie:

\--- 80% - czynności związane z przeglądaniem katalogu przez gości.

\--- 20% - obsługa koszyka przez klienta.

10% użytkowników do puli administracyjnej, gdzie:

\--- 10% - działania związane z przeglądaniem siatki produktów administratora.

\--- 90% - administracja działań związanych z tworzeniem produktów.

Do testów obciążeniowych wykorzystano nasze rozwiązania Magento o profilu MEDIUM:

500, 1000, 1500 użytkowników dla Klastra Magento 2.

<figure><img src="/files/UHS4NxSH6kWE1hdp1BiY" alt=""><figcaption></figcaption></figure>

{% embed url="<https://cloudlets.zone/rejestracja/?utm_campaign=jitsi&utm_medium=kompendium&utm_source=kompendium>" %}
