Automatische Analyse der gegenseitigen Beeinflussung von Prozessen

PFEdi

Mitglied
Hallo zusammen,
Dies ist eher eine abstrakte Frage:
Gibt es irgendwo da draußen ein Tool, mit dem man eine automatische Analyse der gegenseitigen Beeinflussung von Prozessen durchführen kann?

Szenario: Die Prozesse werden automatisch ausgelöst – ausgelöst durch einen Zeitplan oder externe Ereignisse.
Normalerweise haben die Prozesse eine Dauer von einigen Sekunden.
Jetzt habe ich einige Statistiken der Prozesse, die einen langen Zeitraum abdecken (z. B. 3 Monate):
  • Name
  • Startzeit des Prozesses
  • Laufzeitdauer des Prozesses

Gibt es eine Möglichkeit, automatisch zu sehen, welche Jobs (Namen zur Identifizierung) – wenn sie parallel ausgeführt werden – länger als gewöhnlich laufen?
So könnte man sehen welche sich gegenseitig beeinflussen (Natürlich nur indiziert (Korrelation ist keine Kausalität, aber so was hilft dennoch)) - und dann untersucht man eben weiter.
Lg,
Paul
 

KonradN

Super-Moderator
Mitarbeiter
Also wenn Du entsprechende Logs von den Prozessen hast, dann wäre eine Idee, diese zentral in einer Datenbank zu sammeln um dann Auswertungen zu fahren.

Das kann dann auch (ggf. zusammen mit einem Monitoring Tool) verwendet werden um Langläufer zu identifizieren. Ob es diesbezüglich aber Lösungen gibt, die da Schwellwerte aus aktuellen Werten ermittelt, das weiss ich nicht. Das ist halt kein Gebiet, in dem ich spezialisiert bin. Aber Zur Not ist es halt ein Prozess, der abfragt:
  • Durchschnitt der Laufzeit der letzten x Läufe ohne den letzten.
  • Laufzeit des letzten Laufs und Vergleich, ob dieser innerhalb des ermittelten Wertes +/- eines Prozentsatzes ist. (Ausreisser nach oben und unten könnten wichtig sein. Wenn ein Prozess plötzlich schneller durch ist, dann hat er evtl. nicht alles gemacht.)

Aber evtl. kannst Du mehr Details geben zu den Prozessen, dem Umfeld, wie diese gestartet werden und all sowas.
 

M.L.

Top Contributor
Auf Ebene von _Geschäfts_prozessen(*) mit gegenseitiger Beeinflussung könnte man z.B. PowerSim ansehen.

(*)ein GP ist nichts anderes als die Umwandlung von gegebenen Resourcen in (hoffentlich) verwertbare (physische) Produkte
 

PFEdi

Mitglied
Hallo,

Also wenn Du entsprechende Logs von den Prozessen hast, dann wäre eine Idee, diese zentral in einer Datenbank zu sammeln um dann Auswertungen zu fahren.
Ja, wäre eine Idee, aber darum geht es ja nicht.

Aber Zur Not ist es halt ein Prozess, der abfragt:
Ja so in etwa habe ich es mir auch gedacht (und dann eben noch durchgeht und schaut bei starken Ausreißern ob diese in Laufzeiten von anderen liegen, in denen diese bei "Normalzeiten" nicht liegen), nur ob es da ggf schon was gibt, das einem Hilf.
Vermutlich könnte man das auch selbst machen, aber kann mir vorstellen, das dies nicht soooo ausergewöhnlich ist ...
Auf Ebene von _Geschäfts_prozessen(*) mit gegenseitiger Beeinflussung könnte man z.B. PowerSim ansehen.
uf ... naja muss ich mal schauen.
 

mihe7

Top Contributor
Bei der Frage nach "der gegenseitigen Beeinflussung von Prozessen" in Bezug auf die Laufzeit muss es nicht unbedingt um Ausreißer gehen, sondern kann sich auch um die Frage drehen, ob die Laufzeiten parallel ausgeführter Prozesse miteinander in irgendeiner Form korrelieren.

Man könnte also folgendes probieren:
  1. Die Prozesse in zwei Teilmengen S und P aufteilen. S enthält nur die Prozesse, die nicht zusammen mit anderen Prozessen ausgeführt wurden, P enthält den Rest (also die parallel ausgeführten Prozesse).
  2. Für jeden Job berechnet man die durchschnittliche Dauer der zugehörigen Prozesse aus Menge S.
  3. Für jeden Prozess aus P sucht man die parallel ausgeführten Prozesse und bildet daraus Prozess- und letztlich Job-Paare. Für jedes solches Job-Paar summiert man das Produkt der Abweichungen der Laufzeiten der beiden Prozesse von der durchschnittlichen Laufzeit des Jobs auf. Wenn man mehr auswerten möchte, kann man sich noch die Anzahl merken, um am Ende die Kovarianz bilden zu können.
Naja und dann gilt: je größer der Wert, desto stärker korrelieren die Laufzeiten. Ein Wert von 0 bedeutet keine Korrelation und je negativer der Wert wird, desto gegenläufiger. Man kann die Kovarianz noch über das Produkt der Standardabweichungen standardisieren, dann erhält man einen Wert zwischen -1 und 1.
 

mihe7

Top Contributor
Also das verstehe ich jetzt nicht - also wie man diese jetzt berechnen oder ableiten kann - die stehen dann doch in keinem Verhältnis zu einander.
Ich hatte Dich so verstanden, dass es Jobs ("Namen zur Identifizierung") gibt, für die regelmäßig Prozesse gestartet werden und dabei neben der Startzeit und Dauer auch der Name des Jobs festgehalten wird.

Die Daten sähen dann fiktiv in etwa so aus:

JobStartzeitDauer (ms)
Backup2024-09-09T02:00:00.000Z13256
Statistik-Berechnung2024-09-09T02:00:08.021Z4837
.........
Statistik-Berechnung2024-09-09T03:00:02.428Z4739
.........
Backup2024-09-10T02:00:00.000Z15873
 
Zuletzt bearbeitet:

PFEdi

Mitglied
Ach sorry, ich habe nicht richtig gelesen. facepalm emoji

In meinem Kopf ist es "noch" so
  • für jeden Prozesse einen Durchschnittswert der Laufdauer berechnen
  • ggf noch die min/max zuerst anschauen ob da was grob falsch ist.
  • Die Korelationen von Prozessen anhand der Ausreißer auswerten?
** Liegen ihre Laufzeiten innerhalb von Laufzeiten anderer Prozesse, in welchen die Nicht-Ausreißer nicht liegen -> hier gilt es zu schauen ob die Prozesse sich gegenseitig stören (selben Ressourcen benötigen)
** Und natürlich auch andere Untersuchungen -> aber dass sind eben die auf die man dann schauen kann.

d.h. mit deiner Methode bekomme ich auch ein Maß dafür (auf welche man dann ggf zuerst schaut.
 

mihe7

Top Contributor
Ja, die Kovarianz beschreibt, wie stark zwei "Vorgänge" korrelieren. Die Ausreißermethode muss aber deswegen nicht falsch oder schlechter sein. Die Frage ist, was man eigentlich haben will. Will ich feststellen, ob/wie stark sich zwei Vorgänge generell(!) beeinflussen oder möchte ich feststellen, ob ein Vorgang plötzlich ungewöhnlich lange/kurz dauert? Beides kann sinnvoll sein, sowohl isoliert als auch in Kombination.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Torres SDK für automatische Bildkorrektur Softwareentwicklung 3

Ähnliche Java Themen

Neue Themen


Oben