Performance Probleme am effektivsten analysieren

Guten Tag zusammen

ich hadere Seit Ewigkeiten mit unserem TTFB Wert, der immer über 2 Sek. liegt. Alles andere ist blitzschnell.
Es scheint definitiv eine Kombination von Plugins zu sein. Ich hab auch schon sukzessive alle ausgemacht, dort habe ich dann rausgefunden → je weniger, desto schneller (logisch) - aber ich habe nie rausgefunden was genau die +1 Sekunde Verzögerung verursacht.

Mit Chrome Inspector und dem Symfomy Profiler hab ich auch versuch rauszufinden WAS genau das Bottleneck ist, ich bin mir nur nicht sicher wo ich da genau drauf achten soll.

Auf gewisse Plugins verzichten wäre schwierig.
Aber zumindest einen Anhaltspunkt welche Function, welcher Listener, welcher Teil eben dafür verantwortlich ist wäre grandios.

Ich hoffe jemand hat diesbezüglich eine Idee

Moin ist TTFB nicht die Antwortszeit des Servers ?
Da wird nur Hosting- Paketwechsel was helfen.
Oder halt CDN

Ja das stimmt. Jedoch ist die ttfb eben für andere seiten wie zb die agb seite unter 1 sekunde.

Es betrifft nur gewisse Seiten. Meine Vermutung ist ja das gewisse plugins sich gegenseitig behindern, ich weiss nur nicht wie ich den verursachern auf die spur kommen soll

Hi,

Du solltest Dich eher an der Gesamtladezeit der entsprechenden Seiten orientieren. Der TTFB sagt lediglich aus wie lange es dauert, bis der Browser die ersten Daten vom Server erhält. Mit der eigentlichen „User Experience“ hat das eher weniger zu tun.

Um das Problem besser eingrenzen zu können evtl. eine Testumgebung einrichten und der Reihe nach Plugin für Plugin deaktivieren, damit Du den Übeltäter identifizieren kannst.

Hilfreich ist häufig auch eine Waterfall Analyse (z.B. mit Pingdom Speedtest):

Zum Thema TTFB siehe auch:

"Why TTFB doesn’t make sense

TTFB is a widely-used metric because it is easy-to-understand and it is a great signal for connection setup time, server time and network latency. It can help website owners identify when performance issues originate from their server. But is TTFB a good signal for how real users experience the loading speed of a web page in a browser?

When a web page loads in a browser, the user’s perception of speed isn’t related to the moment the browser first receives bytes of data. It is related to when the user starts to see the page rendering on the screen.

The loading of a web page in a browser is a very complex process. Almost all of this process happens after TTFB is reported. After the first byte has been received, the browser still has to load the main HTML file. It also has to load fonts, stylesheets, javascript, images and other resources. Often these resources link to other resources that also must be downloaded. Often these resources entirely block the rendering of the page. Alongside all these downloads, the browser is also parsing the HTML, CSS and JavaScript. It is building data structures that represent the content of the web page as well as how it is styled. All of this is in preparation to start rendering the final page onto the screen for the user."

Viele Grüße

Danke für die ausführliche Antwort!
Das klingt plausibel. Ich hatte auch schon 3 plugins aufgemacht die die ttfb drastisch erhöhen.
Heisst der server antwortet aus irgendeinem Grund langsam auf die erste Anfrage, wenn gewisse plugins aktiv sind.

Ich würde nur gerne wissen wie man am effektivsten rausfinden kann, was innerhalb eines plugins für die verzögerung sorgt. Verzichten ist leider keine Option.

Etwa durch lighthouse oder symfony im dev modus.

Probiere mal den Pingdom Speedtest. Weiter unten auf der Seite werden alle geladenen Ressourcen angezeigt inkl. Wartezeit, DNS Request, usw. usw. - häufig ist leider die Ursache, dass ein Drittanbieter-Plugin (z.B. Payment Anbieter, Bewertungsportale, Rechtstexte usw. usw.) Daten nachladen von einer externen Quelle (also vom Anbieter selbst) - auf die Ladezeit dieser Ressourcen hast Du dann leider keinen Einfluss, da dies keine Daten sind, die von Deinem Server ausgeliefert werden (sondern vom Server des Anbieters).

Sollte ein solcher Fall vorliegen bleibt Dir nur übrig, mit der Performance zu leben oder auf das entsprechende Plugin zu verzichten …

Viele Grüße

Guter tipp ! Da sieht alles eigentlich ganz gut aus.

Nachgeladene daten sollten aber wenig einfluss auf den TTFB wert haben oder? Also die erst Reaktion bei Aufruf der HTML seite

