Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS18000020 Blockt Queue

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    LBS18000020 Blockt Queue

    Hallo zusammen,

    ich nutze Edomi bereits seit einiger Zeit. Nun ist mir aber aufgefallen, dass es teilweise sehr lange gedauert hat bis die Logiken abgearbeitet wurden. Zunächst hatte ich einen CommunityLBS in verdacht, aber das kam bei mir Zeitlich nicht hin. Also habe ich mir das mal etwas genauer angesehen. Folgendes Verhalten zeigte sich bei mir:

    1. Alle Logiken die in Sekunde 1-(ca. 35) jeder Minute gesendet wurden liefen in der Queue auf und wurden erst nach ereichen der Sekunde 35 in jeder Minute abgearbeitet.
    2. Daraufhin habe ich mir die Logiken angesehen die Minütlich getriggert wurden. Das waren Ansich nicht viele und ich grenzte das Verhalten weiter ein indem ich die Trigger dann temporär auf 5-Minütlich umgestellt habe.
    3. Ursache war dann ein Trigger der mir die Maximale Windgeschwindigkeit der letzten 24h liefert.

    Um das Problem zu reporoduzieren habe ich die GA Requestable gemacht und die gleiche Logik im Request ausgeführt. Wenn ich meine Logik triggere wird in meinem Fall die gesamte Logikbearbeitung für etwa 30 sek. geblockt.

    Ursache ist hier offensichtlich der Baustein 180000020 (Datenarchiv-Statistikdaten).

    Meine Logik habe ich einmal angefügt.

    Habe ich hier einen Denkfehler, oder gibt es eventuell einen performanteren Weg die Daten zu bekommen? Selbstredend muss das nicht Live geschehen, deshalb habe ich den Trigger nun generell auf 5-minütlich gelassen. Das verhalten erklärt jedoch auch warum meine Auswertung der Gas Verbrauchswerte nicht so richtig funktionieren möchte die ich nachts einmal anstoße.

    gaert wäre es möglich hier das Verhalten Asynchron auszuführen, so dass die Logik-Engine nicht blockt?

    Beste Grüße,
    Michael
    Angehängte Dateien

    #2
    Wie groß sind denn die Datenarchive?

    Kommentar


      #3
      CNT gibt 8614 raus
      Also für das Archiv
      Wenn ich die DB korrekt interpretiert habe, sollte der angefügte Screenshot dann die Tabelle mit allen Einträgen sein aus allen Archiven..
      Angehängte Dateien
      Zuletzt geändert von dRei; 18.02.2021, 17:42.

      Kommentar


        #4
        Bei einem Select auf 8,5 Mio Einträge kann das auch schon mal was länger dauern. Wie performant ist denn deine Hardware?
        Ob das asynchron besser läuft müsste man mal ausprobieren. Die DB wird dann wohl trotzdem unter Last sein, aber zumindest kann die Logic-Engine weiterlaufen. Aber sie greift ja auch konstant auf die DB zu.

        Kommentar


          #5
          Ja, das ist mir schon klar soweit. Wäre halt super, wenn die Logic-Engine nicht geblockt würde bei solchen Auswertungen und eigentlich ist eine Datenbank ja auch dafür da ggf. mit mehreren Verbindungen zu arbeiten.

          Als Hardware benutze ich einen Beelink BT3Pro II 4GB Ram 64GB eMMC Intel Atom x5-Z8350

          Während der Auswertung geht die CPU-Last auf 30% hoch. Da wäre also noch Luft nach oben, obwohl es nicht die potenteste Hardware ist. Im normalfall dümpelt Edomi bei mir so ca. bei 10% rum.
          Anbei einmal ein Screenshot der den Effekt ganz schön zeigt.

          Kurzer EDIT:
          Fern ab von dem Effekt habe ich nun mal für meine Datenarchive eine Lösch-Zeit eingestellt. Die Daten sollten also heute nacht deutlich runter gehen, trotzdem ist es m.E. Sinnvoll solche Bausteine "für sich" laufen zu lassen.
          Angehängte Dateien
          Zuletzt geändert von dRei; 18.02.2021, 19:16.

          Kommentar


            #6
            Zitat von dRei Beitrag anzeigen
            Während der Auswertung geht die CPU-Last auf 30% hoch. Da wäre also noch Luft nach oben, obwohl es nicht die potenteste Hardware ist.
            Ich denke, dass mysql immer noch je Connection nur einen Core verwendet, d.h. bei einem Quadcore Prozessor sind 25% Last auf einem mysql-thread dann Volllast.
            Könnte also schon sein, dass mehr Single-Core Performance das ganze deutlich verbessern würde.

            Zitat von dRei Beitrag anzeigen
            trotzdem ist es m.E. Sinnvoll solche Bausteine "für sich" laufen zu lassen
            Ja denke ich auch. Du könntest einfach die Statements in den EXEC Bereich verschieben und diesen aus dem LBS Bereich aufrufen. Ist bestimmt kein Hexenwerk.

            Kommentar


              #7
              Ich habe den LBS nun einmal asynchron umgebaut. Bislang sind mir keine Nachteile aufgefallen. Ganz im Gegenteil. Das Exec-Script braucht nur noch ca. 3 Sekunden für ein Ergebnis. Das liegt natürlich auch (und vor allem) daran, dass ich meine Archive begrenzt habe und nun nicht mehr 8,5Mio. Einträge habe, sondern "nur" noch 1,9Mio. Trotzdem habe ich das Gefühl, dass es mit der Ausführung als Exec-Script deutlich schneller läuft (also unabhängig von der reduzierten Datenmenge). Frage wäre nun, ob das in den Standard-Baustein. auch geändert werden kann oder sollte. Ich kann mir vorstellen, dass mehrere Anwender auf den Effekt stoßen werden.
              Angehängte Dateien

              Kommentar

              Lädt...
              X