Cache / Cache aufwärmen Error

Hi, ich habe zu Cache ein paar Fragen und einen Fehler.

Frage 1 : Wenn ich den Cache im Backend lösche, geht dann der Cache-Warmup verloren? Weil bei mir nach dem Cache löschen die Seite lahmt. Zum Beispiel wenn ich ein Plugin installiere, und dieser Prozess den Cache leert, wäre es für mich wichtig zu wissen ob das stimmt.

Frage 2 : Wenn ich den Cache aufwärme mit der Console:

sudo bin/console sw:warm:http:cache -b 100

Dann bekomme ich aktuell  den folgenden Fehler: 

[Tue Jan 07 08:32:04.057131 2020] [php7:error] [pid 16408] [client x.x.x.x:38636] PHP Fatal error: Uncaught RuntimeException: Could not connect to database. Message from SQL Server: SQLSTATE[HY000] [2006] MySQL server has gone away in /var/www/example.com/engine/Shopware/Components/DependencyInjection/Bridge/Db.php:75\nStack trace:\n
#0 /var/www/example.com/engine/Shopware/Kernel.php(234): Shopware\\Components\\DependencyInjection\\Bridge\\Db::createPDO(Array)\n
#1 /var/www/example.com/engine/Shopware/Components/HttpCache/AppCache.php(250): Shopware\\Kernel->boot()\n#2 /var/www/example.com/vendor/symfony/http-kernel/HttpCache/HttpCache.php(420): Shopware\\Components\\HttpCache\\AppCache->forward(Object(Symfony\\Component\\HttpFoundation\\Request), true)\n
#3 /var/www/example.com/vendor/symfony/http-kernel/HttpCache/HttpCache.php(317): Symfony\\Component\\HttpKernel\\HttpCache\\HttpCache->fetch(Object(Symfony\\Component\\HttpFoundation\\Request), true)\n
#4 /var/www/example.com/eng in /var/www/example.com/engine/Shopware/Components/DependencyInjection/Bridge/Db.php on line 75

Im Netz habe ich MySql Server has gone away gefunden, z.B. https://matomo.org/faq/troubleshooting/faq_183/ und wie man es fixt, Meine Frage wäre hier allerdings, warum die Standard-Einstellungen nicht reichen und ob es hier ggf einen Richtwert gibt, sowas wie 1 Artikel = 0.1Sek bzw 1MB oder sowas?

Danke und Gruss

SW 5.6.4
PHP: 7.3.13
ElasticSearch 7.5.1
CentOS: 7

1.) Wenn du den Cache über das Backend leerst, wird auch der HTTP-Cache geleert, der Warmup bringt also nichts, wenn man regelmäßig im Backend den Cache leert.

2.) Bei “b -100” simulierst du 100 gleichzeitige Requests. Das ist schon recht viel und kann den Server je nach Parametern nach einer Zeit auch in die Knie zwingen. Der Warumup macht ja nichts anderes als per HTTP den Shop aufzurufen und die Seite zu laden.

 

Der Warmup wird häufig falsch verstanden - in den seltesten Fällen ist es sinnvoll alles aufzuwärmen. Die meisten Shops haben einfach zu viele URLs als das es Sinn machen würde das durchlaufen zu lassen. Du hast für jede URL + Parameter Kombination einen Aufruf - bei Detailseiten sind das schon pro Detailseiten häufig 8 verschiedene URLs die aufgewärmt werden müssen (?c-Parameter, ?number-Parameter, Ajax-Variantenwechsel). Man sollte die Seiten aufrwärmen die auch häufig aufgerufen werden. Bei 100.000 Artikeln, machen die Detailseiten keinerlei Sinn, eine Detailseite wird im Standard nach 60 Minuten invalidiert. Zusätzlich wird auch der Cache für den Artikel geleert, wenn er aktualisiert wird. Die Warhscheinlichkeit das ein Kunde also nach dem Warmup innerhalb von 60 Minuten auf den Artikel klickt geht gegen 0. Die Kategorien machen vermutlich mehr Sinn. Gerade bei großen Shops muss man sich eine Sinnvolle Cache Strategie überlegen - wo habe ich den meisten Traffic und wo möchte ich Ladezeiten reduzieren. Danach kann man entsprechend den Aufruf des Warmups anpassen und auch die Cache-Zeiten im Backend. Einfach alles Aufwärmen bedeutet nur Last für den Server ohne Mehrwert.

2 „Gefällt mir“