Doch - siehe Cloudflare Artikel … wenn diese externen Ressourcen irgendwas „zusammenrendern“, was zur Darstellung der Webseite im Browser notwendig ist, kann es halt dauern, bis die Auslieferung der Seite beginnen kann …

Vielen Dank! Ich untersuche es mal weiter - Ich vermute mal wenn es an einem Plugin oder ähnlichem liegt, würde auch ein CDN der zwischengeschaltet wird keine Abhilfe schaffen, richtig?

Eher nicht - ein CDN liefert nur statische Inhalte aus (z.B. Bilder) und macht eigentlich auch nur Sinn, wenn Du Besucher aus der ganzen Welt hast, sodass auf CDN Server zugegriffen wird, die „näher“ am Besucher sind als Dein Server selbst zur Beschleunigung der Auslieferung.

Du weißt ja schon welche Plugins deinen Shop verlangsamen und auf welchen Seiten das passiert.

Brauchst dir nur ansehen welche Daten die Plugins abrufen bzw. was diese machen.
Vielleicht fehlt einfach ein Index in der Datenbank zum das zu beschleunigen.
Vielleicht kannst du auch ein Plugin weglassen und du passt dein Template selbst an.

Bei mir sind einige Produkte langsam mit sehr vielen Cross-Sellings bzw. vielen Varianten.

Ohne deine Produkte bzw. die Plugins zu kennen sind das alles nur Vermutungen.

Mit freundlichen Grüßen

Guter ansatz, aber mit welchem tool lässt sich das bottleneck am ehesten lokalisieren, ich werde einfach aus der langen zeit zum ersten response nicht schlauer. Habs auch schon im dev Modus mit Profiler angeschaut

time to first byte mag vielleicht seo technisch nicht wirklich relevant zu sein. Aber rein subjektiv sind 2 sek. schon recht viel. ich würde mal vermute, dass das hier eine Kombi aus ESI und Caching ist.
Aber irgendwelche Daten die aus einer externen Quelle kommen gehören grundsätzlich in den Cache.

Da gibt es aber etliche Sache, die das Ganze beeinflussen, Server-Software, Cache, Last auf der Maschine, DB Optimierung, Provider, Peering des Providers, technische Infrastruktur, Anzahl der Server, Load-Balancer und Firewall, etc.

Ich würde bei einer „normalen“ Konfiguration von 150-180ms ausgehen. Das lässt sich aber auf unter 100ms drücken.

da bin ich ja um das 20 fache von entfernt :open_mouth:

Was ist im Profiler herausgekommen?
Habe selbst da kein Tool… und bezweifle, dass es da „ein Tool“ gibt. Eher eine Checkliste um es nach und nach einzugrenzen.

Die Datenbank war bei mir eigentlich immer der Flaschenhals.
Würde zum Beispiel mal die Querys, die 0.1 Sekunden überschreiten, protokollieren. (Slow Query Log)
Nach zwei drei Testaufrufen der Webseite würde ich mir die Log ansehen, ggf. die Abfragen anschauen (EXPLAIN …)

Könntest uns auch mal die URL zu deinem Shop geben oder zumindest sagen um welche Plugins es geht um nicht ganz so viel raten zu müssen.

PS: Schneller geht immer…

Website ist www.hookain.de
Geht insbesondere um kategorieseiten

Plugins die merklichchen einfluss haben sind einmal der Store Switcher und Bilder zu webP konvertieren

Wobei natürlich selbst da noch die ttfb über 1 sekunde war

Den slow query log teste ich mal aus ! Danke dafür

Guten Morgen,
ich würde sagen, da stimmt was nicht mit deinem HTML Cache,
die Seiten kommen offensichtlich nicht aus dem HTML Cache, age ist immer 0 oder 1.
Ist zumindest bei mir im Moment so, wenn ich deine Seite aufrufe.

1 Like

Hi Werner

das ist seltsam,
ich hab definitiv von vorne bis hinten alles durchkonfiguriert-
admin worker ist aus - läuft allles über cronjobs
cache clear und warmup findet einmal nachts statt
Frosch tools meckert auch nicht - wo kann das denn dran liegen…


So wie @WernerBu geschrieben, scheint was mit dem HTTP-Cache nicht zu stimmen. Ist der eventuell in der .env(.local) deaktiviert? Oder wie ist der HTTP-Cache bei dir konfiguriert? Nutzt du Redis oder einen externen Dienst?

Diesbezüglich würde ich mal die Konfiguration prüfen. Ansonsten sieht ja alles top aus bei dir.

Müsste redis sein hab das zumindest so
In der config - packages - shopware.yaml hinterlegt

Wird man aus meiner env und php Einstellungen schlauer?