[gelöst] Schlechte Performance mit HTTPS, massiv schneller nur mit HTTP

Kann morgen nochmal bei Profihost schauen, ob wir da noch eine SSL-Domain haben und testen.

Ich hab es by Cyon gehostet.

SW5 habe ich auch dort. ==> kein solches Verhalten, nur der normale Protokollbedingter delay.

nur bei SW6.

Ebenfalls bei Cyon eine Drupal installation. Alles im normalen Rahmen.

Also die zweite Sales-Channel-Domain scheint angelegt zu werden, wenn man per SSL installiert. Aber die verlangsamt auch meinen Shop nicht wirklich.

https://de.shopwaretest.de

Das wäre eine aktuelle EA1 Installation. Sehe da so erstmal keine Performance-Probleme mit SSL.

Nun habe ich auch mal kurz ein wenig die Zeit genommen, und mir mein erstes SW6 EA installiert.
Fazit wie oben: Mit HTTPS bricht die Performance der API unglaublich stark ein.
Testumgebung: mein privates " PrivatPlus" bei All-Inkl. (PHP 7.3 fastCGI)
SW6 & Demo-Daten

Anbei mal die Werte nach dem Login im admin einmal mit HTTP und einmal mit HTTPS

Am besten kann mir mal jemand eine URL und Zugang rüber schicken, scheint ja erstmal allinkl. zu betreffen. Vielleicht findet dann ein Entwickler die Ursache.

@Moritz Naczenski schrieb:

Am besten kann mir mal jemand eine URL und Zugang rüber schicken, scheint ja erstmal allinkl. zu betreffen. Vielleicht findet dann ein Entwickler die Ursache.

 

 

Ich kann Euch meine Stagingumgebung für eine gewisse Zeit zur Verfügung stellen. Damit dürft ihr anstellen was ihr wollt. (Sie wird eh wieder vom Master überklatscht, wenn ihr fertig sind).

Nur möchte ich die Zugangsdaten nicht hier veröffentlichen. 
Wie kann ich Dir diese zukommen lassen. 

Am besten per Mail an forum@shopware.com

Mail ist unterwegs.

Wäre gut, wenn mir noch jemand einen Zugang schickt, da im Shop von @sndo‍ der Admin immer noch ganz zügig reagiert (80ms für produkte). Bei den anderen scheint es ja gravierender zu sein.

Das „Backend“ reagiert in Teilen kaum bis gar nicht, der Response der API auf AJAX-Requests dauert dann gerne bis zu einer halben Minute oder länger, auch wenn am Ende nur ein paar KB geliefert werden.

Ich würde ja meinen Testshop wieder zur Verfügung stellen, hätte er das „Entfernen“ der zweiten Url nur überlebt - aber danach kam ja nur noch eine symfonysche Panic im Frontend Grin Was soll der Murks eigentlich, dass eine Url für einen Shop für jedes Protokoll angeleget werden muss? Ein neuer Chanel hat zwar geholfen, aber um überhaupt etwas machen zu können, habe ich auf der Testdomain SSL komplett deaktivieren müssen. Kann SW sich nicht selber einen Account bei All-Inkl mieten? Monatlich kündbar, und die 24,95EUR für Business sollte sich eine AG doch leisten können *feix*

Hab leider derzeit fast keine Zeit für „Internet“ und „Shopware“ (Kernsanierung zukünftiges Büro im 200 Jahre alten Haus) - darum kann ich dieses Mal mal nicht zur Problemfindung beisteuern  Angry-Face

Wir haben durchaus ein Paket bei All.Inkl. - hätte mir nur etwas Zeit gespart :wink:

Werde dann bei Zeit mal einen Shop aufsetzen und das dort mal versuchen nach zu vollziehen. Generell brauchst du den Shop ja ohnehin nur über ein Protokoll erreichbar - ist ja gängige Praxis, dass man direkt auf SSL umleitet. Das wird an der Stelle aber ohnehin noch verfeinert/ausgebaut

Haben es mal in ein Ticket gegossen, da es auf unserem Hosting-Paket auch so ist.

2 Likes

