Antwort #11 am: 22. Mai 2014, 08:03:21
Wir haben im Shop ca. 700 Artikel und ca. 7000 Kategorien.
Das ist natürlich eine völlig untypische Bestückung des Shops, da könnte ein falsches Query oder eine fehlerhafte Schleife eine Laufzeit verursachen, die sonst niemandem auffällt.
Vor Jahren hatte ich einen ähnlichen Fall im Frontend, in dem die Ursache ein zugekauftes Template war.
MySQL als Fehlerursache schließe ich aus, aber MySQL kann Dir bei der Fehlersuche helfen. Schau mal hier:
http://shopnix.wordpress.com/category/xtcommerce/performance/In den Artikeln geht es vorranging um Tuning von MySQL. Ich konnte mit reinen Tuningmaßnahmen (also Einstellungen der MySQL-Parameter) runde 60% schaffen.
Die drei Parameter in my.cnf:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
helfen dabei, den Fehler aufzufinden. Mit der long_query_time sollte man etwa bei 10 anfangen und dann nach unten gehen.
Um eventuelle falsche Schleifen aufzufinden taugt der Mechanismus leider nicht, denn einige 100 Queries, die je eine halbe Sekunde brauchen, fallen durch dieses Raster.
Für den Fall kannst Du Dir die Queries protokollieren lassen. In /inc/xtc_db_query.inc.php ist der Code dazu enthalten, aber auskommentiert. Aufpassen: Die Funktion gibt es noch mit einer gecachten Variante:
xtc_db_queryCached.inc.php