DE60130158T2 - Leistungsüberwachung in verteilten Systemen - Google Patents

Leistungsüberwachung in verteilten Systemen Download PDF

Info

Publication number
DE60130158T2
DE60130158T2 DE60130158T DE60130158T DE60130158T2 DE 60130158 T2 DE60130158 T2 DE 60130158T2 DE 60130158 T DE60130158 T DE 60130158T DE 60130158 T DE60130158 T DE 60130158T DE 60130158 T2 DE60130158 T2 DE 60130158T2
Authority
DE
Germany
Prior art keywords
node
event
records
distributed application
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60130158T
Other languages
English (en)
Other versions
DE60130158D1 (de
Inventor
Jefferson B. Palo Alto Burch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Application granted granted Critical
Publication of DE60130158D1 publication Critical patent/DE60130158D1/de
Publication of DE60130158T2 publication Critical patent/DE60130158T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Description

  • Die vorliegende Erfindung bezieht sich auf das Gebiet verteilter Systeme. Insbesondere bezieht sich diese Erfindung auf eine Leistungsüberwachung in verteilten Systemen unter Verwendung synchronisierter Takte und verteilter Ereignisprotokolle.
  • Verteilte Systeme werden bei einer Vielzahl von Anwendungen häufig eingesetzt. Ein typisches verteiltes System umfasst einen Satz von Knoten, die über ein Kommunikationsnetzwerk kommunizieren. Einer oder mehrere der Knoten umfassen üblicherweise Verarbeitungsressourcen, die eine Software für eine verteilte Anwendung ausführen. Beispiele verteilter Anwendungen umfassen Web-Client-Server-Anwendungen, Groupware-Anwendungen und industrielle und andere Arten von Steuersystemen.
  • Eine verteilte Anwendung kann als Anordnung von Softwarekomponenten angesehen werden, die unter den Knoten eines verteilten Systems aufgeteilt sind. Beispiele von Softwarekomponenten einer verteilten Anwendung umfassen Prozesse, Dateisysteme, Datenbankserver, Web-Server, Client-Anwendungen, Server-Anwendungen, Netzwerkkomponenten und Sensor-, Betätigungsglied- und Steuerungsanwendungen. Üblicherweise interagieren derartige Softwarekomponenten unter Verwendung von Mechanismen wie z.B. Funktionsaufrufen, Meldungen, HTTP-Befehlen usw., um nur einige Beispiele zu nennen, miteinander. Eine Interaktion zwischen Softwarekomponenten einer verteilten Anwendung kann als Ereignis bezeichnet werden.
  • Ereignisse, die an einer Stelle einer verteilten Anwendung erzeugt werden, bewirken üblicherweise, dass Ereignisse an anderen Stellen in der verteilten Anwendung auftreten. Bei einer Web-basierten Anwendung beispielsweise kann ein Endbenutzer eine Taste in einem Web-Browser anklicken. Das An klicken erzeugt üblicherweise Ereignisse in Form von HTTP-Befehlen. Jeder HTTP-Befehl wiederum erzeugt üblicherweise andere Ereignisse an anderen Stellen in der verteilten Anwendung, um den HTTP-Befehl an einen Web-Server zu kommunizieren, beispielsweise über eine TCP/IP-Verknüpfung, die durch die Protokollstapel in jedem Knoten eingerichtet ist. Ansprechend darauf erzeugt ein Web-Server als entfernter Abschnitt der verteilten Anwendung üblicherweise Ereignisse wie z.B. SQL-Aussagen für einen Datenbankzugriff oder Ereignisse für einen Dateisystemzugriff, um den HTTP-Befehl auszuführen, sowie Ereignisse, um die entsprechenden Informationen an den anfragenden Web-Browser zurückzusenden.
  • Eine Fähigkeit, die Zeitgebung von Ereignissen in einer verteilten Anwendung aufzuzeichnen, kann für eine Vielzahl von Systemverwaltungsaufgaben wie z.B. Leistungsüberwachung, Diagnose und Kapazitätsplanung, nützlich sein. Beispielsweise kann eine Aufzeichnung der Zeitgebung von Ereignissen bezüglich eines Identifizierens von Engpässen in einer verteilten Anwendung, die die Gesamtleistungsfähigkeit behindern, nützlich sein. Ungünstigerweise zeichnen bekannte Verfahren zur Leistungsüberwachung die Zeitgebung von Ereignissen üblicherweise in einem einzigen Knoten auf. Bekannte Verfahren liefern üblicherweise keine Ereigniszeitgebung über mehrere Knoten einer verteilten Anwendung hinweg.
  • Die EP-A-0585479 offenbart eine Vorrichtung zum Überwachen des Verhaltens eines verteilten Systems, das Testsysteme aufweist und das eine verteilte Aufzeichnungsfunktion aufweist, die Ereigniszeitstempel bezüglich eines Ereignisses an den Systemen erhält.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung ist eine verteilte Anwendung mit einer Leistungsüberwachungsfähigkeit vorgesehen, die folgende Merkmale aufweist: einen Satz von Knotenanwendungen, die über ein Netzwerk kommunizieren, wobei jeder Knoten einen Takt aufweist, wobei die Takte miteinander synchronisiert sind, wobei jede Knotenanwendung zumindest eine Funktion aufweist und wobei jeder Knoten ferner eine Aufzeichnungsfunktion aufweist, die, wenn sie durch die Funktion aufgerufen wird, einen Ereigniscode von der Funktion erhält und einen Zeitstempel von einem entsprechenden synchronisierten Takt erhält; und ein Ereignisprotokoll für jede Knotenanwendung, wobei jedes Ereignisprotokoll zum Halten einer Aufzeichnung den entsprechenden Ereigniscode und den entsprechenden Zeitstempel umfasst, derart, dass die Zeitstempel in den Ereignisprotokollen in der verteilten Anwendung eine synchronisierte Zeitbasis zum Auswerten eines Satzes von bedeutenden Ereignissen, die durch die Ereigniscodes identifiziert werden, liefern.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Verfahren zur Leistungsüberwachung in einer verteilten Anwendung, die einen Satz von Knotenanwendungen aufweist, die über ein Netzwerk kommunizieren, wobei das Verfahren folgende Schritte umfasst: Ausstatten jedes Knotens mit einem Takt, wobei die Takte miteinander synchronisiert sind, und mit einer Aufzeichnungsfunktion, die einen Ereigniscode von einer Funktion der entsprechenden Knotenanwendung erhält und die eine Aufzeichnung erzeugt, die einen von einem entsprechenden synchronisierten Takt erhaltenen Zeitstempel umfasst; Durchführen eines Experiments in der verteilten Anwendung; Erhalten der Aufzeichnungen von den Knotenanwendungen und Analysieren der Aufzeichnungen, derart, dass die Zeitstempel in den Aufzeichnungen in der verteilten Anwendung eine synchronisierte Zeitbasis zum Auswerten eines Satzes von durch die Ereigniscodes identifizierten bedeutenden Ereignissen liefern vorgesehen.
  • Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung sieht eine Leistungsüberwachungsfähigkeit über mehrere Knoten einer verteilten Anwendung hinweg vor und umfasst einen Satz von Knoten, die über ein Netzwerk kommunizieren. Eine verteilte Anwendung wird durch einen Satz von koope rierenden Knotenanwendungen, die in den Knoten ausgeführt werden, durchgeführt. Das verteilte System implementiert Techniken zum Erzeugen von Zeitstempelaufzeichnungen für jedes eines Satzes von bedeutenden Ereignissen, die einer oder mehreren der Knotenanwendungen zugeordnet sind. Die Zeitstempelaufzeichnungen liefern für die bedeutenden Ereignisse eine synchronisierte Zeitbasis über die Knoten hinweg. Dies ermöglicht ein zeitliches Ordnen der bedeutenden Ereignisse.
  • Andere Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen Beschreibung.
  • Die vorliegende Erfindung wird in Bezug auf bestimmte exemplarische Ausführungsbeispiele derselben beschrieben, und dementsprechend wird auf die Zeichnungen Bezug genommen, bei denen:
  • 1 ein verteiltes System zeigt, das die hierin offenbarten Leistungsüberwachungstechniken umfasst;
  • 2 das Festhalten von Zeitstempelaufzeichnungen für Ereignisse veranschaulicht, die den Knotenanwendungen zugeordnet sind;
  • 3 ein Graph ist, der aus den festgehaltenen Zeitstempelaufzeichnungen mit ihrer synchronisierten Zeitbasis aufgebaut ist;
  • 4 ein Verfahren zur Leistungsüberwachung in einer verteilten Anwendung unter Verwendung der hierin offenbarten Techniken zeigt;
  • 5 einen synchronisierten Takt bei einem Ausführungsbeispiel eines Knotens zeigt.
  • 1 zeigt ein verteiltes System 10, das die hierin offenbarten Leistungsüberwachungstechniken umfasst. Das ver teilte System 10 umfasst einen Satz von Knoten 2024, die über ein Netzwerk kommunizieren. Jeder der Knoten 2024 umfasst Prozessorressourcen zum Ausführen eines Satzes von Knotenanwendungen 5054.
  • Die Knotenanwendungen 5054 interagieren über das Kommunikationsnetzwerk 30, wenn sie eine verteilte Anwendung in dem verteilten System 10 ausführen. Die durch die Knotenanwendungen 5054 durchgeführte verteilte Anwendung kann eine beliebige Art einer verteilten Anwendung sein, z.B. Web-basierte Client-Server-Anwendungen einschließlich derjenigen, die im E-Commerce, bei Groupware-Anwendungen, bei Auftragsbearbeitungsanwendungen oder Lagerbestandsverwaltungsanwendungen verwendet werden, um einige Beispiele zu nennen. Außerdem kann die durch die Knotenanwendungen 5054 durchgeführte verteilte Anwendung eine Steuersystemanwendung sein, bei der die Knoten 2024 die entsprechende Steuersystemhardware umfassen, die Sensoren und Betätigungsglieder umfasst.
  • Bei einem Ausführungsbeispiel umfasst jeder der Knoten 2024 jeweils einen entsprechenden synchronisierten Takt 4044. Die synchronisierten Takte 4044 unterhalten Zeitwerte, die in Bezug aufeinander synchronisiert sind. Diese synchronisierten Zeitwerte ermöglichen die Koordination von Ereigniszeitgebungsmessungen in einer gesamten verteilten Anwendung in dem verteilten System 10.
  • Die Noten 2024 implementieren jeweils eine entsprechende Ereigniszeitstempelaufzeichnungsfunktion 68, 78 und 88. Jede Ereigniszeitstempelaufzeichnungsfunktion 68, 78 und 88 ist durch die entsprechende Knotenanwendung 5054 aufrufbar. Jede Ereigniszeitstempelaufzeichnungsfunktion 68, 78 und 88 erhält, wenn sie aufgerufen wird, einen Zeitwert von dem entsprechenden synchronisierten Takt 4044 und schreibt den Zeitwert und einen durch die entsprechende Knotenanwendung 5054 bereitgestellten Ereigniscode als Zeitstempelaufzeichnung in ein entsprechendes Ereignisprotokoll 9094.
  • Anwendungen in Knoten, die keine synchronisierten Takte aufweisen, können ebenfalls überwacht werden. Beispielsweise können den Knoten, die keine synchronisierten Takte aufweisen, zugehörige Knoten zugeordnet sein. Interessierende Ereignisse an den Knoten, die keine synchronisierten Takte aufweisen, werden unter Verwendung der entsprechenden zugehörigen Knoten zeitgestempelt und aufgezeichnet. Kommunikationspfade zu zugehörigen Knoten können ein physischer Draht, ein serieller oder paralleler Kommunikationspfad usw. sein. Bei einem Ausführungsbeispiel werden Ereigniscodes von einer Anwendung, die an einem Knoten ausgeführt wird, der keinen synchronisierten Takt aufweist, an die Ereigniszeitstempelaufzeichnungsvorrichtung an seinem zugehörigen Knoten über den Kommunikationspfad an den zugehörigen Knoten geleitet. Ereignisprotokolle können an einem der beiden Knoten implementiert werden.
  • Die in den Ereignisprotokollen 9094 aufgezeichneten Informationen können durch beliebige der Knoten 2024 oder andere Knoten, die über das Netzwerk 30 erreichbar sind, gelesen werden. Diese Informationen können dazu genutzt werden, eine Vielzahl von Leistungsangaben für die durch die Knotenanwendungen 5054 durchgeführte verteilte Anwendung zu bestimmen. Die Informationen können dazu verwendet werden, graphische Anzeigen zu erstellen, die eine Zeitgebung angeben, die einem Satz von interessierenden vorbestimmten Ereignissen in einer verteilten Anwendung zugeordnet ist.
  • Bei einem Ausführungsbeispiel werden die Zeitwerte in den synchronisierten Takten 4044 unter Verwendung eines in der US-Patentschrift Nr. 5,566,180 beschriebenen Synchronisationsprotokolls synchronisiert.
  • Bei einem anderen Ausführungsbeispiel implementieren die Knoten 2024 das Netzwerkzeitprotokoll (NTP – network time protocol). Gemäß NTP tauschen die Knoten 2024 regelmäßig Meldungen über das Netzwerk 30 aus. Jede Meldung enthält einen Zeitwert von dem synchronisierten Takt 4044 des Knotens 2024, der die Meldung hervorbrachte. Ansprechend darauf passt jeder Knoten 2024 seinen entsprechenden synchronisierten Takt 4044 an. Schließlich konvergieren die synchronisierten Takte 4044 in den Knoten 2024 zu synchronisierten Zeitwerten.
  • Das Netzwerk 30 kann ein paketiertes Netzwerk sein, wie z.B. Ethernet oder ein Netzwerk wie z.B. LonTalk, das an Steuersysteme angepasst ist. Alternativ dazu kann das Netzwerk 30 als serieller oder paralleler Kommunikationsbus oder als anderer Mechanismus zur Kommunikation implementiert sein.
  • 2 veranschaulicht das Festhalten von Zeitstempelaufzeichnungen für Ereignisse, die den Knotenanwendungen 5052 zugeordnet sind. Die Knotenanwendung 50 umfasst einen Satz von Funktionen 6064, die anwendungsspezifisch sind, und einen Netzwerkstapel 66, der eine Kommunikation über das Netzwerk 30 ausführt. Desgleichen umfasst die Knotenanwendung 52 einen Satz von Funktionen 7074, die anwendungsspezifisch sind, und einen Netzwerkstapel 76, der eine Kommunikation über das Netzwerk 30 ausführt.
  • Die Einzelheiten der Funktionen 6064 und 7074 hängen von der jeweiligen verteilten Anwendung ab, die durch die Knotenanwendungen 5052 durchgeführt wird. Beispielsweise können die Funktionen 6064 einer Web-Browser-Anwendung zugeordnet sein, und die Funktionen 7074 können einer Web-Server-Anwendung zugeordnet sein. Die Netzwerkstapel 66 und 76 bilden eine Brücke zwischen dem zu Grunde liegenden physischen Netzwerk 30 und den Knotenanwendungen 5052.
  • Die Anwendung 50 ist derart entworfen, dass ein Aufruf der Funktion 62 durch die Funktion 60 bei der Ausführung der entsprechenden verteilten Anwendung als Ereignis von Bedeutung erachtet wird. Folglich ruft die Funktion 60 die Ereigniszeitstempelaufzeichnungsfunktion 68 nahe der Zeit des Aufrufs der Funktion 62 auf. Die Funktion 60 leitet einen Ereigniscode = c1-Parameter mit dem Anruf an die Ereigniszeitstempelaufzeichnungsfunktion 68. Ansprechend darauf liest die Ereigniszeitstempelaufzeichnungsfunktion 68 einen Zeitwert (t1) aus dem synchronisierten Takt 40 und schreibt das Wertepaar c1-t1 als Zeitstempelaufzeichnung in einen Eintrag in dem Ereignisprotokoll 90.
  • Außerdem wird ein Aufruf der Funktion 64 durch die Funktion 62 als Ereignis von Bedeutung bei der Ausführung der entsprechenden verteilten Anwendung erachtet. Folglich ruft die Funktion 62 die Ereigniszeitstempelaufzeichnungsfunktion 68 nahe der Zeit des Aufrufs der Funktion 64 auf und leitet einen Ereigniscode = c2-Parameter mit dem Anruf an die Ereigniszeitstempelaufzeichnungsfunktion 68. Ansprechend darauf liest die Ereigniszeitstempelaufzeichnungsfunktion 68 einen Zeitwert (t2) aus dem synchronisierten Takt 40 und schreibt das Wertepaar c2-t2 als Zeitstempelaufzeichnung in einen Eintrag in dem Ereignisprotokoll 90.
  • Ein Aufruf der Funktion 72 durch die Funktion 74 wird als bedeutendes Ereignis erachtet, und es wird ein Aufruf der Ereigniszeitstempelaufzeichnungsfunktion 78 mit einem Ereigniscode = c3-Parameter getätigt. Ansprechend darauf liest die Ereigniszeitstempelaufzeichnungsfunktion 78 einen Zeitwert (t3) aus dem synchronisierten Takt 42 und schriebt das Wertepaar c3-t3 als Zeitstempelaufzeichnung in einen Eintrag in dem Ereignisprotokoll 92.
  • Ein Aufruf der Funktion 70 durch die Funktion 72 wird als Ereignis von Bedeutung erachtet, und die Funktion 72 ruft die Ereigniszeitstempelaufzeichnungsfunktion 78 in der Nähe dieser Zeit auf und leitet einen Ereigniscode = c4-Parameter mit dem Aufruf weiter. Ansprechend darauf liest die Ereigniszeitstempelaufzeichnungsfunktion 78 einen Zeitwert (t4) aus dem synchronisierten Takt 42 und schriebt das Wertepaar c4-t4 als Zeitstempelaufzeichnung in einen Eintrag in dem Ereignisprotokoll 92.
  • Bei manchen Ausführungsbeispielen kann die Funktion 70 auf die obige Sequenz reagieren, indem sie die Funktion 72 aufruft, die die Funktion 74 aufruft, die den Netzwerkstapel 76 aufruft, um eine Meldung zurück zu der Knotenanwendung 50 und weiter zu der Funktion 60 hinauf zu transferieren. Die liefert eine Ereignisschleife, die durch die Knotenanwendung 50 ins Leben gerufen und durch die Knotenanwendung 52 abgeschlossen wird, wobei die Antwort an die Knotenanwendung 50 zurückgesendet wird. Auf dem Rückpfad können in den Ereignisprotokollen entlang der Funktionsaufrufkette verschiedene Codes aufgezeichnet werden.
  • Bei einem beispielhaften Ausführungsbeispiel ist die Knotenanwendung 50 ein Web-Browser, und die Knotenanwendung 52 ist ein Web-Server. Die Funktion 60 erzeugt HTTP-Befehle als Ereignisse und Zeitwerte für diese Ereignisse, die durch die Ereigniszeitstempelaufzeichnungsfunktion 68 aufgezeichnet werden. Durch die Knotenanwendung 52 empfangene HTTP-Befehle, die einen Datenbankzugriff erfordern, bewirken, dass die Funktion 70, eine Datenbankzugriffsfunktion, aufgerufen wird und Zeitstempelaufzeichnungen für diese Ereignisse durch die Ereigniszeitstempelaufzeichnungsfunktion 78 aufgezeichnet werden. Desgleichen zeichnet die Ereigniszeitstempelaufzeichnungsfunktion 78 auf, wenn die Funktion 70 einen Datenbankzugriff abschließt, und die Ereigniszeitstempelaufzeichnungsfunktion 68 zeichnet auf, wenn die Ergebnisse an die Funktion 60 zurückgeliefert werden, um eine Web-Browser-Web-Server-Transaktionsschleife abzuschließen.
  • In manchen zeitkritischen Fällen zeichnet eine Hardware in einem Knoten automatisch einen Zeitstempel für ein bedeutendes Ereignis auf, beispielsweise die Zeit einer Datenerhebung für einen Sensor oder eine Ankunftszeit einer Netzwerkmeldung. Dieser Zeitstempel kann zusammen mit dem gewünschten Code an eine Ereigniszeitstempelaufzeichnungsvorrichtung geleitet werden, um in einem Ereignisprotokoll gespeichert zu werden.
  • Tabellen 1 und 2 zeigen Beispiele von Informationen, die in den Ereignisprotokollen 90 bzw. 92 für die oben beschriebene beispielhafte Sequenz aufgezeichnet sind. Tabelle 1
    Ereigniscode Zeitstempel
    c1 t1
    c2 t2
    c2(ret) t7
    c1(ret) t8
    Tabelle 2
    Ereigniscode Zeitstempel
    c3 t3
    c4 t4
    c4(ret) t5
    c3(ret) t6
  • Diese Sequenz von Einträgen, die in die Ereignisprotokolle 90 und 92 geschrieben sind, können als Entsprechung einer Serie von Zuständen S1 mit S8 in der durch die Knotenanwendungen 5052 durchgeführten verteilten Anwendung angesehen werden. Die Zustände S1 mit S4 entsprechen den Ereigniscodes-Wertepaaren C1-t1, C2-t2, C3-t3 bzw. C4-t4. Die Zustände S5 mit S8 entsprechen den Ereigniscodes-Wertepaaren C4(ret)-t5, C3(ret)-t6, C2(ret)-t7 bzw. C1(ret)-t8.
  • Tabelle 3 vereinigt die Informationen, die in den Ereignisprotokollen 90 bzw. 92 für die oben beschriebene beispielhafte Sequenz aufgezeichnet sind.
    Zustand Nummer Knoten Ereigniscode Zeitstempel
    S1 20 C1 T1
    S2 20 C2 T2
    S3 22 C3 T3
    S4 22 C4 T4
    S5 22 C4(ret) T5
    S6 22 C3(ret T6
    S7 20 C2(ret T7
    S8 20 C1(ret) T8
  • 3 ist ein Graph, der aus den Informationen aufgebaut ist, die aus den Ereignisprotokollen 9092 erhalten werden. Die Zustände S1 mit S8 sind bezüglich der entsprechenden Zeitwerte t1 mit t8 aufgetragen gezeigt. Die Zeitwerte t1 mit t8, die aus den synchronisierten Takten 4042 erhalten wurden, liefern eine synchronisierte Zeitbasis zum Analysieren der Zeitgebung der Zustände S1 mit S8, obwohl diese Zustände Ereignisse darstellen, die in den separaten Knoten 20 und 22 auftreten.
  • Eine Untersuchung der Graphen zeigt, dass die höchste Latenzzeit in den Zuständen S1 mit S8 zwischen den Zuständen S2 und S3, zwischen den Zuständen S4 und S5 und zwischen den Zuständen S6 und S7 auftritt. Die Übergänge zwischen den Zuständen S2 und S3 und zwischen den Zuständen S6 und S7 entsprechen der Latenzzeit einer Meldungsübertragung über das Netzwerk 30. Die Übergänge zwischen den Zuständen S4 und S5 entsprechen der Latenzzeit der Funktion 70, die bei dem beispielhaften Ausführungsbeispiel ein Datenbanknachschlag ist.
  • 4 zeigt ein Verfahren zur Leistungsüberwachung in einer verteilten Anwendung unter Verwendung der hierin offenbarten Techniken. Bei Schritt 100 wird ein Satz von bedeutenden Ereignissen in der verteilten Anwendung bestimmt. Die Bedeutung eines Ereignisses ist allgemein anwendungsspezifisch. Für das obige Beispiel sind die bedeutenden Er eignisse die Erzeugung von HTTP-Befehlen, das Senden und der Empfang von Meldungen in dem Netzwerk 30 und Datenbankzugriffe für Antworten auf die HTTP-Befehle. Für eine verteilte Steueranwendung, als weiteres Beispiel, können die bedeutenden Ereignisse die Erzeugung von Steuerwerten, der Empfang von Sensordaten und die Anwendung von Steuerwerten auf Betätigungsglieder usw. sein.
  • Bei Schritt 102 sind die verteilten Knotenanwendungen, die die verteilte Anwendung durchführen, mit einer Funktionalität zum Erzeugen von Zeitstempelaufzeichnungen in ihren entsprechenden Ereignisprotokollen, wenn die bedeutenden Ereignisse auftreten, ausgestattet. Bei dem obigen Beispiel sind die Knotenanwendungen 5054 mit den Ereigniszeitstempelaufzeichnungsfunktionen 68, 78 bzw. 88 ausgestattet, die die entsprechenden synchronisierten Takte 4044 lesen und Einträge in den Ereignisprotokollen 9094 protokollieren. Alternativ dazu können eine oder mehrere der Funktionen 6064 und 7074 und Netzwerkstapel 6676 die synchronisierten Takte 4044 direkt lesen und direkt Einträge in die Ereignisprotokolle 9094 schreiben, oder ihre Funktionen können in Hardware und/oder in zugehörigen Knoten durchgeführt werden.
  • Bei Schritt 104 werden in der verteilten Anwendung ein oder mehrere Experimente durchgeführt, um die bedeutenden Ereignisse zu erzeugen und Zeitstempelaufzeichnungen festzuhalten. Bei dem obigen Beispiel werden HTTP-Befehle unter Verwendung der Knotenanwendung 50 erzeugt und durch die Knotenanwendung 52 verarbeitet, wodurch bedeutende Ereignisse erzeugt werden, die in den Ereignisprotokollen 9092 aufgezeichnet werden. Ereignisschleifen wie z.B. die Zustände S1 mit S8 können viele Male ausgeführt werden, um Zeitstempelaufzeichnungen zu sammeln.
  • Bei Schritt 106 werden die während des Schritts 104 festgehaltenen Zeitstempelaufzeichnungen gelesen und analysiert. Bei dem obigen Beispiel werden die Zeitstempelaufzeichnun gen aus den Ereignisprotokollen 9094 gelesen. Jegliches Computersystem oder jeglicher Knoten usw., das bzw. der einen Zugriff auf das Netzwerk 30 hat, einschließlich der Knoten 2024, kann die Zeitstempelaufzeichnungen lesen und analysieren. Es können Graphen wie z.B. der der 3 oder eine andere Art von Graph erzeugt werden. Beispielsweise können Zeitstempelaufzeichnungen von vielen Schleifen durch die Zustände S1 mit S8 einem Graphen überlagert werden und/oder dazu verwendet werden, statistische Verteilungen von Zeitwerten zu erzeugen, die Übergängen zwischen den Zuständen S1 mit S8 zugeordnet sind.
  • 5 zeigt den synchronisierten Takt 40 bei einer exemplarischen Konfiguration des Knotens 20. Die synchronisierten Takte 4244 können auf ähnliche Weise implementiert sein. Der synchronisierte Takt 40 umfasst eine Zeitpaketerkennungsvorrichtung 214, einen Takt 212 und einen Zwischenspeicher bzw. ein Latch 210. Der Knoten 20 umfasst eine physische Schnittstelle 200, die ein Senden und einen Empfang von Paketen über das Netzwerk 30 ermöglicht. Die physische Schnittstelle 200 liefert empfangene Pakete an die Zeitpaketerkennungsvorrichtung 214.
  • Bei diesem Beispiel erhält der synchronisierte Takt 40 ansprechend auf Zeitgebungsdatenpakete und auf Nachfolgepakete, die über das Netzwerk 30 transferiert werden, eine synchronisierte Zeit aufrecht. Beispielsweise werden ein Zeitgebungsdatenpaket 218 und ein Nachfolgepaket 216 auf dem Netzwerk 30 getragen. Das Zeitgebungsdatenpaket 218 und das Nachfolgepaket 216 werden durch einen Master-Takt in dem Netzwerk 30 erzeugt. Der Master-Takt kann in einem der Knoten 2224 oder in einem anderen Knoten, der über das Netzwerk 30 erreichbar ist, enthalten sein. Der Master-Takt kann ein Echtzeittakt sein.
  • Das Zeitgebungsdatenpaket 218 umfasst eine Begrenzungseinrichtung 254, die es als Zeitgebungsdatenpaket für das Synchronisierungsprotokoll des synchronisierten Taktes 40 i dentifiziert. Das Nachfolgepaket 216 umfasst einen Zeitstempel 250. Der Zeitstempel 250 gibt die lokale Zeit in dem Master-Takt an, zu der das Zeitgebungsdatenpaket 218 erzeugt wurde.
  • Die Zeitpaketerkennungsvorrichtung 214 empfängt das Zeitgebungsdatenpaket 218 durch die physische Schnittstelle 200. Die Zeitpaketerkennungsvorrichtung 214 erfasst einen eindeutigen Zeitgebungspunkt in dem wiedergewonnenen Bitstrom für das Zeitgebungsdatenpaket 218. Auf ein Erfassen des eindeutigen Zeitgebungspunktes hin bewirkt die Zeitpaketerkennungsvorrichtung 214, dass das Latch 210 einen Zeitwert von dem Takt 212 zwischenspeichert. Der in dem Latch 210 gehaltene Zeitwert gibt die lokale Zeit an, zu der die Zeitpaketerkennungsvorrichtung 214 das Zeitgebungsdatenpaket 218 empfing. Danach empfängt die Zeitpaketerkennungsvorrichtung 214 das Nachfolgepaket 216 und extrahiert den Zeitstempel 250. Der Unterschied zwischen dem Zeitstempel 250 und dem Zeitwert in dem Latch 210 gibt die relative Synchronisierung des Master-Taktes und des Taktes 212 an. Nachdem dieser Unterschied durch den Prozessor 202 errechnet wurde, wird er dazu verwendet, den Zeitwert in dem Takt 212 anzupassen, damit er mit dem Master-Takt übereinstimmt.
  • Die Anpassung des Zeitwertes in dem Takt 212 kann dadurch bewerkstelligt werden, dass der Takt 212 als Zähler implementiert wird, der durch einen Oszillator mit ausreichender Stabilität getrieben wird. Die wenigen niedrigstwertigen Bits des Zählers können als Addierer implementiert werden, so dass ein Inkrement bezüglich Oszillatorperioden gelegentlich erhöht oder verringert werden kann, um den Takt 212 je nach den Ergebnissen der Berechnung des Unterschiedes zwischen dem Zeitstempel 250 und der in dem Latch 210 gehaltenen Zeit effektiv zu beschleunigen oder zu verlangsamen. Der Prozessor 202 liest, wenn er die Ereigniszeitstempelaufzeichnungsfunktion 68 ausführt, den Inhalt des Taktes 212, um Zeitstempel zu erhalten.
  • Während eine verteilte Anwendung ausgeführt wird, ergeben die vorliegenden Lehren einen Satz von Zeitstempelaufzeichnungen in jedem Knoten, der an der verteilten Anwendung beteiligt ist. Synchronisierte Takte in dem Knoten liefern eine synchronisierte Zeitbasis, die ein zeitliches Ordnen der Zeitstempelaufzeichnungen ermöglicht. Diese Informationen sind die Basis für eine Leistungsanalyse der verteilten Ende-Zu-Ende-Anwendung. Zusätzlich zu einer zusammenfassenden statistischen Leistungsmetrik (z.B. durchschnittliche Ende-Zu-Ende-Latenzzeit) können mit diesem System Einzelheiten über einzelne verteilte Transaktionen festgehalten werden.
  • Aus den Zeitstempelaufzeichnungen kann eine einzelne Transaktion analysiert werden, um zu ermitteln, warum sie von der Norm abweicht. Diese ausführlichen Informationen liefern Schlüsseleinsichten für Softwareingenieure und Systemprogrammierer bezüglich eines Verständnisses des Gesamtverhaltens der verteilten Anwendung.
  • Da diese Technik Leistungsengpässe über das verteilte System hinweg rasch identifiziert, können technische Ressourcen auf die Bereiche zum Optimieren, Abstimmen und/oder Neuentwerfen von Software/Hardware fokussiert werden. Die sich ergebenden Verbesserungen können mit den vorliegenden Techniken überwacht und analysiert werden, um die echten Vorteile der Veränderungen zu bewerten und um technische Aktivitäten für die nächste Runde von Verbesserungen zu fokussieren.
  • Durch einen iterativen Prozess des Verwendens der vorliegenden Techniken, um Leistungsengpässe zu identifizieren und anschließend technische Ressourcen zu fokussieren, um diese Engpässe zu beseitigen, kann die Leistungsfähigkeit der verteilten Anwendung anschließend verbessert werden.
  • Eine Ereigniszeitstempelaufzeichnungsvorrichtung kann in zwei Modi betrieben werden, einschließlich eines solchen, bei dem ein Zeitstempel und ein Code durch eine Anwendung (üblicherweise durch die Hardware) bereitgestellt werden), und eines solchen, bei dem ein Zeitstempel durch die Ereigniszeitstempelaufzeichnungsvorrichtung gelesen wird, während der Code von der Anwendung verarbeitet wird.
  • Bei manchen Ausführungsbeispielen wird der interessierende Ereigniscode zusammen mit einem Zeitstempel der Anwendung präsentiert. Bei diesem Ausführungsbeispiel speichert eine Ereigniszeitstempelaufzeichnungsvorrichtung sowohl den Ereigniscode als auch den Zeitstempel und liest keinen lokalen Takt. Beispielsweise erzeugt ein Messknoten in einem verteilten Mess- und Steuersystem automatisch einen Zeitstempel, wenn eine Messung durchgeführt wird. Wenn die Anwendung diese Messung als interessant erachtet, leitet sie den entsprechenden Ereigniscode und Zeitstempel zur Speicherung an eine Ereigniszeitstempelaufzeichnungsvorrichtung.
  • Die vorliegenden Techniken liefern die Fähigkeit, Wiederholungen einer Sequenz verteilter Transaktionen zu analysieren. Da Zeitstempelaufzeichnungen von jeder Wiederholung festgehalten werden, ist es sehr nützlich, zu analysieren, wie alle Wiederholungen im Vergleich zueinander abschneiden. Beispielsweise statistische Beschreibungen der vollständigen Transaktion wie z.B. die durchschnittliche Verzögerung für eine Transaktion, die maximale Verzögerung, die minimale Verzögerung und die statistische Verteilung (d.h. Histogramm).
  • Es kann ein Paar von Zuständen ausgewählt und die Verzögerung zwischen denselben analysiert werden. Dies liefert einen Teil der Verzögerung für die gesamte Transaktion, und ähnliche Informationen wie z.B. Durchschnitt, Maximum, Minimum und Verteilung können berechnet werden.
  • Die Tatsache, dass die vorliegenden Techniken einen Zeitstempel für von jedem Zustand über eine verteilte Anwendung hinweg ergeben, liefert im Vergleich zu anderen Messtechniken mehr Informationen. Dadurch wird es möglich, zusätzlich zu einem einfachen Durchschnitt die statistische Verteilung zu analysieren.
  • Es kann sinnvoll sein, zu untersuchen, was bei unterschiedlichen Knoten geschieht. Ein Ziel von verteilten Anwendungen besteht darin, zu ermöglichen, dass alle Knoten gleichzeitig sinnvolle Arbeit leisten (z.B. parallele Ausführung). Während der Server arbeitet, führt der Client ebenfalls eine sinnvolle Tätigkeit aus. Die Ereignisse und Zeitstempel von den verschiedenen Knoten, die durch die vorliegenden Techniken geliefert werden, ermöglichen die Erzeugung von Diagrammen, die beschreiben, wie viel parallele Arbeit wirklich vorliegt.
  • Zusätzlich zu einer Bereitstellung von Zeitstempeln liefern die hierin offenbarten synchronisierten Taktmechanismen auch detaillierte Statistiken darüber, wie eng ein Slave-Takt mit dem fernen Master-Takt synchronisiert ist. Eine Statistik, die zur Verfügung steht, ist der lokale Taktversatz auf Grund der Beschaffenheit des Synchronisierungsalgorithmus in manchen Ausführungsbeispielen (ein digitaler Software-Servo-Algorithmus) – dieser Wert variiert zwischen den Synchronisierungsgrenzen. Eine Ereigniszeitstempelaufzeichnungsvorrichtung kann diesen Versatz zusammen mit dem Zeitstempel speichern. In einer Nachverarbeitungsphase können diese neuen Informationen beim Vergleichen von Zeitstempeln aus unterschiedlichen Knoten verwendet werden. Diese können als Zeitstempelvertrauensgrenzen an den Treppenstufendarstellungen betrachtet werden. Dies ergibt eine visuelle Angabe, ob zwei Ereignisse zu nahe beieinander liegen, um zu unterscheiden, welches zuerst eintrat.
  • Zugehörige Knoten befinden sich, wenn sie verwendet werden, vorzugsweise in unmittelbarer Nähe der entsprechenden Knoten und kommunizieren unter Verwendung eines Niedrige- Latenzzeit-Mechanismus wie z.B. eines Drahtes oder eines Parallelkanals usw.
  • Der zugehörige Knoten kann sehr einfach sein und lediglich einen synchronisierten Takt enthalten. Ein Knoten sendet ein Signal an den zugehörigen Knoten und empfängt den aktuellen Zeitstempel. Alle Pufferverwaltungsfunktionen befinden sich in dem anderen Knoten. Dies ist sinnvoll, wenn der andere Knoten ein vollständiger Beteiligter an den vorliegenden Techniken ist, jedoch keinen synchronisierten Takt aufweist. Beispielsweise kann der andere Knoten ein PC- oder Netzwerk-Server sein.
  • Alternativ dazu können zugehörige Knoten synchronisierte Takte und die gesamte Pufferverwaltungsfunktion aufweisen. Der andere Knoten sendet den Ereigniscode. Der zugehörige Knoten führt anschließend die Zeitstempelfunktion, Pufferverwaltung usw. durch. Der Code kann über einen separaten digitalen oder analogen Draht, wobei der zugehörige Knoten eine Messung des Verhaltens des anderen Knoten durchführt.
  • Es ist vorzuziehen, dass die Kommunikationslatenzzeit zwischen einem Knoten und seinem zugehörigen Knoten auf einem Minimum gehalten wird.
  • Die Ereignisprotokolle 9094 können auf kreisförmige Weise (kreisförmige Warteschlange) organisiert werden. Während einer Datensammlung füllen die Ereignisprotokolle 9094 die ältesten Zeitstempelaufzeichnungen in den Ereignisprotokollen 9094, und neue Zeitstempelaufzeichnungen ersetzen dieselben. Wenn einer der Knoten 2024 eine abweichende Situation wie z.B. einen langen Umlauf für eine Netzwerktransaktion erkennt, kann er vorzugsweise unter Verwendung einer Gruppensendung in dem Netzwerk 30 rasch eine Meldung an alle beteiligten Knoten aussenden. Diese Meldung umfasst eine interessierende Anfangszeit und Dauer. Alle beteiligten Knoten nutzen diese Informationen, um diese Abschnitte ihrer entsprechenden Ereignispuffer 9094 einrasten zu las sen, so dass sie nicht mit neuen Zeitstempelaufzeichnungen überschrieben werden. Danach können die eingerasteten Abschnitte der Ereignispuffer 9094 zum Zweck einer Nachanalyse wiedergewonnen werden. Während die eingerasteten Abschnitte wiedergewonnen werden, kann der entsprechende Knoten 2024 die Einrastung dieser Abschnitte des entsprechenden Ereignispuffers 9094 rückgängig machen und weiterhin Zeitstempelaufzeichnungen sammeln. Dies ist besonders bei Anwendungen sinnvoll, bei denen bedeutende Ereignisse selten sind. Die Knoten 2024 sind dahin gehend konfiguriert, nach einem Bedeutungsereignis auszuschauen, und wenn es erfasst wird, werden alle anderen Knoten 2024 benachrichtigt.
  • Es ist vorzuziehen, dass Ereignisprotokolle 9094 groß genug sind, um alle interessanten Ereignisse über die Abrufphase des Nachverarbeitungsintervalls plus eines Sicherheitsspielraums, um alle Ereignisse, die in letzter Zeit hereingekommen sind, festzuhalten, zu speichern. Der Sicherheitsspielraum ist so bemessen, dass jeder Knoten ausreichend Zeit hat, die Bestimmung durchzuführen, ob ein Ereignis interessant ist, und die Einrastmeldung auszusenden. Die Durchlaufzeit und Verarbeitungszeit für die Einrastmeldung sollten ebenfalls in Betracht gezogen werden.
  • Die vorliegenden Techniken können leichte Verzögerungen bei der Ausführung der verteilten Anwendung bewirken. Diese Verzögerung kann unter Verwendung der vorliegenden Techniken gemessen, und die Verzögerungen in der Nachverarbeitungsphase beseitigt werden. Um diese Korrektur durchzuführen, führt eine Anwendung eine Korrekturschleife wie z.B. die folgende durch:
    For (I = 0; 1 < 10000; I++) {
    EventLog(startCorrectionCode);
    EventLog(endCorrectionCode);
    }
  • Die Zeitstempel aus diesen Paaren von Zeitstempelaufzeichnungen können subtrahiert und anschließend analysiert werden, um ein Verständnis der durchschnittlichen Verzögerung, der maximalen Verzögerung, der minimalen Verzögerung und der statistischen Verteilung von Verzögerungen zu erhalten. Diese Fakten können dazu verwendet werden, die Nachanalyseergebnisse der vollständigen verteilten Anwendung zu korrigieren.
  • Da diese Verzögerungen variieren können, während die verteilte Anwendung läuft, kann der Anwendungsprogrammierer an irgendeinem Punkt in der Anwendung zwei aufeinander folgende Aufrufe an die EventLog()-Funktion (EventLog = Ereignis-Protokoll) eingeben, wie oben veranschaulicht wurde. Auf Kosten eines Ereignisprotokollraums kann die Differenz bei diesen beiden Zeitstempeln dazu verwendet werden, den Zeitgebungsmehraufwand der vorliegenden Techniken zu überprüfen. Es ist vorzuziehen, dass das EventLog() effizient ist und seine Ausführungszeit viel kürzer ist als die laufende verteilte Anwendung.
  • Die vorstehende detaillierte Beschreibung der vorliegenden Erfindung ist zu Veranschaulichungszwecken vorgesehen und soll nicht erschöpfend sein oder die Erfindung auf das genaue offenbarte Ausführungsbeispiel beschränken. Demgemäß ist der Schutzumfang der vorliegenden Erfindung durch die angehängten Patentansprüche definiert.

Claims (10)

  1. Eine verteilte Anwendung mit einer Leistungsüberwachungsfähigkeit, die folgende Merkmale aufweist: einen Satz von Knotenanwendungen (5054), die über ein Netzwerk (30) kommunizieren, wobei jeder Knoten einen Takt aufweist, wobei die Takte miteinander synchronisiert sind, wobei jede Knotenanwendung zumindest eine Funktion (6064, 7074) aufweist und wobei jeder Knoten ferner eine Aufzeichnungsfunktion (68) aufweist, die, wenn sie durch die Funktion aufgerufen wird, einen Ereigniscode von der Funktion erhält und einen Zeitstempel von einem entsprechenden synchronisierten Takt (4044) erhält; ein Ereignisprotokoll (9094) für jede Knotenanwendung, wobei jedes Ereignisprotokoll zum Halten einer Aufzeichnung den entsprechenden Ereigniscode und den entsprechenden Zeitstempel umfasst, derart, dass die Zeitstempel in den Ereignisprotokollen in der verteilten Anwendung eine synchronisierte Zeitbasis zum Auswerten eines Satzes von bedeutenden Ereignissen, die durch die Ereigniscodes identifiziert werden, liefern; und eine Einrichtung zum Beenden des Aufzeichnens von Aufzeichnungen in einer Mehrzahl der Ereignisprotokolle, so dass die Aufzeichnungen in denselben eingerastet und nicht überschrieben werden, und zum Neustarten des Aufzeichnens der Aufzeichnungen in jedem Ereignisprotokoll nach einer Wiedergewinnung der eingerasteten Aufzeichnung in demselben.
  2. Die verteilte Anwendung gemäß Anspruch 1, bei der jede Aufzeichnungsfunktion (68) den Ereigniscode von der entsprechenden Funktion erhält und den Ereigniscode zusammen mit dem entsprechenden Zeitstempel in das entsprechende Ereignisprotokoll schreibt.
  3. Die verteilte Anwendung gemäß Anspruch 1 oder 2, bei der eine oder mehrere der Knotenanwendungen an einem Knoten ausgeführt werden, der den entsprechenden synchronisierten Takt (4044) umfasst.
  4. Die verteilte Anwendung gemäß Anspruch 1 oder 2, bei der eine oder mehrere der Knotenanwendungen an einem Knoten ausgeführt werden, der keinen synchronisierten Takt aufweist, sondern mit einem dazugehörigen Knoten verbunden ist, der einen entsprechenden synchronisierten Takt (4044) umfasst.
  5. Die verteilte Anwendung gemäß einem der vorhergehenden Ansprüche, die ferner eine Einrichtung zum Erhalten der Aufzeichnungen von den Ereignisprotokollen (9094) über das Netzwerk (30) und zum Analysieren der Aufzeichnungen unter Verwendung der Zeitstempel und Ereigniscodes umfasst.
  6. Die verteilte Anwendung gemäß einem der vorhergehenden Ansprüche, bei der die bedeutenden Ereignisse eines oder mehrere der folgenden umfassen: (i) eine Erzeugung eines HTTP-Befehls in der verteilten Anwendung; (ii) eine Übertragung einer Nachricht in dem Netzwerk; (iii) einen Empfang einer Nachricht in dem Netzwerk; (iv) einen Datenbankzugriff (v) eine Erzeugung eines Steuerwerts in der verteilten Anwendung; (vi) einen Empfang von Sensordaten; und (vii) eine Anwendung eines Steuerwerts auf ein Betätigungsglied.
  7. Ein Verfahren zur Leistungsüberwachung in einer verteilten Anwendung, die einen Satz von Knotenanwendungen aufweist, (5054), die über ein Netzwerk (30) kommunizieren, wobei das Verfahren folgende Schritte umfasst: Ausstatten jedes Knotens mit einem Takt, wobei die Takte miteinander synchronisiert sind, und mit einer Aufzeichnungsfunktion (68, 78, 88), die einen Ereigniscode von einer Funktion der entsprechenden Knotenanwendung erhält und die eine Aufzeichnung erzeugt, die einen von einem entsprechenden synchronisierten Takt (4044) erhaltenen Zeitstempel umfasst; Durchführen eines Experiments in der verteilten Anwendung; Erhalten der Aufzeichnungen von den Knotenanwendungen und Analysieren der Aufzeichnungen, derart, dass die Zeitstempel in den Aufzeichnungen in der verteilten Anwendung eine synchronisierte Zeitbasis zum Auswerten eines Satzes von durch die Ereigniscodes identifizierten bedeutenden Ereignissen liefern; und Beenden des Aufzeichnens von Aufzeichnungen in einer Mehrzahl der Ereignisprotokolle, so dass die Aufzeichnungen in denselben eingerastet und nicht überschrieben werden, und zum Neustarten des Aufzeichnens der Aufzeichnungen in jedem Ereignisprotokoll nach einer Wiedergewinnung der eingerasteten Aufzeichnung in demselben.
  8. Das Verfahren gemäß Anspruch 7, bei dem der Schritt des Analysierens der Aufzeichnungen den Schritt des Erzeugens einer graphischen Darstellung der Aufzeichnungen umfasst.
  9. Das Verfahren gemäß Anspruch 7 oder 8, das ferner den Schritt des Bestimmens eines Satzes von Verzögerungen bei der Ausführung der Knotenanwendungen (5054), die mit der Erzeugung der Aufzeichnungen zusammenhängen, umfasst.
  10. Das Verfahren gemäß Anspruch 9, das ferner den Schritt des Korrigierens der Aufzeichnungen ansprechend auf die Verzögerungen umfasst.
DE60130158T 2000-01-10 2001-01-05 Leistungsüberwachung in verteilten Systemen Expired - Lifetime DE60130158T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/480,041 US6751573B1 (en) 2000-01-10 2000-01-10 Performance monitoring in distributed systems using synchronized clocks and distributed event logs
US480041 2000-01-10

Publications (2)

Publication Number Publication Date
DE60130158D1 DE60130158D1 (de) 2007-10-11
DE60130158T2 true DE60130158T2 (de) 2008-05-21

Family

ID=23906435

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60130158T Expired - Lifetime DE60130158T2 (de) 2000-01-10 2001-01-05 Leistungsüberwachung in verteilten Systemen

Country Status (4)

Country Link
US (1) US6751573B1 (de)
EP (1) EP1117045B1 (de)
JP (1) JP2001244953A (de)
DE (1) DE60130158T2 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4453178B2 (ja) * 2000-09-13 2010-04-21 日本電気株式会社 通信ネットワークシステム及び通信ネットワークノード装置
US6934766B1 (en) * 2000-11-02 2005-08-23 Cisco Technology, Inc. Method and apparatus for exchanging event information between computer systems that reduce perceived lag times by subtracting actual lag times from event playback time
US7283568B2 (en) * 2001-09-11 2007-10-16 Netiq Corporation Methods, systems and computer program products for synchronizing clocks of nodes on a computer network
JP3901484B2 (ja) * 2001-10-05 2007-04-04 株式会社ジェイテクト 電動パワーステアリング装置
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US8065713B1 (en) 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
US7380120B1 (en) 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US7930756B1 (en) 2001-12-12 2011-04-19 Crocker Steven Toye Multi-level cryptographic transformations for securing digital assets
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
US7178033B1 (en) 2001-12-12 2007-02-13 Pss Systems, Inc. Method and apparatus for securing digital assets
US7260555B2 (en) 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US7565683B1 (en) 2001-12-12 2009-07-21 Weiqing Huang Method and system for implementing changes to security policies in a distributed security system
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US7921284B1 (en) 2001-12-12 2011-04-05 Gary Mark Kinghorn Method and system for protecting electronic data in enterprise environment
US7950066B1 (en) 2001-12-21 2011-05-24 Guardian Data Storage, Llc Method and system for restricting use of a clipboard application
US8176334B2 (en) 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
NZ518575A (en) * 2002-04-24 2004-08-27 Open Cloud Ltd Distributed application server using a peer configuration
US7373557B1 (en) * 2003-04-04 2008-05-13 Unisys Corporation Performance monitor for data processing systems
US8707034B1 (en) 2003-05-30 2014-04-22 Intellectual Ventures I Llc Method and system for using remote headers to secure electronic files
US7613212B1 (en) * 2003-06-10 2009-11-03 Atrica Israel Ltd. Centralized clock synchronization for time division multiplexed traffic transported over Ethernet networks
US7570669B2 (en) * 2003-08-08 2009-08-04 Opnet Technologies, Inc. Synchronizing packet traces
US8127366B2 (en) 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US7703140B2 (en) 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
US20050091405A1 (en) * 2003-09-30 2005-04-28 Jerry J. Liu Method and system for using multiple data type representations to deliver data objects to components in a distributed system
US7457872B2 (en) * 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US7379999B1 (en) * 2003-10-15 2008-05-27 Microsoft Corporation On-line service/application monitoring and reporting system
GB2425915B (en) * 2003-11-19 2008-01-02 Nimcat Networks Inc Time and data synchronization between networks devices
US7529979B2 (en) * 2003-12-12 2009-05-05 International Business Machines Corporation Hardware/software based indirect time stamping methodology for proactive hardware/software event detection and control
US7702909B2 (en) * 2003-12-22 2010-04-20 Klimenty Vainstein Method and system for validating timestamps
DE10360978A1 (de) 2003-12-23 2005-07-28 OCé PRINTING SYSTEMS GMBH Verfahren und Steuereinrichtung zum Anzeigen von Diagnosedaten eines Druckers oder Kopierers
US7380173B2 (en) * 2004-08-03 2008-05-27 International Business Machines Corporation Identifying temporal ambiguity in a aggregated log stream
DE102004063446A1 (de) * 2004-12-30 2006-07-13 Landis+Gyr Gmbh Vorrichtung zum Speichern von Ereignissen sowie Verfahren zum Abspeichern von Ereignissen
JP4473766B2 (ja) * 2005-04-04 2010-06-02 株式会社日立製作所 計算機システム、ログ収集方法、及びコンピュータプログラム
US7269406B2 (en) * 2005-05-26 2007-09-11 Intel Corporation Methods and apparatus for providing information indicative of traffic delay of a wireless link
US20070219751A1 (en) * 2006-03-17 2007-09-20 Jonathan Huang Sensor network data alignment with post-process resampling
WO2008015492A1 (en) * 2006-08-02 2008-02-07 Freescale Semiconductor, Inc. A method for receiving and processing frames and a device having frame receiving and processing capabilities
US20080031283A1 (en) * 2006-08-07 2008-02-07 Martin Curran-Gray Time synchronization for network aware devices
US20080228459A1 (en) * 2006-10-12 2008-09-18 Nec Laboratories America, Inc. Method and Apparatus for Performing Capacity Planning and Resource Optimization in a Distributed System
US20080123732A1 (en) * 2006-11-27 2008-05-29 Rajesh Mamidwar Method and system for configuring decoding based on detecting transport stream input rate
CN101212309B (zh) * 2006-12-30 2011-06-15 华为技术有限公司 一种控制上报事件的时间戳的方法
US8174990B2 (en) 2007-02-16 2012-05-08 International Business Machines Corporation Mechanism and system for programmable measurement of aggregate metrics from a dynamic set of nodes
US7801852B2 (en) * 2007-07-31 2010-09-21 Oracle International Corporation Checkpoint-free in log mining for distributed information sharing
US8799213B2 (en) * 2007-07-31 2014-08-05 Oracle International Corporation Combining capture and apply in a distributed information sharing system
US20090089623A1 (en) * 2007-09-28 2009-04-02 Agilent Technologies, Inc Event timing analyzer for a system of instruments and method of analyzing event timing in a system of intruments
EP2229611A1 (de) * 2007-11-26 2010-09-22 Vestas Wind Systems A/S Verfahren und system zum registrieren von ereignissen in windturbinen eines windenergiesystems
US8826242B2 (en) * 2007-11-27 2014-09-02 Microsoft Corporation Data driven profiling for distributed applications
US7818422B2 (en) * 2007-12-31 2010-10-19 Microsoft Corporation Real-time monitoring of a routing server
AT505630B1 (de) * 2008-02-05 2009-03-15 Ver Fachhochschule Technikum W Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen
US9230002B2 (en) * 2009-01-30 2016-01-05 Oracle International Corporation High performant information sharing and replication for single-publisher and multiple-subscriber configuration
US9986268B2 (en) 2009-03-03 2018-05-29 Mobilitie, Llc System and method for multi-channel WiFi video streaming
US10616619B2 (en) 2009-03-03 2020-04-07 Mobilitie, Llc System and method for multi-channel WiFi video streaming
EP2482418B1 (de) * 2011-02-01 2018-08-22 Siemens Aktiengesellschaft Aktive Desynchronisierung von Schaltwandlern
US8521345B2 (en) * 2011-12-28 2013-08-27 General Electric Company System and method for rail vehicle time synchronization
US9432269B2 (en) * 2013-04-06 2016-08-30 Citrix Systems, Inc. Systems and methods for exporting application details using appflow
EP3237989A4 (de) * 2014-12-27 2018-07-11 Intel Corporation Technologien für synchronisierte abtastung von zählern basierend auf einem globalen takt
US9665585B2 (en) 2015-01-23 2017-05-30 International Business Machines Corporation Preserving high value entries in an event log
JP6281603B2 (ja) * 2016-06-23 2018-02-21 日本電気株式会社 情報処理システム、情報処理方法、及び、情報処理プログラム
US10104148B2 (en) * 2017-01-03 2018-10-16 Globalfoundries Inc. Nanosecond accuracy under precision time protocol for ethernet by using high accuracy timestamp assist device
US10581975B2 (en) 2017-05-19 2020-03-03 Walmart Apollo, Llc System and method for smart facilities monitoring
CN109146213B (zh) * 2017-06-16 2022-04-12 北京航空航天大学 航天器电源系统健康管理验证评估环境系统
CN110609777B (zh) * 2018-06-15 2023-11-03 伊姆西Ip控股有限责任公司 用于管理日志的方法、设备和计算机程序产品

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436243A (en) * 1987-07-31 1989-02-07 Nec Corp Time unifying system in local area network
DE69221487T2 (de) 1992-08-31 1998-03-05 Hewlett Packard Co Verfahren und Anordnung zur Überwachung eines verteilten Systems
GB2296166B (en) * 1994-11-29 1999-07-07 Plessey Telecomm Clock synchronisation
US5566180A (en) * 1994-12-21 1996-10-15 Hewlett-Packard Company Method for recognizing events and synchronizing clocks
JPH08321816A (ja) * 1995-05-25 1996-12-03 Nec Eng Ltd 自動番組制御システム
US5805442A (en) * 1996-05-30 1998-09-08 Control Technology Corporation Distributed interface architecture for programmable industrial control systems
US5828876A (en) * 1996-07-31 1998-10-27 Ncr Corporation File system for a clustered processing system
US6205362B1 (en) * 1997-11-24 2001-03-20 Agilent Technologies, Inc. Constructing applications in distributed control systems using components having built-in behaviors

Also Published As

Publication number Publication date
EP1117045A2 (de) 2001-07-18
US6751573B1 (en) 2004-06-15
EP1117045B1 (de) 2007-08-29
JP2001244953A (ja) 2001-09-07
EP1117045A3 (de) 2002-12-18
DE60130158D1 (de) 2007-10-11

Similar Documents

Publication Publication Date Title
DE60130158T2 (de) Leistungsüberwachung in verteilten Systemen
DE69432746T2 (de) Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems
DE69712678T3 (de) Verfahren zur Echtzeitüberwachung eines Rechnersystems zu seiner Verwaltung und Hilfe zu seiner Wartung während seiner Betriebsbereitschaft
DE60220287T2 (de) System und verfahren zur überwachung von software-warteschlangenanwendungen
DE4115825C2 (de) Steuereinrichtung und -Verfahren zum Fertigen eines Werkstückes
DE60114999T2 (de) Überwachung von und interaktion mit netzwerkdiensten
DE60100901T2 (de) Verfahren und anordnung zum eingriffsfreien profilieren von anwendungsprogrammkoden
DE69637228T2 (de) Verfahren und vorrichtung zur messung der antwortzeit
DE69911266T2 (de) Computerprogrammprofiler
DE102007041212A1 (de) Latenzabdeckung und Anwendung auf die Erzeugung von Multiprozessor-Testgeneratorvorlagen
DE102007037092A1 (de) Zeitsynchronisation für netzwerkbewusste Vorrichtungen
DE102006037291A1 (de) Verfahren und Systeme für den Zugriff auf Prozesssteuerungsprotokollinformationen in Verbindung mit Prozesssteuerungssystemen
DE10050684A1 (de) Verfahren und System zur periodischen Ablaufverfolgung für die Echtzeitgenerierung von Segmenten von Aufrufstack-Bäumen
DE10039538A1 (de) Vorrichtung und Methode zum Analysieren der Leistung eines Computerprogramms
DE102010028884A1 (de) Ursachenanalyse für Verarbeitung komplexer Ereignisse
WO2012042017A2 (de) Verfahren und system zur aufzeichnung, synchronisation und analyse von daten mittels in einem kommunikationsnetzwerk räumlich verteilter analyse-geräte
EP3222002B1 (de) Analysevorrichtung zur analyse und manipulation einer kommunikationssequenz
DE60217729T2 (de) Verfahren zum erkennen eines elektronischen geräts in einem mehrfachsteuersystem
EP3627324A1 (de) Watchdog zur überwachung eines prozessors
DE10338073A1 (de) Verfahren und Vorrichtung zum Vordringen zu Meßdaten von allgemein angezeigten heterogenen Meßquellen
WO2005109196A1 (de) Verfahren zur bestimmung von verklemmungen in nebenläufigen prozessen
WO2003094093A2 (de) Vergleich von verarbeitungsprotokollen
AT523948B1 (de) Verfahren zur Detektion von anomalen Betriebszuständen eines Computersystems
EP1681798B1 (de) Wahlfreies Logging
EP1063828B1 (de) Verfahren zum Erlernen des einer Protokollimplementierung zugrundeliegenden endlichen Automaten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition