Sporadische Performanceprobleme

Hallo, seit ich meinen Shop in der Produktivumbgebung betreibe treten, sobald mehrere User gleichzeitig online sind, sporadisch Performanceprobleme auf. Normalerweise laden die Seiten zwischen 1 und 3 Sekunden. Zwischendurch kann die Ladezeit einer Seite plötzlich bis zu 40 Sek. dauern. CPU- und Speicherauslastung des Server sind dann allerdings nie über 20%. Sind ähnliche Probleme bekannt bzw. gibt es eine Lösung? Viele Grüße Oliver Link zum Shop: www.sto-motorsportfotos.de

Hallo ! Vermute mal, dass deine Fotos im Original in hoher Auflösung am Server liegen. Das Rendern der Vorschaubilder bzw der Herstellerlogos dauert dann seine Zeit. Abhilfe bzw Besserung aus meiner Sicht wie folgt: 1. Zur .htaccess am Ende hinzufügen: <ifmodule mod_expires.c> ExpiresActive On ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/jpg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType text/css "access plus 2592000 seconds" ExpiresByType text/js "access plus 2592000 seconds" ExpiresByType text/javascript "access plus 2592000 seconds" ExpiresByType application/x-javascript "access plus 2592000 seconds" </ifmodule>Header unset ETag FileETag None 2. In den Grundeinstellungen > Performance > Caching die Zeiten für Kategorie, Hersteller,Artikeldetailseite auf 604800 setzen. Die verlängerten Cachezeiten für js,css kannst du auch weglassen, vor Allem wenn du noch Dinge am Layout änderst !!! 3. In den Grundeinstellungen > Storefront > Cross-Sellings/Ähnliche Art > die Werte alle auf 10 setzen ! Da muß jetzt was wesentlich höheres drinnen sein, da du mit 4-5 Bildern auf 10 Seiten kommst. Auch wenn du die nicht gleich siehst, werden im Hintergrund 50 Bilder gerendert und das sind 50 zusätzliche GET Anfragen die der Server verarbeiten muß. Denke das könnte zu längeren Cachezeiten führen und somit zu besseren Ladezeiten. lg klaus

Hi, geht ja schon schneller auf! Der Klaus hat schon was drauf! :wink: :thumbup:

Hallo ! Noch ein Problem: Wenn man deine Blogs anklickt: [quote]Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Method „Shopware_Proxies_ShopwareControllersFrontendListingProxy::dieNeueHomepageIstOnlineAction“ not found failure in Enlight/Controller/Action.php on line 55 Stack trace: #0 Enlight/Controller/Action.php(167): Enlight_Class->__call(‚dieNeueHomepage…‘, Array) #1 Enlight/Controller/Action.php(55): Enlight_Controller_Action->__call(‚dieNeueHomepage…‘, Array) #2 Enlight/Controller/Action.php(55): Shopware_Proxies_ShopwareControllersFrontendListingProxy->dieNeueHomepageIstOnlineAction() #3 Enlight/Controller/Dispatcher/DispatcherDefault.php(329): Enlight_Controller_Action->dispatch(‚dieNeueHomepage…‘) #4 Enlight/Controller/Front.php(88): Enlight_Controller_Dispatcher_DispatcherDefault->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #5 Shopware/Bootstrap.php(21): Enlight_Controller_Front->dispatch() #6 Enlight/Application.php(69): Shopware_Bootstrap->run() #7 shopware.php(6): Enlight_Application->run() #8 {main}[/quote] Hast du eventuell die Blog ID falsch eingetragen ?? Einstellungen > Storefront > CMS Funktionen > Blog Einträge aus Kategorie (ID) anzeigen : da sollte die ID vom Blog drinnen sein Da ist auch ein Doppelslash in der URL… Wo der Fehler jetzt her kommt, kann ich jetzt in der Minute nicht sagen… lg klaus

Hallo Klaus! Erst einmal vielen Dank für die tolle Unterstützung! Die htaccess und die Zeiten im Caching habe ich nach Deinen Vorgaben angepasst. Der Shop läuft definitv schon deutlich schneller! Unter Storefront > Cross-Sellings/Ähnliche Art liegen alle Werte bereis unter 10. Kann die hohe Zahl der gerenderten Bilder vielleicht mit der Vielzahl von Herstellern zusammenhängen? Bei den Blogs war tatsächlich eine falsche ID die noch aus dem Testsystem stammte hinterlegt. Ich habe die ID angepasst, der Fehler besteht aber weiterhin (Cache wurde geleert) … Viele Grüße Oliver

