Best Practices für die Konfiguration
Commerce bietet viele Einstellungen und Tools, mit denen Sie die Antwortzeit auf den Seiten verbessern und einen höheren Durchsatz erzielen können.
Cron-Aufträge
Alle asynchronen Vorgänge in Commerce werden mit dem Linux-cron
-Befehl ausgeführt. Siehe Konfigurieren und Ausführen von cron, um es korrekt zu konfigurieren.
Indexer
Ein Indexer kann im Update on Save- oder Update on Schedule ausgeführt werden. Der Update on Save indiziert sofort, wenn sich Ihr Katalog oder andere Daten ändern. Dieser Modus setzt eine niedrige Intensität von Aktualisierungs- und Browservorgängen in Ihrem Store voraus. Dies kann zu erheblichen Verzögerungen und Datenausfällen bei hoher Auslastung führen. Es wird empfohlen aus Leistungsgründen „Planmäßig aktualisieren zu verwenden, da Informationen zu Datenaktualisierungen gespeichert werden und die Indexierung anteilig im Hintergrund über einen bestimmten Cron-Auftrag durchgeführt wird. Sie können den Modus jedes Commerce Indexers separat auf der Seite System > Tools > Index Management ändern. Der Customer Grid-Index muss immer auf den Update on Save-Modus eingestellt sein.
Caches
Wenn Sie Ihren Store in der Produktion starten, aktivieren Sie alle Caches auf der Seite System > Tools > Cache Management . Wir empfehlen dringend die Verwendung von Varnish, da es sich um eine effiziente Produktions-Seiten-Cache-Lösung handelt.
Asynchrone E-Mail-Benachrichtigungen
Durch Aktivierung der Einstellung „Asynchrone E-Mail-Benachrichtigungen“ werden Prozesse, die E-Mail-Benachrichtigungen zur Checkout- und Bestellverarbeitung verarbeiten, in den Hintergrund verschoben. Um diese Funktion zu aktivieren, gehen Sie zu Stores> Settings > Configuration > Sales > Sales Emails > General Settings >Asynchronous Sending. Weitere Informationen finden unterim Admin Benutzerhandbuch.
Asynchrone Auftragsdatenverarbeitung
Es kann vorkommen, dass intensive Verkäufe an einer Storefront gleichzeitig mit der intensiven Auftragsverarbeitung durch Commerce erfolgen. Sie können Commerce so konfigurieren, dass diese beiden Traffic-Muster auf Datenbankebene unterschieden werden, um Konflikte zwischen Lese- und Schreibvorgängen in den entsprechenden Tabellen zu vermeiden. Sie können Bestelldaten asynchron speichern und indizieren. Bestellungen werden temporär gespeichert und ohne Kollisionen stapelweise in das Order Management-Raster verschoben. Sie können diese Option unter Stores> Settings > Configuration > Advanced > Developer > Grid Settings >Asynchronous indexing aktivieren. Weitere Informationen finden unter „Geplante" im Admin Benutzerhandbuch.
Developer
nicht.Asynchrone Konfiguration speichern
Bei Projekten mit einer großen Anzahl von Konfigurationen auf Store-Ebene kann das Speichern einer Store-Konfiguration übermäßig viel Zeit in Anspruch nehmen oder zu einer Zeitüberschreitung führen. Das Async Config-Modul ermöglicht asynchrone Konfigurationsspeicherungen durch Ausführen eines Cron-Auftrags, der einen Verbraucher verwendet, um das Speichern in einer Nachrichtenwarteschlange zu verarbeiten. AsyncConfig ist deaktiviert standardmäßig.
Sie können AsyncConfig über die Befehlszeilenschnittstelle aktivieren:
bin/magento setup:config:set --config-async 1
Der Befehl set
schreibt Folgendes in die app/etc/env.php
:
...
'config' => [
'async' => 1
]
Starten Sie den folgenden Verbraucher, um mit der Verarbeitung der Nachrichten in der Warteschlange zu beginnen, und zwar nach dem Prinzip „first-in-first-out“:
bin/magento queue:consumers:start saveConfigProcessor --max-messages=1
Zurückgestellte Aktienaktualisierung
In Zeiten intensiver Verkäufe können Commerce Lageraktualisierungen im Zusammenhang mit Bestellungen aufschieben. Dies minimiert die Anzahl der Vorgänge und beschleunigt den Bestellvorgang. Diese Option ist jedoch riskant und kann nur verwendet werden, wenn Nachbestellungen im Geschäft aktiviert sind, da diese Option zu negativen Lagermengen führen kann. Diese Option kann zu erheblichen Leistungsverbesserungen bei Checkout-Flüssen für Geschäfte führen, die ihren Bestand bei Bedarf einfach nachfüllen können. Um verzögerte Stock-Updates auf Ihrer Site zu aktivieren, gehen Sie zu Stores> Settings > Configuration > Catalog > Inventory > Product Stock Options >Use Deferred Stock Update. Weitere Informationen SieAdobe Commerce-Benutzerhandbuch unter Verwalten des Inventars.
Client-seitige Optimierungseinstellungen
Um die Reaktionsfähigkeit Ihrer Commerce-Instanz zu verbessern, wechseln Sie zum Administrator im Standard- oder Entwicklermodus und ändern Sie die folgenden Einstellungen:
Stores-> Configuration -> Advanced -> Developer:
Developer
.Wenn Sie die Option "Enable JavaScript Bundling" aktivieren, lassen Sie zu, dass Commerce alle JS-Ressourcen zu einem oder mehreren Bundles zusammenführt, die in Storefront-Seiten geladen werden. Die Bündelung von JS führt zu weniger Anfragen an den Server, was die Seitenleistung verbessert. Dies hilft dem Browser auch, JS-Ressourcen beim ersten Aufruf zwischenzuspeichern und sie für alle weiteren Suchvorgänge wiederzuverwenden. Diese Option bietet auch eine verzögerte Auswertung, da alle JS als Text geladen werden. Sie initiiert die Analyse und Auswertung des Codes erst, nachdem bestimmte Aktionen auf der Seite ausgelöst wurden. Diese Einstellung wird jedoch nicht für Stores empfohlen, in denen die Ladezeit der ersten Seite äußerst kritisch ist, da der gesamte JS-Inhalt beim ersten Aufruf geladen wird.
Tipps zur Bündelung
- Es wird empfohlen, Tools von Drittanbietern für die Minimierung und Bündelung zu verwenden (z. B. .js). Commerce integrierten Mechanismen sind nicht optimal und werden als Ausweichalternativen bereitgestellt.
- Die Aktivierung des HTTP/2-Protokolls kann eine gute Alternative zur Verwendung des JS-Bundles sein. Das Protokoll bietet viele der gleichen Vorteile. Sie ist in Adobe Commerce standardmäßig für Cloud-Infrastrukturprojekte aktiviert.
- Es wird nicht empfohlen, veraltete Einstellungen wie das Zusammenführen von JS- und CSS-Dateien zu verwenden, da sie nur für synchron geladene JS im Abschnitt "HEAD" der Seite entwickelt wurden. Die Verwendung dieser Technik kann zu einer fehlerhaften Bündelung führen und erfordert, dass die JS-Logik nicht korrekt funktioniert.
Validierung von Kundensegmenten
Händler, die über eine große Anzahl von Kundensegmenten verfügen, können durch Kundenaktionen, wie z. B. die Kundenanmeldung und das Hinzufügen von Produkten zum Warenkorb, eine erhebliche Leistungsbeeinträchtigung erfahren.
Kundenaktionen : Trigger eines Validierungsprozesses für Kundensegmente, der zu Leistungseinbußen führen kann. Standardmäßig validiert Adobe Commerce jedes Segment in Echtzeit, um zu definieren, welche Kundensegmente abgeglichen werden und welche nicht.
Um eine Leistungsbeeinträchtigung zu vermeiden, können Sie die Real-time Check if Customer is Matched by Segment Systemkonfigurationsoption auf "" setzen um Kundensegmente durch eine einzelne kombinierte SQL-Abfrage zu validieren.
Um diese Optimierung zu aktivieren, navigieren Sie zu Stores> Settings > Configuration > Customers > Customer Configuration > Customer Segments >Real-time Check if Customer is Matched by Segment.
Diese Einstellung verbessert die Leistung der Validierung von Kundensegmenten, wenn es viele Kundensegmente im System gibt. Dies funktioniert jedoch nicht mit Implementierungen Split-Datenbank oder wenn keine registrierten Kunden vorhanden sind.
Zeitplan für die Datenbankwartung database
Es wird empfohlen, regelmäßige Datenbanksicherungen für Ihre Staging- und Produktionsinstanzen durchzuführen. Aufgrund der I/O-intensiven Natur von Backup-Vorgängen können langsamere Backups und potenzielle Probleme auftreten. Das gleichzeitige Ausführen von Datenbankprozessen für mehrere Umgebungen kann aufgrund von Konflikten bei den verfügbaren Ressourcen möglicherweise langsamer ausgeführt werden.
Um eine bessere Leistung zu erzielen, sollten Sie die Backups so planen, dass sie nacheinander, einzeln und zu Nebenzeiten ausgeführt werden. Durch diese Methode werden I/O-Konflikte vermieden und die Ausführungszeit verkürzt, insbesondere bei kleineren Instanzen, größeren Datenbanken usw.
Wir empfehlen beispielsweise, ein Backup der Produktionsdatenbank und anschließend die Staging-Datenbank zu planen, wenn die Stores weniger Besuche erleben.
Anzahl der Produkte im Raster begrenzen
Um die Leistung des Produktrasters für große Kataloge zu verbessern, empfehlen wir, die Anzahl der Produkte im Raster mit der Einstellung Stores> Settings > Configuration > Advanced > Admin > Admin Grids >Limit Number of Products in Grid Systemkonfiguration zu begrenzen.
Diese Systemkonfigurationseinstellung ist standardmäßig deaktiviert. Durch Aktivierung können Sie die Anzahl der Produkte im Raster auf einen bestimmten Wert begrenzen. Records Limit ist eine anpassbare Einstellung mit dem standardmäßigen Mindestwert 20000
.
Wenn die Limit Number of Products in Grid aktiviert ist und die Anzahl der Produkte im Raster die Datensatzgrenze überschreitet, wird die begrenzte Sammlung von Datensätzen zurückgegeben. Wenn das Limit erreicht ist, werden die insgesamt gefundenen Datensätze, die Anzahl der ausgewählten Datensätze und die Paginierungselemente in der Rasterkopfzeile ausgeblendet.
Wenn die Gesamtzahl der Produkte im Raster begrenzt ist, wirkt sich dies nicht auf die Massenaktionen der Produktraster aus. Sie wirkt sich nur auf die Präsentationsebene des Produktrasters aus. Beispielsweise ist die Anzahl der 20000
Produkte im Raster begrenzt, der Benutzer klickt auf Select All, wählt die Aktion „Masse Update attributes" aus und aktualisiert einige Attribute. Infolgedessen werden alle Produkte aktualisiert, nicht die begrenzte Sammlung von 20000
.
Die Begrenzung des Produktrasters betrifft nur Produktsammlungen, die von Benutzeroberflächenkomponenten verwendet werden. Daher sind nicht alle Produktraster von dieser Einschränkung betroffen. Nur diejenigen, die Magento\Catalog\Ui\DataProvider\Product\ProductCollection
verwenden.
Produktrastersammlungen können nur auf den folgenden Seiten beschränkt werden:
- Katalog-Produktraster
- Verknüpftes Raster/Up-Sell-/Crosssell-Produktraster hinzufügen
- Produkte zum Produktpaket hinzufügen
- Produkte zu Produktgruppe hinzufügen
- Admin-Seite „Bestellung erstellen“
Wenn Ihr Produktraster nicht beschränkt werden soll, empfehlen wir Ihnen, Filter präziser zu verwenden, damit die Ergebnissammlung weniger Elemente als Records Limit enthält.