Neu Hohe CPU-last auf Shopserver - JTL Shop Query?

AWo

Aktives Mitglied
6. Mai 2019
61
3
Hallo,

wir sehen seit ca. 2 Monaten eine hohe CPU-Auslastung auf unserem JTL- Shop Server (Linux, Ubuntu 22 LTS, 32 GB RAM, 6 Cores). Dort laufen neen dem Shop auch einige Wordpress-Instanzen.

Seit den angesprochenen 2 Monaten bekommen wir vom Server Monitoring mehrfach am Tag Alarme, dass die CPU zu 100% ausgelastet ist, der System-Monitor-Graph bestätigt das, eben so "top" und "htop". Die Auslastung geht gem. '(h)top' auf Kosten der mariadb. Daraufhin haben wir mit der SQL Workbench nachgesehen und alle Top-Auslatungsqueries kommen vom JTL Shop. Der Spitzenreiter mit Abstand ist diese Query hier:

SELECT MAX ( `ssMerkmal` . `fMax` ) AS `fMax` , MIN ( `ssMerkmal` . `fMin` ) AS `fMin` FROM ( SELECT `ROUND` ( `LEAST` ( ( `tpreisdetail` . `fVKNetto` * ? ) * ( ( ? - `GREATEST` ( `IFNULL` ( `tartikelkategorierabatt` . `fRabatt` , ? ) , ?, ... ) ) / ? ) , `IFNULL` ( `tsonderpreise` . `fNettoPreis` , ( `tpreisdetail` . `fVKNetto` * ? ) ) ) * ( ( ? + ? ) / ? ) , ? ) AS `fMax` , `ROUND` ( `LEAST` ( ( `tpreisdetail` . `fVKNetto` * ? ) * ( ( ? - `GREATEST` ( `IFNULL` ( `tartikelkategorierabatt` . `fRabatt` , ? ) , ?, ... ) ) / ? ) , `IFNULL` ( `tsonderpreise` . `fNettoPreis` , ( `tpreisdetail` . `fVKNetto` * ? ) ) ) * ( ( ? + ? ) / ? ) , ? ) AS `fMin` FROM `tartikel` JOIN ( SELECT DISTINCTROW `kArtikel` FROM `tartikelmerkmal` WHERE `kMerkmalWert` = ? ) AS `tmerkmaljoin` ON `tmerkmaljoin` . `kArtikel` = `tartikel` . `kArtikel` JOIN `tartikelmerkmal` ON `tartikel` . `kArtikel` = `tartikelmerkmal` . `kArtikel` JOIN ( `tpreis` JOIN `tpreisdetail` ON `tpreisdetail` . `kPreis` = `tpreis` . `kPreis` AND `tpreisdetail` . `nAnzahlAb` = ? )

Sie wird von allen Queries am häufigste ausgeführ und dauert immer am längsten.

Kann jemand etwas dazu sagen? Ist das für die Statistiken, die ich im Shop-Admin-Bereich sehe?

Gruß
AWo
 

AWo

Aktives Mitglied
6. Mai 2019
61
3
So, zwei Adressbereiche ausfindig gemacht, die permanent über den Shop rennen. Erst musste ich den Apache geschwätziger machen, dann konnte ich die Adressen identifizieren und per .htaccess blocken. Siehe da, waren bis jetzt die mariadb-Prozesse auf den ersten tausend Plätzen bei der Auslastung vertreten, läuft es jetzt wie vorher und mariadb ist nicht mehr führend, sondern es wechselt jetzt bunt durch.

Das soll für heute Abend reichen....mehr später...

Danke & Gruß
AWo