Hallo ! Leer doch mal bewußt den Konfiguartionscache und SEO Cache ! Und: Startest du regelmäßig den Cron Job zur Bereinigung ? (automatisch oder manuell?) http://www.shopware.de/wiki/Shopware-Cr … l_461.html Bereinigt auch den Cache der SEO url´s wenn das korrekt eingerichtet ist. lg klaus

Hallo Klaus, nochmals VIELEN DANK! Leider habe ich nun einen Timeout wenn ich das Menü “Cache leeren” auswähle: Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/vhosts/sto-motorsportfotos.de/httpdocs/engine/Shopware/Controllers/Backend/Cache.php on line 134 Viele Grüße Oliver

Bei welchem Hoster bist du denn und wie viele Artikel hast du? Kannst du die Max_Execution_Time hoch setzen lassen? Ansonsten deaktiviere mal den Datenbank-Cache in den Grundeinstellungen > Performance!

Hallo, ich habe einen Virtual Server Linux MAX^2 4.0 bei Hosteurope. Es sind ca. 50.000 Artikel im Shop. Die Spitzenwerte der CPU-Auslastung liegen bei 20 % wenn mehr als 10 Besucher gleichzeitig online sind. Die Speicherauslastung liegt max. bei 10 %. Muss ich zur deaktivierung des Datenbank-Cache “Shopcache deaktivieren” auf ja setzen oder betrifft das dann den gesamten Cache? Welcher Wert für die Max_Execution_Time währe sinnig? Viele Grüße Oliver

Die Max_Execution_Time würde ich auf 60 oder 120 setzen. Bei 50.000 Artikeln macht der DB-Cache durchaus Sinn, den würde ich also aktiviert lassen. Ein anderer Foren-Benutzer hat bei Host-Europe die selben Probleme. Hier mit nur 60 Artikeln. Ebenfalls sporadische Performance-Einbrüche… Vermuteter Grund ist eine schlechte IO-Performance. Eine gute Möglichkeit, wäre ein Peformance-Vergleich mit einem von Shopware zertifizierten Hoster. Zum Beispiel kannst du dir ein kostenloses 30 Tage Test-Hosting von Profihost besorgen. Shopware produziert recht viele Plattenzugriffe und scheinbar bieten die V-Server von Host-Europe dort keine akzeptable Performance. Da wirst du also vermutlich rein von der Konfigurationsseite her nichts wesentliches optimieren können.

Hallo Stefan, danke für die Info! Die Performance ist, nachdem ich die Anpassungen von Klaus durchgeführt habe, eigentlich sehr gut! Auch bin vertraglich noch knapp ein Jahr an Hosteurope gebunden und grundsätzlich sehr zufrieden. Es wäre vielleicht noch interessant zu wissen warum im Hintergrund, wie von Klaus beschrieben, 50 Bilder gerendert werden? Die Max_Execution_Time kann ich leider wg. Neustart des Apache erst später anpassen. Ich möchte mich auf jeden Fall nochmals für die kompetente Unterstützung in diesem Forum bedanken :thumbup: Viele Grüße Oliver

