Webshop langsam bis stillstand

Hallo,

und zwar hab ich ein riesen Problem. Wie dem Titel zu entnehmen ist, ist der Shop sehr langsam bzw. jetzt lädt er sich tot und bricht ab sobald die max_execution_time von 60 Sekunden erreicht ist.

Ich habe ca. 15 Kategorien und 73000 Artikel. Schon die Startseite lädt er nicht. Woran könnte das liegen ?

Wir benutzen die Community Edition 4.2.0_23610.

Serverdaten:

ScriptPower
Für Ihren Account gelten gemäß dem ihrerseits genutzten Tarif die folgenden Skriptlimits zur Ausführung von Skripten (z.B. PHP und Perl):
Arbeitsspeicher 50 MB RAM
CPU-Zeit 60 Sekunden
Skriptlaufzeit unbegrenzt

Ich denke es liegt nicht am Server, denn auf meinem localhost Rechner ( highend pc) läuft der Shop auch nicht schneller…

Was könnten Fehlerquellen sein?

Danke schon mal für Antworten.

Mfg
highknee88 :wink:

Hallo,

datenbank über phpmyadmin ansehen, ggf. optimieren, ggf. leere Datenbank nach Backup der alten mit Shop verbinden und dann mal testen. Funktioniert es dann liegts an der Datenbank, sind z.B. alle Bilder bereits erzeugt und hängt der PC respektive Server einfach bei der Bilderzeugung?

mfG

Michael.

Welche Bilderzeugung ? Ich verweise auf externe Bilder, aber auf der Startseite ist ja erstmal garnichts und da hängt er schon…

Die Datenbanken befinden sich direkt auf dem Server.

Ok,
da sieht man wieder, das man bei Problemen seine Umgebung genauer beschreiben sollte, dann check doch mal wirklich eine leere Datenbank ohne Artikel, sind auf der Startseite (warum nicht einfach angegeben?) wirklich keine Artikel?

mfG

Michael

Wenn die oxarticles leer ist, ist der Webshop sofort sichtbar, es werden also Artikel auf der Startseite geladen, aber es sind keine auf der Startseite sichtbar.
Es scheint er lädt alle Artikel, nur warum ? Die braucht man ja noch gar nicht auf der Startseite…

Seit wann ist die Performance so schlecht? Wurde was geändert?

Ne…ich hatte das einfach bisher nur nicht mit sovielen Artikeln getestet. Langsam war er schon immer, aber dass er komplett aufgibt erst seitdem alle Artikel reingestellt wurden.

Einmal könnte das eine Ursache sein: http://www.oxid-esales.com/forum/showthread.php?t=4675.

Zum anderen solltest Du mal in der Config-Datei “iDebug” auf 3 setzen, dann erhält man Performance Daten der Ausführung.

Dann kann man mal sehen, wo die Zeit verbraten wird, und welche SQL-Befehle lange dauern.

http://www.ledick.de/ledickauslastung.png

Er braucht 0.7s um einen Artikel zu laden… das ist auch nicht normal oder ?

InnoDB cache hit ratio 0 Cache ratio should be at least 90%

Kann das irgendwie der Grund sein ? oxarticles ist ja InnoDB

hallo,

2 Vorschläge:

  1. Prüfen der Kardinalität der Tabellenfelder:
    Wenn auf einer Tabelle diverse Primax/Index gesetzt sind, gibt die Kardinalität für jedes dieser Felder die Anzahl der füllten Felder an. (jeder kann ja googlen für eine bessere Erklärung :wink: )
    Wenn die Kardinalität für eines/alle Felder fehlerhafte Werte hat, muss die Datenbank bei den Aufrufen diesen Werte ständig neu ermitteln. Dies kann unter Umständen schon mal einen Shop ausser Gefecht setzten (bsp. die Neuberechnung der Artikel pro Kartegorie).
    Manchmal hilft das Reparieren/Optimieren einer Tabelle. In anderen Fällen muss die Tabelle innerhalb der Datenbank kopiert werden, damit die Kardinalität neu berechnet wird.

  2. Umstellung des Tabellen-Typs von InnoDb auf MyISAM
    Im Shop gibt es einige simple Abfragen auf die oxseo-Tabelle. Wenn der Tabellentype von oxseo InnoDb ist nimmt die Abfragedauer zu. (Erfahrungswerte: pro 10000 Einträge um ca. 1 Sekunde mehr MySQl/Shop-“Denkzeit”).
    Je nach Shop kann auch oxarticles oder oxcategories umgestellt werden.
    Die oxorder und oxorderarticles sollten nicht umgestellt werden!

mfg

