# 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>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kompendium.cloudlets.zone/kompendium/aplikacje/magento-2-automatycznie-skalowalny-klaster-z-cdn.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
