Gelöst MYSQL hat eine sehr hohe CPU Last

Status
Es sind keine weiteren Antworten möglich.

Stephs182

Sehr aktives Mitglied
21. Januar 2015
248
25
Luckau NL
Hallo zusammen,
vielleicht kann mir jemand bei dem Problem Aufschluss geben. Wir sind in der letzten Woche vom Shop 3.20 auf den aktuellen Shop 4.05 Build 3 umgestiegen. Vorher war unsere Last im Server unauffällig. Seit dem Umstieg geht uns die CPU Last im MYSQL durch die Decke. Grundlast liegt bei 30%-40% zu Spitzenzeiten geht es auch mal gen 100%.

Ich habe rausbekommen, dass es die Abfrage zum Xsell ist, die das ganze hochtreibt in dem in den MYSQL-Slow- Log geschaut habe.

Code:
# Query_time: 9.370473  Lock_time: 0.000400 Rows_sent: 4  Rows_examined: 387157
SET timestamp=1505028691;
SELECT 3883 AS kArtikel,
                        IF(tartikel.kVaterArtikel = 0, txsellkauf.kXSellArtikel, tartikel.kVaterArtikel) AS kXSellArtikel,
                        SUM(txsellkauf.nAnzahl) nAnzahl
                    FROM txsellkauf
                    JOIN tartikel ON tartikel.kArtikel = txsellkauf.kXSellArtikel
                    WHERE (txsellkauf.kArtikel IN (
                            SELECT tartikel.kArtikel
                            FROM tartikel
                            WHERE tartikel.kVaterArtikel = 3883
                        ) OR txsellkauf.kArtikel = 3883)
                        AND IF(tartikel.kVaterArtikel = 0, txsellkauf.kXSellArtikel, tartikel.kVaterArtikel) != 3883
                    GROUP BY 1, 2
                    ORDER BY SUM(txsellkauf.nAnzahl) DESC, rand()
                    LIMIT 4;
Ist die Abfrage die uns beschäftigt. (Hier ein Spitzenreiter mit über 9Sek.)
Unsere Datenbank ist mittlerweile über 400 MB groß.

Ich habe also die Performance geprüft indem ich das X-Sell in den Artikeldetails ausgeschaltet habe und dann war alles wieder ruhig. Aber das kann nicht die Lösung sein.

Nun dachte ich, dass bei dem Upgrade vielleicht ein Index nicht richtig in der Datenbank steht. Also habe ich dies mit einer frischen 4.05er Datenbank verglichen in den Tabellen tartikel und txsellkauf = Alles ok.

Habt ihr vielleicht einen Ansatzt, was ich noch machen kann oder kennt jemand diese Problematik? Wir betreiben übrigends einen eigenen Server im Rechenzentrum auf dem der Shop liegt, also die Hardware sollte reichen, zumal sie zuvor sich ja auch eher gelangweilt hat.

Viele Grüße
Stephan
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.342
2.003
Berlin
Habt ihr einen aktiven cache?
Redis ist ja hier die erste Wahl, insbesondere weil ihr einen eigenen Server habt.

Bei den Kunden, bei denen ich auch die Server in der Hand habe, liegt die MySQL last im normalen Bereich, da sind mir bisher noch keine wirklich extreme Performance Probleme aufgefallen.

Von welcher Artikel Anzahl sprechen wir hier.
 

Stephs182

Sehr aktives Mitglied
21. Januar 2015
248
25
Luckau NL
Vielen Dank für die Antwort.
Wir haben zunächst keinen Cache genutzt. Testweise die File Cache Methode, leider ohne Erfolg. Ich habe nun mal den Redis installiert und seit einer Stunde zu laufen. Die CPU ging zwar zunächst runter, doch nun scheint es wieder hoch zu gehen, zumindest leicht.

Wie lange lasst ihr die Lifetime vom Cache? Ich habe jetzt mal ne halbe Stunde gesetzt.

Wir haben knapp 10t Artikel wobei nur etwa 1500 Artikel Väter sind.
 

Stephs182

Sehr aktives Mitglied
21. Januar 2015
248
25
Luckau NL
Ja klar ist das nicht so viel... deshalb verstehe ich die Reaktion auch nicht. Das sollte der Server problemlos wegstecken... auch weil er es ja im Shop3 auch gekonnt hat.

Redis läuft nun 2h ... die MySQL-CPU Last ist nun nicht mehr so sprunghaft, aber immernoch über 30%.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Hallo,
...Habt ihr vielleicht einen Ansatzt, was ich noch machen kann oder kennt jemand diese Problematik?
Kannst du mal ein EXPLAIN auf die Problematische Abfrage machen und das Ergebnis posten!? Versuch auch alternativ mal die betroffenen Tabellen einem ANALYZE zu unterziehen. Also auf der DB ein
SQL:
ANALYZE TABLE tartikel;
ANALYZE TABLE txsellkauf;
absetzen.
 

Stephs182

