Shopware 6 Problem: 100% CPU Auslastung durch Admin-Worker

Shopware 6 Problem: 100% CPU Auslastung durch Admin-Worker

Bei Shopware 6 kann es dazu kommen das der ganze Server mit 100% CPU ausgelastet wird, und somit alle betroffenen Webseiten bzw. Shops extrem langsam werden, weil der Server überlastet ist. Das kommt daher weil Shopware 6 im Hintergrund Browser-Prozesse ausführt und somit Web-Prozesse blockiert. Bisher bekannte Ursachen sind, das mehrere User parallel im Backend eingeloggt sind oder in einem Fall hatten wir das Problem wenn Produkte dupliziert wurde und der Admin sich nicht aus dem Backend ausloggt hat. Man erkennt den Fehler z.B. im Error-Log anhand: POST /api/v3/search/sales-channel-domain HTTP/2.0". 
 

Wie kann man den Admin-Worker von Shopware deaktivieren?

Der Admin-Worker muss deaktiviert werden um die CPU-Auslastung von 100% zu vermeiden. Dies kann man ganz einfach auf dem FTP-Server selbst erledigen indem man die Datei shopware.yaml im Unterverzeichnis /config/packages anglegt und dort folgenden Inhalt einträgt:

shopware:
    admin_worker:
        enable_admin_worker: false

Eine ausführliche Anleitung gibt es auch von Shopware direkt.

Wichtig ist jetzt auch das man die dafür benötigten Cronjobs beim Hoster anlegt. 
Für Hetzner und Profihost gibt es eine Anleitung welche bei Shopware hinterlegt ist.
Für Timmehosting können einfach diese beiden Cronjobs mit einem Ausführungs-Interval von 5min hinterlegt werden.

Message Queue zur Abarbeitung bei Timmehosting als Cronjob einrichten
[php] [web_root]/bin/console messenger:consume --memory-limit=2048M --time-limit=300

Scheduled Tasks zur regelmäßigen Ausführung bei Timmehosting als Cronjob einrichten
[php] [web_root]/bin/console scheduled-task:run --memory-limit=2048M --time-limit=300

Danach sollte der Cache einmal geleert und die Theme neu kompiliert werden. Dies kann man mit zwei einfachen CLI-Befehlen im Terminal ausführen:
php bin/console cache:clear
php bin/console theme:compile
 

Shopware 6 Problem mit Refresh-Time der Sitemap beheben

Ein weiteres bekanntes Problem für die Auslastung ist wenn die Sitemap generierung "Live" erfolgt. Dafür kann im Shopware-Backend unter Einstellungen > Shop > Sitemap die Refresh-Time der Sitemap auf manuell umgestellt werden. Hierbei wird die Sitemap nicht mehr automatisch bei Ämnderungen aktualisisert sonder nur mittels CLI-Befehl: php bin/console sitemap:generate. Bei der manuellen Refresh time ist es notwendig den CLI-Befehl, jedes mal wenn eine neue URL hinzugefügt oder eine alte entfernt wird, auszuführen. Weitere Informationen gibt es direkt in der Shopware Dokumentation.

SEO aus Bielefeld - Die richtige Analyse und Strategie