Danke [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍ für’s kümmern und nachstellen!
Bin gespannt, woran es am Ende liegt - wenigstens ist es bei all-inkl so erst einmal reproduzierbar.

Im Frontend war der Erstaufruf via SSL langsam, wie im Ticken, kamen Produkte und Startseite gut erst 2 Minuten später. Hatte man das einmal “ausgesessen”, kamen bei späteren Aufrufen die Produkte (im Listing) sofort (Frontend) - bis man was an der Shop-Config geändert hat. Scheint also so, dass das Ausliefern “aus dem (twig)-Cache” eher weniger das Problem hat.

@sonic schrieb:

Im Frontend war der Erstaufruf via SSL langsam, wie im Ticken, kamen Produkte und Startseite gut erst 2 Minuten später. Hatte man das einmal „ausgesessen“, kamen bei späteren Aufrufen die Produkte (im Listing) sofort (Frontend) - bis man was an der Shop-Config geändert hat. Scheint also so, dass das Ausliefern „aus dem (twig)-Cache“ eher weniger das Problem hat.

 

 

Das würde auch erklären, wieso bei meinem shop es nicht so frapannt ist. Ich leere den cache und mache einen warmup nach dem stagen und nach dem import 

Ich habe jetzt einmal Feedback aus unserer Entwicklung bekommen:

HTTPS ist dann langsam, wenn man in die Administration geht. Dort wird ein Request auf die Route /api/v1/_action/message-queue/consume gesendet welcher standardmäßig 30 Sekunden dauert. Das ist auch so gewollt, diese Route gehört zur Message Queue und dient der abarbeitung von scheduled tasks.

Sobald der Request abgeschlossen ist bzw. man die Administration schließt und 30sek wartet, ist alles wieder schnell. Der scheduled request kann in der Datei: vendor/shopware/Core/Framework/Resources/config/packages/shopware.yaml via enable_admin_worker deaktiviert werden.

Vermutung: Die Anzahl der PHP Prozesse begrenzt und alle anderen PHP Prozesse werden zurückgestellt solange der consume call läuft. Was uns hier wundert, ist die Tatsache, dass diese Limitierung bei HTTP nicht greift.

Wenn ich das deaktiviere und danach den Cache lösche (var/cache per FTP), dann läuft der Admin auch unter HTTPs schnell.
Ich werde mal schauen, ob ich bei All-inkl rausbekomme, ob es da ein Limit gibt.

 

Fyi, die Message Queue ist sowas wie Cronjobs, die Tasks können später auch auf dem Server direkt ausgeführt werden. Quasi das pendend zur SW5 Live-Abarbeitung der anfallenden Tasks.

Ein “Tasklimit” kann ich mir nicht wirklich vorstellen. Dann wäre der Shop - und auch jegliche andere Anwendung - nicht brauchbar, wenn mehr als ein Request gleichzeitig auf dem Paket läuft. Mal abgesehen davon halte ich es für sehr kurios, einen “worker” für feste 30 Sekunden auf einem Webserver laufen zu lassen - womöglich mit 100% CPU Auslastung, dann klemmt wirklich alles Andere auf dem System. Möglich, dass der “Worker” einfach den SSL-Encoder blockiert und andere Prozesse auf dem “Verschlüsseler” warten müssen? Also so eine Art “SingleThread” im Apache  Halo

Letztlich hat All-inkl. auch nur mehr oder weniger 0815 Ubuntu - könnte also auch bei jedem anderen Hoster auftreten. NOCH dürfte ja die Anzahl der Tester überschaubar sein, drum so wenige “Betroffene”  Wink

Wie auch immer. wird sicherlich einer eine echte Lösung finden  Thumb-Up

Der Support möchte Testweise unser System auf Ubuntu 18 umziehen um Probleme die es wohl mit HTTP2 unter Ubuntu 16 gibt, auszuschließen.

Ich gebe das mal nächste Woche in Auftrag und werde dann berichten!

1 Like

Feedback wäre echt toll. „Privat“ habe ich z.b. MySQL 5.7.26 - aber auf dem Business haben wir noch MySQL 5.6 - müssten also eh für SW 5.6 mal wieder umziehen. Wäre natürlich passend, gleich bei einem Umzug auf so ein Problem hinzuweisen. THX Moritz  Thumb-Up Smile

1 Like

Habe den Umzug nun beantragt, denke der ist morgen abgeschlossen (zumindest lt. Planung von All-Inkl.). Schaue mir das dann morgen nochmal an.