Sehr aktives Mitglied
21. Januar 2015
248
25
Luckau NL
Vielen Dank für deinen Hinweis @FPrüfer . Ich habe das mal versucht. Grundsätzlich kommt bei einer Simulation das Ergebnis. Is ja ne "Select Abfrage". Das passt auch. Analyze brachte jeweils ein ok.

Was mich wundert, gestern abend um 20 Uhr habe ich den Cache installiert, wie von css-umsetzung geraten. Gegen 0 Uhr hat sich das SQL beruhigt und läuft seit dem sehr ruhig, wie wir es gern hätten. In der Anlage mal die Diagramme... Am Dienstag (5.9.) war das Update von Shop 3 auf Shop 4. Gut zu erkennen... in der zweiten Grafik sieht man die letzten 24h... sql-last.png sql-last-sunday.png Baut der Cache sich solange auf?

Die MySQL Slow Log ist heute auch wieder weitestgehend leer geblieben.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.342
2.003
Berlin
Es ist ja nicht so das der cache eingeschaltet wird und schwups ist er da.
Der Cache baut sich langsam aber stetig, mit jedem neuen Aufruf auf, es kann also sein das eine Seite im Shop oder ein Artikellisting noch nicht im cache ist weil es einfach noch nicht aufgerufen wurde.

Je länger der Shop also läuft umso besser sollte die Performance werden, auch die indexe bauen sich ja langsam auf und sind nicht schwups auf einmal da (behaupte ich, bin da ziemlich sicher in der Aussage)
Dadurch das die einzelnen caches zu unterschiedlichen Zeiten aufgebaut werden, werden Sie auch nicht alle auf einmal erneuert, was ebenfalls der Performance zugute kommt.
 

Stephs182

Sehr aktives Mitglied
21. Januar 2015
248
25
Luckau NL
Ich wollte nochmal Feedback geben, dass die Performance sich deutlich verbessert hat und der Shop nun besser läuft. Dadurch hat man auch wieder einen Schupp bei der Conversion Rate gespürt. Ich denke das Thema kann nun geschlossen werden.
 
Status
Es sind keine weiteren Antworten möglich.
Ähnliche Themen
Titel Forum Antworten Datum
Neu PHP - MySQL Konfiguration am Server für JTL Shop 5 Allgemeine Fragen zu JTL-Shop 1
Neu DHL Kleinpaket funktioniert nicht, wenn man vorher nicht Warenpost genutzt hat JTL-ShippingLabels - Fehler und Bugs 20
Neu Wie Kunden löschen, der noch nie bestellt hat? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Vater hat jetzt Kinder, aber es sind zu viele! JTL-Ameise - Ideen, Lob und Kritik 2
Neu PayPal Checkout -> Der Zahlungsanbieter hat eine erneute Bestätigung der Kaufsumme angefordert Plugins für JTL-Shop 0
Neu WARNUNG JTL GPSR Plugin 1.0.2 funktioniert nicht, wenn Artikel keine Beschreibung hat Plugins für JTL-Shop 20
Hat sich erledigt. Kann ein Mod diesen Post löschen? JTL-Wawi 1.9 0
Neu Workflow Email versenden wenn Durchnittseinkaufspreis sich verändert hat JTL-Workflows - Ideen, Lob und Kritik 1
Neu "Noch X € und wir versenden kostenfrei" hat einen Fehler Betrieb / Pflege von JTL-Shop 0
Neu Hat jemand die Transglobal API (oder das Excel Bulk tool) in JTL integriert ? User helfen Usern 0
Neu Vorlage zur Berichtigung von Rechnungen OHNE eine Rechnung zu STORNIEREN! Dienstleistung, Jobs und Ähnliches 0
Neu Amazon VS (lite) eine Rechnung fehlt - manuelle Erstellung möglich ? User helfen Usern - Fragen zu JTL-Wawi 0
Neu "Rechnung erstellen" > "Ohne Vorschau mit Ausgabe" kann nicht komplett abgebrochen werden: eine Rechnung wird immer erstellt! JTL-Wawi - Fehler und Bugs 0
Neu JTL POS - mehrere Filialen - je Filiale eine Kasse im Dashboard in Wawi wird aber alles zusammen gefasst Allgemeine Fragen zu JTL-POS 1
Neu Eine Position "Rechnung" auf Bestellbestätigung Allgemeine Fragen zu JTL-Shop 2
Version 1.9.6 X eine einzige Katastrophe.... Fehler und nervige Dinge JTL-Wawi 1.9 11
Neu DHL Label drucken - kommt nur eine Adresse raus aber kein Label User helfen Usern - Fragen zu JTL-Wawi 3
Neu Wie löscht man eine Lizenz aus der Lizenzverwaltung im KC? Allgemeine Fragen zu JTL-Shop 2
Neu Sprachvariablen: Statt mehreren Variablen (wie z. B. %s %s) nur eine bestimmte ausgeben Allgemeine Fragen zu JTL-Shop 2
Neu Workflow der prüft, ob eine Bestellung komplett aus einem bestimmten Lager lieferbar ist. User helfen Usern - Fragen zu JTL-Wawi 7

Ähnliche Themen