php Prozesse erzeugen hohe Serverlast - technische Frage zur Arbeitsweise von Gambio

Thema wurde von Orange Raven, 30. November 2021 erstellt.

  1. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.936
    Danke erhalten:
    626
    Danke vergeben:
    114
    Läuft im Hintergrund ein dedizierter Rootserver oder wie genau sieht die Architektur aus?
     
  2. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.123
    Danke vergeben:
    947
    Na, also dann sieht's doch so aus als läge es am Artikeldaten aus Shop A? Immer wenn du die verwendest, gibt es zu viele Prozesse? Mach doch mal zum Test in Liveshop A 4.2 eine DB-Sicherung, exportiere die Artikel und importiere sie wieder. Wenn du dann auch Stress hast, bist du ein Stück weiter. Dann wäre es entweder ein Bug im Importer oder irgendwas in den Artikelstammdaten das zusätzliche Prozesse verursacht.
     
  3. Orange Raven

    Orange Raven Erfahrener Benutzer

    Registriert seit:
    3. April 2013
    Beiträge:
    374
    Danke erhalten:
    146
    Danke vergeben:
    51
    Managed Server, Also dedicated Root im Hintergrund. Mit einzelnen Nutzeraccounts für jeden Shop.


    Nope. Da hast du was falsch gelesen.

    In den Testshops entsteht das ganze sowohl wenn ich die Artikel aus dem Problemshop einspiele, als auch wenn ich testweise die von Kundenshop A nehme.
    In Kundenshop A tritt das Problem aber nicht auf. Nur im Problemshop.

    Ich habe nach wie vor die Lagerbestandsabfrage in Verdacht. Aber langsam gehen mir die Ideen aus :/
     
  4. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.125
    Danke erhalten:
    6.170
    Danke vergeben:
    1.090
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Viel gelesen und mal kombrimiert (Hoffentlich korekt)

    Shop A
    - Problemlos mit Produkten aus Shop A und B

    Shop B
    - Probleme mit Daten aus Shop A und B

    dann muss es an einer Einstellung innerhalb des Shops liegen.
    Mal die Optionen Tabellen vergleichen was anders konfiguriert ist und das dann nacheinander testen
     
  5. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.693
    Danke vergeben:
    903
    Es macht immer noch den Eindruck, als dass Artikelbilder beim Aufrufen der Seite (fälschlicherweise?) nicht existieren und dann der Request ans PHP-Script übergeben wird, das dann das Bild (erneut?) erzeugt und ausliefert. Um das als Ursache ausschließen zu können, würde ich in der .htaccess den Teil
    Code:
    ## if request destination is a product image and size not bigger than 0 try to create the sized image
    RewriteCond %{REQUEST_URI} ".*?\/images\/product_images\/.*\.(?:gif|jpe?g|png)$" [NC]
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule (\.gif|\.jpe?g|\.png)$ %{ENV:BASE}shop.php?do=ImageRequest [L,NC]
    rausnehmen und den Test in einem neuen Inkognito-Browserfenster durchführen.

    btw: In GX 4.5.1 haben wir nochmals einiges an der Performance optimiert, was sich gerade dann auszahlt, wenn man viele Artikel hat.
     
  6. Orange Raven

    Orange Raven Erfahrener Benutzer

    Registriert seit:
    3. April 2013
    Beiträge:
    374
    Danke erhalten:
    146
    Danke vergeben:
    51
    Getestet. Kein Unterschied.

    Ich bin mir fast sicher, dass es ein Problem mit der Mengenabfrage ist.

    Die Kundin hat massig Produkte mit VPE Wert 0.1 und Mengeneinheit x 10 cm und einer Mindestbestellmenge von 5 (also min. 50 cm).

    Bei allen Produkten, wo das eingestellt ist, wird in der Listenübersicht das Mengeneingabefeld mit angezeigt und im Acceess Log sieht man die Abfrage aller Produktverfügbarkeiten bei jedem Aufruf. @Wilken (Gambio) hatte mich drauf hingewiesen, dass das ein Problem sein kann.
    Problem ist es allerdings: Das Mengeneingabefeld in der Listenübersicht ist sowohl in den Einstellungen, als auch eindeutig in der Datenbank (Wert 0) deaktiviert. Angezeigt wird es trotzdem.
    Bei Produkten in der selben Kategorie, welche VPE 1 und Mindesmenge 1 haben, wird das Feld nicht angezeigt.

    Leider vom Support mittlerweile keine (sichtbare?) Reaktion mehr. Ich bin mir aber sicher, dass wenn das Mengeneingabe feld ausgeblendet sein soll und es trotzdem eingeblendet ist, dass das dann eher keine Fehleinstellung im Shop ist, sondern eher ein unschöner Bug. :rolleyes:

    Und ich würde fast wetten, dass hier die Ursache für die massenhaften Prozesse und die hohe CPU Auslastung liegt. Viel mehr kann es mittlerweile nicht mehr sein.
     

    Anhänge:

  7. Orange Raven

    Orange Raven Erfahrener Benutzer

    Registriert seit:
    3. April 2013
    Beiträge:
    374
    Danke erhalten:
    146
    Danke vergeben:
    51
    Update: Nachdem ich heute eine Antwort vom Support erhalten habe, die auf diesen Hinweis eingegangen ist, scheint das Problem scheinbar gelöst. Ich beobachte das ganze noch bis morgen Abend, aber ich kann das Problem im Gegensatz zu vorher nicht mehr simulieren, die allgemeine Durchschnittslast vom Server hat sich mehr als halbiert und die Anzahl der Prozesse ist nicht mehr ungewöhnlich hoch, sondern komplett in der Norm.

    *Trommelwirbel*

    Es scheint, wie von mir am Ende vermutet, die Lagermengenabfrage auf der Produktlisteenseite/Kategorienseite zu sein.

    Die ist zwar im Shop deaktiviert. Aber sobald die Mindestbestellmenge >1 ist und weder Attribute noch Eigenschaften im Artikel sind, wird diese Abfrage dennoch für jeden Artikel in der Kategorie durchgeführt. Und das ist jedesmal eine Datenbankabfrage. Eventuell hängt es auch damit zusammen, dass die Kundin noch VPE 0,1 hat und x10 in der Mengeneingabe hat. Auf jeden Fall sind die Mengeneingabefelder auch in der Listenansicht sichtbar, obwohl sie deaktiviert sind.

    In der product_listing_product.html wurde testweise die Zeile, welche die Abfrage auslöst, entfernt. Seitdem ist Ruhe.:cool:
     
  8. Walter Lenk

    Walter Lenk Erfahrener Benutzer

    Registriert seit:
    28. September 2011
    Beiträge:
    545
    Danke erhalten:
    236
    Danke vergeben:
    88
    Danke Rico für die detaillierten Infos. Tja, nur weil was aus konfiguriert ist heißt das ja noch lange nicht dass es im Hintergrund nicht (teilweise) gemacht wird. ;-) Da sucht man sich dumm und dämlich - das kenne ich. Da muss man so stark in die Tiefe gehen dass es manchmal einfach zu zeitaufwändig ist, manchmal dann auch Zufall wenn man die Stelle identifiziert hat.

    Es freut mich für Dich dass Land in Sicht ist - und vielleicht fließt die Optimierung ja dann irgendwann in neue Versionen ein!?

    Grüße
    Walter
     
  9. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.693
    Danke vergeben:
    903
    Also wir haben das nun auf dem Schirm. Ab wann es eine generelle Lösung gibt, die in allen Szenarien funktioniert und gleichzeitig keine Last erzeugt, kann ich noch nicht sagen. Das Gute ist, dass die meisten Shopbetreiber nicht davon in dem Ausmaß betroffen sind.