Also das hat nicht geholfen, also das reparieren und optimieren der Tabellen.
Auch das umstellen von InnoDB auf MyISAM nicht.

http://www.ledick.de/webshop

Vielleicht könnte sich das ja mal einer ansehen, habe iDebug auf 4 gestellt.
Um sich die Kategorien mit den Artikeln anzusehen einfach Test user nutzen:
Name: test, PW: test

Shop ist noch nicht online.

[QUOTE=highknee88;36237]Also das hat nicht geholfen, also das reparieren und optimieren der Tabellen.
Auch das umstellen von InnoDB auf MyISAM nicht.

http://www.ledick.de/webshop[/QUOTE][QUOTE=highknee88;36237]

Vielleicht könnte sich das ja mal einer ansehen, habe iDebug auf 4 gestellt.
Um sich die Kategorien mit den Artikeln anzusehen einfach Test user nutzen:
Name: test, PW: test

Shop ist noch nicht online.[/QUOTE]
Wenn man sich mal das SQL ansieht

Avg Time Count SQL Max Min 0.474217 1 select * from oxarticles where oxparentid = ‘’ and ( ( oxarticles.oxactive = 1 or ( [B]oxarticles.oxactivefrom < ‘2010-07-21 10:09:51’ and oxarticles.oxactiveto > ‘2010-07-21 10:09:51’ )[/B] ) and ( oxarticles.oxstockflag != 2 or ( oxarticles.oxstock + oxarticles.oxvarstock ) > 0 ) and IF( oxarticles.oxvarcount = 0, 1, ( select 1 from oxarticles as art where art.oxparentid=oxarticles.oxid and ( art.oxactive = 1 or ( art.oxactivefrom < ‘2010-07-21 10:09:51’ and art.oxactiveto > ‘2010-07-21 10:09:51’ ) ) and ( art.oxstockflag != 2 or art.oxstock > 0 ) limit 1 ) ) ) and oxissearch = 1 order by oxtimestamp desc limit 5 0.474217 0.474217 0.468134 1 select * from oxarticles where ( ( oxarticles.oxactive = 1 or ( oxarticles.oxactivefrom < ‘2010-07-21 10:09:51’ and oxarticles.oxactiveto > ‘2010-07-21 10:09:51’ ) ) and ( oxarticles.oxstockflag != 2 or ( oxarticles.oxstock + oxarticles.oxvarstock ) > 0 ) and IF( oxarticles.oxvarcount = 0, 1, ( select 1 from oxarticles as art where art.oxparentid=oxarticles.oxid and ( art.oxactive = 1 or ( art.oxactivefrom < ‘2010-07-21 10:09:51’ and art.oxactiveto > ‘2010-07-21 10:09:51’ ) ) and ( art.oxstockflag != 2 or art.oxstock > 0 ) limit 1 ) ) ) and oxarticles.oxissearch = 1 and oxarticles.oxparentid = ‘’ and oxarticles.oxsoldamount>0 order by oxarticles.oxsoldamount desc limit
, dann fällt auf, dass offenbar das Artilkelgültigkeitsdatum aktiviert ist.

Und die betreffenden Abfragen ziemlich lange dauern.

Würde ich mal deaktivieren…

Evtl. auch mal die Aktion auf der Startseite.

Kann man das irgendwo im Backend einstellen!?

Ahja gefunden unter Performence :)… Leider brachte auch dies keine Besserung…

Achja und ich hab mal ausgeschaltet, dass er die Artikelpreise anzeigt…dann ist der Shop richtig schnell, also normal…Es liegt also an der Preisausgabe…aber das kann doch irgendwie nicht sein, dass das solange dauert !?

Kann mir das niemand beantworten ?

Also wenn ich Artikel Preise anzeigen lasse : Seite braucht ca. 10 Sekunden sich zu öffnen
Keine Artikel Preise anzeigen lassen: Seite braucht ca. 0.5 Sekunden um sich zu öffnen

Woran könnte das liegen ? Das ist ja nicht normal…

[QUOTE=highknee88;36294]Kann mir das niemand beantworten ?

Also wenn ich Artikel Preise anzeigen lasse : Seite braucht ca. 10 Sekunden sich zu öffnen
Keine Artikel Preise anzeigen lassen: Seite braucht ca. 0.5 Sekunden um sich zu öffnen

Woran könnte das liegen ? Das ist ja nicht normal…[/QUOTE]
Das macht nun wirklich keinen Sinn, dass das so einen Unterschied macht…

Den Grund für so ein Verhalten kann man IMO nur herausfinden, wenn man in einem Debugger verfolgt, wo die Unterschiede liegen…