Hallo ! Bevor du gestern Deinen Cache geleert hast, war ich mit dem Firebug auf deiner Seite. Bei der Detailansicht Deiner Artikel hast du ja unten den Slider „Kunden haben sich ebenfalls angesehen:“ Wenn du dein bereinigungsscript nie ausführst, kommt es dazu, dass hier alle geklickten Artikel als kleine Bilder angezeigt werden. Bei einem Artikel waren das 10 Seiten… mal 4-5 Bilder = 40-50 GET anfragen. Der Slider zeigt mittels script ja immer nur die ersten 4-5 Bilder, dann müsstest du auf nächste Seite gehen. Im Hintergrund sind aber schon alle Bilder vorgerendert. Dies trifft auch auf den Slider auf der Startseite zu. Du ladest beim Aufruf BEIDE Bilder…sehen wirst du immer nur eines ! Wenn du bei diesem Hoster bleiben mußt, gibt es schon noch ein paar Ansätze wie der Shop schneller wird. 1. Deine Artikelbilder in der Detailansicht: Geh dort vielleicht noch 15-20% mit der Bildgröße runter. Derzeit sind die Bilder gleich groß wie in der Lightbox. 2. Schalte eventuell solche Slider wie „Kunden haben sich ebenfalls angesehen:“ aus, wenn du die nicht unbedingt benötigst. 3. Installiere dir Firebug im Firfox und gehe dort auf „Netzwerk“…du wirst dann selbst sehen wo es eckt: ein paar Hersteller Logos blockieren dir die GET Anfragen…möglich dass die zu große Auflösung haben ? Du siehst dort auch bei welchen Bildern die Zeit hängen bleibt. Installiere auch „Cache Status“ im Firefox, dann kannst du zwischendurch deinen Browsercache leeren…nur so siehst du die Ergebnisse wie jemand der zum ersten Mal den Shop besucht und leeren cache hat ! 4. Max_Execution_Time brauchst du jedenfalls höher !! 5. Meine Vorschläge verbessern im wesentlichen nur das Cacheverhalten beim Besucher…also bei Jemanden der mehrmals zur Dir kommt…vorausgesetzt der leert nicht bewußt seinen Browsercache ! Für denjenigen der das erstemal kommt, bleiben die Ladezeiten leider länger. In Summe, wenn aber viele mehrmals kommen, wirkt sich das cacheverhalten natürlich positiv auf die Serverleistung aus, weil nicht jedesmal sovile GET Anfragen der Browser zu bearbeiten sind. Also kein Allheilmittel aber bei hoher Zugriffzahl zumindest deutlich spührbar ! Es macht ja schon einen Unterschied, ob ich bei JEDEM Seitenaufruf 90-120 GET Anfragen habe…oder ein großer teil aus dem Browsercache kommt und es nur noch 10-15 sind. Die expire Anweisung verlängert eighentlich nur die Ablaufzeit der datei ! Bleibt somit 30 tage im browsercache ! Aber Vorsicht bei Updates oder Änderung an CSS Datei: Bedenke auch diese dateien haben 30 Tage Gültigkeit. d.h. deine Änderung sieht nur jemand der neu kommt oder mit leerem Cache. Dieser Funktion muß man sich bewußt sein. lg klaus

Hallo zusammen, klinke mich hier mal ein da ich auch bei HostEurope (ebenfalls VirtualServer) mehrmals am Tag heftige Performance Einbrüche habe. Wie gross sollten denn die Artikelbilder (wenn man die Standard Shopware Einstellungen für Vorschau/Zoom etc. belassen hat) maximal sein die man auf den Server hochlädt, bzw. ab welcher Pixel Größe sieht der Kunde optisch keine Verbesserung mehr? Ich habe bei den Bildern das Seitenverhältnis 1:1 genommen und habe, da mich der Hersteller mit einer Bilder-CD versorgt hat, tlw. Bilder mit 1600px x 1600px und mehr hochgeladen…frei nach dem Motto: Viel hilft viel…:sunglasses:

Hallo ! Hier mal etwas zu Funktion: Das einmal hochgeladene Artikelbild wird einmalig beim Hochladen im Ordner /images/articles abgelegt. Entsprechend den Pixel Einstellungen in Grundeinstellungen > Storefront > Thumbnails werden mit den Endziffern 0-5 kleine Thumbnails generiert die dann im Storefront angezeigt werden. Wenn die Artikel nicht verändert oder Bilder erstezt werden, bleiben die Thumbnails unverändert und werden nicht mehr neu erstellt. Wenn ich in der Detailansicht des Artikels (das ist Bildgröße 4, standard 285 * 255 px) aber ein größeres Format einstelle, wird das Bild größer und somit längere Ladezeit. Um auf langsameren “shared webspaces” die performance höher zu halten muß man einfach die Anzahl der GET Anfragen und die Dateigrößen niedrig halten ! Wenn ich also generell auf Slider verzichte, die Pixelgröße bei den 285 * 255 beim Artikelbild Detailansicht belasse wird es spührbar rascher werden. Wie groß das Originalbild beim Upload ist, ist da weniger wichtig. Würde da aber trotzdem generell bei max. 800 * 600 px bleiben. In dem Fall wo ja Bilder verkauft werden sicher nicht einfach ! Die Lösung wird da langfristig nur ein dedicated server sein, wo nicht 150 andere am Server sind. lg klaus

1 Like

Hallo, es gab wohl noch eine weitere Ursache für die Performanceprobleme: Support Hosteurope: Der Server hatte das eingestellte MaxClients-Limit erreicht und/oder der konfigurierte Wert war bei einem Virtual Server dieser Ausbaustufe zu niedrig. Den Wert haben wir nun heraufgesetzt. Nach dieser Änderung und den Tips von Klaus läuft der Shop jetzt stabil! Bei zwei Dingen würde ich mich noch über Unterstützung freuen: 1. Der Block funktioniert noch nicht! Es erscheint weiterhin die Fehlermeldung oder ich Lande auf der Startseite 2. Ich habe den Cronjob eingerichtet. Gibt es eine Logdatei an der ich sehen kann ob der Cronjob korrekt ausgeführt wird? Viele Grüße Oliver