DE102005057537A1 - Software-Verjüngungsalgorithmus unter Verwendung einer Kundeneinfluss-Performance-Metrik - Google Patents

Software-Verjüngungsalgorithmus unter Verwendung einer Kundeneinfluss-Performance-Metrik Download PDF

Info

Publication number
DE102005057537A1
DE102005057537A1 DE102005057537A DE102005057537A DE102005057537A1 DE 102005057537 A1 DE102005057537 A1 DE 102005057537A1 DE 102005057537 A DE102005057537 A DE 102005057537A DE 102005057537 A DE102005057537 A DE 102005057537A DE 102005057537 A1 DE102005057537 A1 DE 102005057537A1
Authority
DE
Germany
Prior art keywords
threshold
response
determining
computer
implemented method
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.)
Withdrawn
Application number
DE102005057537A
Other languages
English (en)
Inventor
Alberto Avritzer
Andre B. Dr. Bondi
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.)
Siemens Medical Solutions USA Inc
Original Assignee
Siemens Corporate Research 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 Siemens Corporate Research Inc filed Critical Siemens Corporate Research Inc
Publication of DE102005057537A1 publication Critical patent/DE102005057537A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics

Abstract

Ein computerimplementiertes Verfahren zum Auslösen eines Systems und/oder Verfahrens der Software-Verjüngung umfaßt die folgenden Schritte: Empfangen einer Anforderung von Betriebsmitteln, Bestimmen einer geschätzten Ansprechzeit auf die Anforderung von Betriebsmitteln, Bestimmen, daß die geschätzte Ansprechzeit größer als eine erste Schwelle ist, Bestimmen, daß eine Anzahl von geschätzten Ansprechzeiten größer als die erste Schwelle, größer oder gleich einer zweiten Schwelle ist, und Auslösen des Systems und/oder Verfahrens der Software-Verjüngung.

Description

  • Die vorliegende Anmeldung beansprucht Priorität in bezug auf die vorläufige US-Anmeldung, laufende Nr. 60/632,163, eingereicht am 1.12.2004, worauf hiermit vollständig Bezug genommen wird.
  • HINTERGRUND DER ERFINDUNG
  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft die Software-Verjüngung und insbesondere ein System und ein Verfahren zur Auslösung der Software-Verjüngung unter Verwendung einer Kundeneinfluß-Performance-Metrik.
  • In einem großen industriellen Softwaresystem sind extensive Überwachung und Verwaltung notwendig, um die erwartete Performance und Zuverlässigkeit zu liefern. Es hat sich gezeigt, daß bestimmte spezifische Arten von Softwareausfällen, sogenannte Soft-Ausfälle, das System in einem verschlechterten Modus zurücklassen, wobei das System immer noch funktionsfähig ist, aber die verfügbare Systemkapazität reduziert wurde.
  • Soft-Ausfälle können durch die Entwicklung des Zustands einer oder mehrerer Software-Datenstrukturen während einer (möglicherweise) längeren Ausführung verursacht werden. Diese Entwicklung wird als Software-Alterung bezeichnet. Software-Alterung wurde in weithin benutzter Software beobachtet.
  • Software-Programmfehler können aufgrund von Problemen mit Synchronisierungsmechanismen, z.B. Semaphoren; Kernstrukturen, z.B. Dateitabellenzuteilungen; Datenbank-Verwaltungssystemen, z.B. Datenbank-Verriegelungs-Stillstand; und anderen Betriebsmittelzuteilungsmechanismen, die für den ordnungsgemäßen Betrieb großer mehrschichtiger verteilter Systeme wesentlich sind, auftreten. Da ein Teil dieser Betriebsmittel mit Selbstheilmechanismen, z.B. Zeitgrenzen, ausgelegt ist, können sich bestimmte Systeme nach einiger Zeit von Soft-Programmfehlern erholen.
  • Der derzeitige Betriebsmodus verwendet servergestützte Überwachungswerkzeuge, um eine Server-Integritätsprüfung bereitzustellen. Dieser Ansatz kann zu einer Diskrepanz zwischen einer Benutzerwahrnehmung der Performance und einer Überwachungswerkzeug-Sicht der Performance führen.
  • Deshalb werden ein System und ein Verfahren zur Auslösung der Software-Verjüngung unter Verwendung einer Kundeneinfluß-Performance-Metrik benötigt.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • Gemäß einer Ausführungsform der vorliegenden Offenlegung umfaßt ein computerimplementiertes Verfahren zur Auslösung eines Systems und/oder Verfahrens der Software-Verjüngung das Empfangen einer Anforderung von Betriebsmitteln und das Bestimmen einer geschätzten Ansprechzeit auf die Anforderung von Betriebsmitteln. Das Verfahren umfaßt die folgenden Schritte: Bestimmen, daß die geschätzte Ansprechzeit größer als eine erste Schwelle ist, Bestimmen, daß eine Anzahl geschätzter Ansprechzeiten größer als die erste Schwelle größer oder gleich einer zweiten Schwelle ist, und Auslösen des Systems und/oder des Verfahrens der Software-Verjüngung.
  • Das Bestimmen der geschätzten Ansprechzeit umfaßt das Nehmen von Stichproben mehrerer Ansprechzeiten und das Bestimmen einer mittleren Ansprechzeit, wobei die mittlere Ansprechzeit als die geschätzte Ansprechzeit verwendet wird.
  • Die erste Schwelle variiert entsprechend einer Anzahl geschätzter Ansprechzeiten größer als die erste Schwelle.
  • Das Verfahren umfaßt das Vergrößern der ersten Schwelle mit der Anzahl der Ansprechzeiten größer als die erste Schwelle.
  • Die zweite Schwelle ist eine positive ganze Zahl.
  • Gemäß einer Ausführungsform der vorliegenden Offenlegung umfaßt ein computerimplementiertes Verfahren zur Auslösung eines Systems und/oder Verfahrens der Software-Verjüngung die folgenden Schritte: Empfangen einer Anforderung von Betriebsmitteln und Bestimmen einer Ansprechzeit auf die Anforderung von Betriebsmitteln. Das Verfahren umfaßt die folgenden Schritte: Vergrößern einer Anzahl von Ansprechzeiten größer als eine erste Schwelle bei Bestimmung, daß die Ansprechzeit größer als die erste Schwelle ist, Verkleinern der Anzahl der Ansprechzeiten größer als die erste Schwelle bei Bestimmung, daß die Ansprechzeit kleiner als die erste Schwelle ist, Bestimmen, daß die Anzahl der Ansprechzeiten Größer als die erste Schwelle größer oder gleich einer zweiten Schwelle ist, und Auslösen des Systems und/oder Verfahrens der Software-Verjüngung.
  • Das Verfahren umfaßt die folgenden Schritte: Vergrößern der ersten Schwelle um eine Anzahl von Standardabweichungen bei Bestimmung, daß die Anzahl der Ansprechzeiten größer als die erste Schwelle größer als D ist, wobei die erste Schwelle um K Standardabweichungen vergrößert werden kann, und wobei K und D dieselbe oder verschiedene positive ganze Zahlen sind und die zweite Schwelle K multipliziert mit D ist.
  • Das Verfahren umfaßt die folgenden Schritte: Verkleinern der ersten Schwelle um eine Anzahl von Standardabweichungen bei Bestimmung, daß die Anzahl der Ansprechzeiten größer als die erste Schwelle kleiner als D ist, wobei die erste Schwelle um K Standardabweichungen verkleinert werden kann, und wobei K und D dieselbe oder verschiedene positive ganze Zahlen sind und die zweite Schwelle K multipliziert mit D ist.
  • Die Anforderung von Betriebsmitteln wird durch einen Client oder einen Lastinjektor erzeugt.
  • Das Verfahren umfaßt ferner das Initialisieren mit der Anzahl der Ansprechzeiten größer als die erste Schwelle auf Null und der auf eine niedrigste Stufe gesetzten ersten Schwelle.
  • Gemäß einer Ausführungsform der vorliegenden Offenlegung wird eine Programmspeichereinrichtung bereitgestellt, die per Maschine lesbar ist und greifbar ein Programm von Anweisungen verkörpert, die durch die Maschine ausführbar sind, um Verfahrensschritte zur Auslösung eines Systems und/oder Verfahrens der Software-Verjüngung durchzuführen. Das Verfahren umfaßt die folgenden Schritte: Empfangen einer Anforderung von Betriebsmitteln, Bestimmen einer Kenngröße eines Ansprechens auf die Anforderung von Betriebsmitteln und Vergleichen der Kenngröße des Ansprechens mit einer ersten Schwelle. Das Verfahren umfaßt die folgenden Schritte: Vergleichen, wieviel mal die Kenngröße des Ansprechens größer als die erste Schwelle ist, mit einer zweiten Schwelle und Auslösen des Systems und/oder Verfahrens der Software-Verjüngung bei Bestimmung, daß die Anzahl von Malen, die die Kenngröße des Ansprechens größer als die erste Schwelle ist, größer oder gleich der zweiten Schwelle ist.
  • Die erste Schwelle variiert entsprechend der Anzahl von Malen, die die Kenngröße des Ansprechens größer als die erste Schwelle ist.
  • Das Verfahren umfaßt das Vergrößern der ersten Schwelle mit der Anzahl von Malen, die die Kenngröße des Ansprechens größer als die erste Schwelle ist.
  • Die zweite Schwelle ist eine positive ganze Zahl.
  • Gemäß einer Ausführungsform der vorliegenden Offenlegung wird eine Programmspeichereinrichtung bereitgestellt, die per Maschine lesbar ist und greifbar ein Programm von Anweisungen verkörpert, die durch die Maschine ausführbar sind, um Verfahrensschritte zur Auslösung eines Systems und/oder Verfahrens der Software-Verjüngung durchzuführen. Das Verfahren umfaßt die folgenden Schritte: Empfangen einer Anforderung von Betriebsmitteln, Bestimmen einer Kenngröße eines Ansprechens auf die Anforderung von Betriebsmitteln und Vergleichen der Kenngröße des Ansprechens mit einer ersten Schwelle. Das Verfahren umfaßt ferner das Vergleichen einer Anzahl von Malen, die die Kenngröße des Ansprechens kleiner als die erste Schwelle ist, mit einer zweiten Schwelle und das Auslösen des Systems und/oder Verfahrens der Software-Verjüngung bei Bestimmung, daß die Anzahl von Malen, die die Kenngröße des Ansprechens kleiner als die erste Schwelle ist, größer oder gleich der zweiten Schwelle ist.
  • Die erste Schwelle variiert entsprechend der Anzahl von Malen, die die Kenngröße des Ansprechens kleiner als die zweite Schwelle ist.
  • Das Verfahren umfaßt das Vergrößern der ersten Schwelle mit der Anzahl von Malen, die die Kenngröße des Ansprechens kleiner als die erste Schwelle ist.
  • Die zweite Schwelle ist eine positive ganze Zahl.
  • Gemäß einer Ausführungsform der vorliegenden Offenlegung umfaßt ein computerimplementiertes Verfahren zum Unterscheiden zwischen einem Burst von Anforderungen und einer Abnahme der Performance eines Softwareprodukts die folgenden Schritte: Empfangen mehrerer Anforderungen von Betriebsmitteln, Vergleichen jeder der mehreren Anforderungen mit einer variablen Schwelle, Variieren der variablen Schwelle, um zwischen einem Burst von Anforderungen und einer Abnahme der Performance eines Softwareprodukts für die Abwicklung der mehreren Anforderungen zu unterscheiden, und Auslösen eines Systems und/oder Verfahrens der Software-Verjüngung bei Bestimmung, daß eine Anzahl von Ansprechzeiten größer als die variable Schwelle auf einer vorbestimmten höchsten Stufe größer oder gleich einer zweiten Schwelle ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Es werden nun nachfolgend bevorzugte Ausführungsformen der vorliegenden Erfindung mit Bezug auf die beigefügten Zeichnungen ausführlicher beschrieben:
  • 1 ist ein Diagramm eines Systems gemäß einer Ausführungsform der vorliegenden Offenlegung;
  • 2 ist ein Flußdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Offenlegung;
  • 3 ist eine Darstellung eines Verfahrens gemäß einer Ausführungsform der vorliegenden Offenlegung und
  • 4 ist ein Flußdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Offenlegung.
  • AUSFÜHRLICHE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • Gemäß einer Ausführungsform der vorliegenden Offenlegung identifizieren ein System und Verfahren eine Performance-Verschlechterung und korrigieren sie durch Verwendung von Software-Verjüngung. Die Performance-Verschlechterung alternder Software wird erkannt, indem man sich ändernde Werte einer Kundeneinflußmetrik verfolgt und auf diese anspricht. Das System und Verfahren mildern die Performance-Verschlechterung durch Auslösen eines Software-Verjüngungsereignisses.
  • Das Software-Verjüngungsereignis ist ein vorgreifender Neustart einer ablaufenden Anwendung oder eines laufenden Systems zur Verhinderung zukünftiger Ausfälle. Der Neustart kann alle Threads, die gerade ausgeführt werden, beenden und alle mit den Threads assoziierte Betriebsmittel freigeben. Das Software-Verjüngungsereignis kann zusätzliche Aktivitäten umfassen, wie zum Beispiel eine Backup-Routine oder eine Müllabfuhr.
  • Das Verfahren zum automatischen Identifizieren einer Performance-Verschlechterung unterscheidet zwischen einer Performance-Verschlechterung, die durch Bursts von Ankünften (z.B. Aktivität) verursacht wird, und einer durch Software-Alterung verursachten Performance-Verschlechterung. Das Verfahren definiert und identifiziert eine durch Software-Alterung verursachte Performance-Verschlechterung, um Software-Verjüngung auszulösen, indem Kundeneinflußmetriken überwacht werden.
  • Durch Überwachung von Verzögerungen von denen Benutzer betroffen sind (ein Beispiel für eine Kundeneinflußmetrik), verknüpft das Verfahren eine Benutzersicht der System-Performance mit einer Werkzeugüberwachungssicht der System-Performance. Da Kundeneinflußmetriken zum Auslösen eines Verjüngungsverfahrens verwendet werden, ist die Kundensicht der Performance dieselbe wie die Überwachungswerkzeug-Systemsicht der Performance. Da mehrere Behälter (im folgenden Eimer) zum Zählen der Variabilität der gemessenen Kundeneinflußmetrik verwendet werden, kann eine Verschlechterung, die eine Funktion einer Transienten in dem Ankunftsprozeß ist, von einer Verschlechterung, die eine Funktion der Software-Alterung ist, unterschieden werden. Ferner können das Nehmen von Stichproben und die Summierung von Mittelwerten der Kundeneinflußmetrik bestimmt werden, und Sätze der Statistik, wie zum Beispiel der zentrale Grenzwertsatz, können auf das Nehmen von Stichproben und die Summierung angewandt werden, um Systemverschlechterung zu erkennen.
  • Es versteht sich, daß die vorliegende Erfindung in verschiedenen Formen von Hardware, Software, Firmware, speziellen Prozessoren oder einer Kombination davon implementiert werden kann. Bei einer Ausführungsform kann die vorliegende Erfindung in Software als ein greifbar auf einer Programmspeichereinrichtung verkörpertes Anwendungsprogramm implementiert werden. Das Anwendungsprogramm kann in eine Maschine, die eine beliebige geeignete Architektur umfaßt, heraufgeladen und darin ausgeführt werden.
  • Mit Bezug auf 1 umfaßt gemäß einer Ausführungsform der vorliegenden Erfindung ein Computersystem 101 zur Implementierung eines Verfahrens der Software-Verjüngung u.a. folgendes: eine Zentralverarbeitungseinheit (CPU) 102, einen Speicher 103 und eine Schnittstelle 104 für Eingabe/Ausgabe (E/A). Das Computersystem 101 ist im allgemeinen durch die E/A-Schnittstelle 104 an ein Display 105 und verschiedene Eingabegeräte 106, wie zum Beispiel eine Maus und eine Tastatur, angekoppelt. Zu den Hilfsschaltungen können Schaltungen wie etwa Cache, Stromversorgungen, Taktschaltungen und ein Kommunikationsbus gehören. Der Speicher 103 kann Direktzugriffsspeicher (RAM), Nurlesespeicher (ROM), ein Plattenlaufwerk, ein Bandlaufwerk usw. oder eine Kombination davon umfassen. Die vorliegende Erfindung läßt sich als eine Routine 107 implementieren, die in dem Speicher 103 gespeichert und durch die CPU 102 ausgeführt wird, um das Signal aus der Signalquelle 108 zu verarbeiten. Dementsprechend ist das Computersystem 101 ein Vielzweck-Computersystem, das zu einem Spezial-Computersystem wird, wenn es die Routine 107 der vorliegenden Erfindung ausführt.
  • Die Computerplattform 101 umfaßt außerdem ein Betriebssystem und einen Mikroanweisungscode. Die verschiedenen hier beschriebenen Prozesse und Funktionen können entweder Teil des Mikroanweisungscodes oder Teil des Anwendungsprogramms sein (oder einer Kombination davon), der bzw. das über das Betriebssystem ausgeführt wird. Zusätzlich können verschiedene andere Peripheriegeräte mit der Computerplattform verbunden sein, wie zum Beispiel ein zusätzliches Datenspeichergerät und ein Druckgerät.
  • Da ein Teil der konstituierenden Systemkomponenten und Verfahrensschritte, die in den beigefügten Figuren abgebildet sind, in Software implementiert werden kann, versteht es sich ferner, daß die tatsächlichen Verbindungen zwischen den Systemkomponenten (oder den Prozeßschritten) abhängig von der Art und Weise der Programmierung der vorliegenden Erfindung unterschiedlich sein können. Anhand der hier angegebenen Lehren der vorliegenden Erfindung werden Durchschnittsfachleute in der Lage sein, diese und ähnliche Implementierungen oder Konfigurationen der vorliegenden Erfindung in Betracht zu ziehen.
  • Gemäß einer Ausführungsform der vorliegenden Offenlegung unterscheidet ein Verfahren zwischen einer Performance-Verschlechterung aufgrund eines Bursts von Ankünften und einer Performance-Verschlechterung aufgrund einer vergrößerten Versorgungszeit als Ergebnis einer Systemkapazitätsverschlechterung. Wenn zum Beispiel das System mit voller Kapazität arbeitet und ein kurzer Burst von Ankünften dargeboten wird, sollte kein Vorteil in der Ausführung der präventiven Wartungsroutine bestehen. Wenn sich die Systemkapazität jedoch so weit verschlechtert hat, daß Benutzer effektiv aus dem System ausgesperrt sind, kann eine präventive Wartung angebracht sein.
  • Man kann häufig, zum Beispiel alle 2 Sekunden, von einer Kundeneinflußmetrik der Performance, wie zum Beispiel einer Ansprechzeit, Stichproben nehmen. Die Kundeneinflußmetrik kann eine Zeit schätzen, zu der ein Computersystem auf einer bestimmten Schwellenstufe, z.B. voller Kapazität, arbeitet. Wenn bestimmt wird, daß das Computersystem auf oder über der Schwellenstufe arbeitet, wird ein Überwachungswerkzeug in Produktion eingesetzt. Das Nehmen von Stichproben kann zum Beispiel durch Lastinjektoren durchgeführt werden, die an wichtigen Kundenstandorten eingesetzt werden. Lastinjektoren erzeugen virtuelle Benutzer, die den Platz realer, Client-Software betreibender Benutzer einnehmen. Die Lastinjektoren erzeugen Transaktionsanforderungen von einem oder mehreren virtuellen Benutzer-Clients, um eine Last auf einem oder mehreren zu prüfenden Servern zu erzeugen. Somit läßt sich eine genaue Schätzung der mittleren Transaktionsansprechzeitanforderung bestimmen.
  • Während eines Meßfensters werden Stichproben der Transaktionsansprechzeit genommen, wenn ihre Verarbeitung endet. K repräsentiert die Gesamtzahl der verfügbaren Eimer. D repräsentiert die Tiefe jedes Eimers, z.B. die maximale Anzahl von Vorfällen, die der aktuelle Eimer speichert, ohne überzulaufen. Wenn ein letzter verfügbarer Eimer (Eimer N = K) überläuft, wird eine Verjüngungsroutine ausgeführt.
  • Die Stufen jedes der K zusammenhängenden Eimer werden verfolgt. Zu jedem gegebenen Zeitpunkt wird die Stufe d nur des N-ten Eimers betrachtet. N wird erhöht, wenn der aktuelle Eimer überläuft, d.h. wenn d zum ersten Mal D übersteigt, und wird erniedrigt, wenn der aktuelle Eimer geleert ist, d.h. wenn d das nächste Mal den Wert Null annimmt.
  • Mit Bezug auf 2 kann für eine Transaktion 201, von der Stichproben genommen werden, eine Schätzung der derzeitigen mittleren Verzögerung folgendermaßen bestimmt werden:
    Figure 00110001
  • Ein Verfahren gemäß einer Ausführungsform der vorliegenden Offenlegung wird beim Herauffahren des Systems, z.B. 201, und bei Verjüngung 203 mit d = 0; N = 0 initialisiert. Mit Bezug auf 3 repräsentiert N einen Eimer-Index 301; in dem in 3 gezeigten Beispiel gilt N = 4. d repräsentiert die Anzahl von in dem aktuellen Eimer 302 gespeicherten Bällen; in dem Beispiel befinden sich gerade 8 Bälle in dem Eimer 4. Die K zusammenhängenden Eimer 303 werden modelliert, wobei die Anzahl der Bälle in jedem Eimer verfolgt wird. Es wird ein Ball in dem aktuellen Eimer 208 abgelegt, wenn ein Wert einer Kundeneinflußmetrik, wie zum Beispiel eine gemessene Verzögerung (z.B. eine Verzögerung beim Ansprechen auf eine Transaktionsanforderung), einen erwarteten Wert der Kundeneinflußmetrik 207 von zum Beispiel 30 Sekunden übersteigt. Es wird ein Ball aus dem aktuellen Eimer 213 entfernt, wenn die gemessene Verzögerung kleiner als der erwartete Wert der Kundeneinflußmetrik 210 und 212 ist.
  • Wenn der aktuelle Eimer überläuft 205, wird eine Schätzung der erwarteten Verzögerung korrigiert, indem eine Standardabweichung zu dem erwarteten Wert der Metrik 206 addiert wird, und man geht zum nächsten Eimer über. Wenn ein Eimer unterläuft 205, wird die eine Standardabweichung von der Schätzung der erwarteten Verzögerung 209 subtrahiert, und man geht zu dem vorherigen vollen Eimer über.
  • Der Überwachungssystemarchitekt oder -administrator kann die Nachgiebigkeit eines Verfahrens gegenüber einem Burst von Ankünften (z.B. Transaktionsanforderungen) abstimmen, indem er den Wert von D 304 ändert. Die Nachgiebigkeit des Verfahrens gegenüber einer Verschlechterung der Kundeneinflußmetrik wird durch Abstimmen des Werts von K eingestellt. K repräsentiert die Anzahl der Standardabweichungen vom Mittelwert, die toleriert werden würden, bevor die Software-Verjüngungsroutine aktiviert wird.
  • Ein Verfahren gemäß einer Ausführungsform der vorliegenden Offenlegung liefert eine wünschenswerte Grund-Performance bei niedrigen Lasten, weil es aktiviert wird, wenn die Kundeneinflußmetrik ein vorbestimmtes Target übersteigt. Diese Performance erreicht man durch Verwendung mehrerer zusammenhängender Eimer zur Verfolgung von Bursts in dem Transak tionsankunftsprozeß und einer Eimertiefe zur Validierung der Zeitpunkte, zu denen die Schätzung der Performance-Metrik geändert werden sollte.
  • Ein Verfahren gemäß einer Ausführungsform der vorliegenden Offenlegung kann erweitert werden, um die Anwendung mehrerer statistischer Funktionen zur Schätzung der Kundeneinflußmetrik zu erlauben, wie zum Beispiel das Nehmen des Mittelwerts eines Stichprobenfensters oder des Max oder des Min oder des Medians oder der Summe; durch Verwendung von Abweichungen, deren Betrag mit N, dem Index des aktuellen Eimers, variiert, indem die aktuelle Abweichung für eine bestimmte Menge von Koeffizienten aN auf x + aN° gesetzt wird. Das Verfahren kann außerdem die Möglichkeit berücksichtigen, daß die Abgangsrate abnimmt, wenn sich das System verschlechtert, indem man die Eimertiefen von dem Wert von N abhängig macht. D würde dann durch DN ersetzt.
  • Gemäß einer Ausführungsform der vorliegenden Offenlegung kann man ein Verfahren zur Überwachung der relevanten Kundeneinflußmetriken in Softwareprodukten und zum Auslösen der Software-Verjüngung benutzen, wenn die Schätzung der Kundeneinflußmetrik ein spezifiziertes Target überschreitet.
  • Es sollte beachtet werden, daß in der gesamten Beschreibung Ausführungsformen unter Verwendung der Begriffe „Eimer" und „Ball" beschrieben wurden. Diese Begriffe sind jedem beliebigen Verfahren zum Zählen des Auftretens eines Ereignisses analog, zum Beispiel betrachtet man in der Computerwissenschaft ein Element eines Arrays als einen Eimer, wobei das Array K Elemente (z.B. Eimer) lang ist und jedes Element eine Zahl speichert, die repräsentiert, wie oft ein Ereignis aufgetreten ist (z.B. Bälle). Für Durchschnittsfachleute ist erkennbar, daß andere Verfahren zum Verfolgen einer Kundeneinflußmetrik möglich sind.
  • Mit Bezug auf 4 umfaßt gemäß einer Ausführungsform der vorliegenden Offenlegung ein Verfahren zum Auslösen eines Systems und/oder Verfahrens der Software-Verjüngung die folgenden Schritte: Empfangen einer Anforderung von Betriebsmitteln 401, Bestimmen einer Ansprechzeit auf die Anforderung von Betriebsmitteln 402, Bestimmen, daß die Ansprechzeit größer als eine erste Schwelle ist 403, Bestimmen, daß eine Anzahl von Ansprechzeiten größer als die erste Schwelle größer als eine zweite Schwelle ist 404, und Auslösen des Systems und/oder Verfahrens der Software-Verjüngung 405. Die Ansprechzeit ist ein Beispiel für eine Kundeneinflußmetrik; es können andere Metriken verwendet werden, wie zum Beispiel eine Anzahl von 404-Fehlern, die ein Client empfängt (z.B. Hinzufügen eines Balls zu einem Eimer beim Empfang eines 404-Fehlers und Subtrahieren eines Balls von dem Eimer beim Empfang einer gültigen Antwort).
  • Nachdem Ausführungsformen für ein System und Verfahren zum Auslösen der Software-Verjüngung beschrieben wurden, wird angemerkt, daß Fachleute im Hinblick auf die obigen Lehren Modifikationen und Abwandlungen vornehmen können. Es versteht sich deshalb, daß an den konkreten offengelegten Ausführungsformen der Erfindung Änderungen vorgenommen werden können, die innerhalb des Gedankens und Schutzumfangs der Erfindung liegen, der durch die angefügten Ansprüche definiert wird. Nachdem somit die Erfindung mit den Einzelheiten und der Genauigkeit gemäß den Anforderungen des Patentrechts beschrieben wurde, wird das zu Beanspruchende und durch das Patentrecht zu Schützende in den angefügten Ansprüchen dargelegt.

Claims (20)

  1. Computerimplementiertes Verfahren zum Auslösen eines Systems und/oder Verfahrens der Software-Verjüngung, mit den folgenden Schritten: Empfangen einer Anforderung von Betriebsmitteln; Bestimmen einer geschätzten Ansprechzeit auf die Anforderung von Betriebsmitteln; Bestimmen, daß die geschätzte Ansprechzeit größer als eine erste Schwelle ist; Bestimmen, daß eine Anzahl geschätzter Ansprechzeiten größer als die erste Schwelle größer oder gleich einer zweiten Schwelle ist; und Auslösen des Systems und/oder Verfahrens der Software-Verjüngung.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Bestimmen der geschätzten Ansprechzeit die folgenden Schritte umfaßt: Nehmen von Stichproben von mehreren Ansprechzeiten; und Bestimmen einer mittleren Ansprechzeit, wobei die mittlere Ansprechzeit als die geschätzte Ansprechzeit verwendet wird.
  3. Computerimplementiertes Verfahren nach Anspruch 1, wobei die erste Schwelle entsprechend einer Anzahl von geschätzten Ansprechzeiten größer als die erste Schwelle variiert.
  4. Computerimplementiertes Verfahren nach Anspruch 3, ferner mit dem Schritt des Vergrößerns der ersten Schwelle mit der Anzahl von Ansprechzeiten größer als die erste Schwelle.
  5. Computerimplementiertes Verfahren nach Anspruch 1, wobei die zweite Schwelle eine positive ganze Zahl ist.
  6. Computerimplementiertes Verfahren zum Auslösen eines Systems und/oder Verfahrens der Software-Verjüngung, mit den folgenden Schritten: Empfangen einer Anforderung von Betriebsmitteln; Bestimmen einer Ansprechzeit auf die Anforderung von Betriebsmitteln; Vergrößern einer Anzahl von Ansprechzeiten größer als eine erste Schwelle bei Bestimmung, daß die Ansprechzeit größer als die erste Schwelle ist; Verkleinern der Anzahl von Ansprechzeiten größer als die erste Schwelle bei Bestimmung, daß die Ansprechzeit kleiner als die erste Schwelle ist; Bestimmen, daß die Anzahl von Ansprechzeiten größer als die erste Schwelle größer oder gleich einer zweiten Schwelle ist; und Auslösen des Systems und/oder Verfahrens der Software-Verjüngung.
  7. Computerimplementiertes Verfahren nach Anspruch 6, ferner mit dem Schritt des Vergrößerns der ersten Schwelle um eine Anzahl von Standardabweichungen bei Bestimmung, daß die Anzahl der Ansprechzeiten größer als die erste Schwelle größer als D ist, wobei die erste Schwelle um K Standardabweichungen vergrößert werden kann, und wobei K und D dieselben oder verschiedene positive ganze Zahlen sind und die zweite Schwelle K multipliziert mit D ist.
  8. Computerimplementiertes Verfahren nach Anspruch 6, ferner mit dem Schritt des Verkleinerns der ersten Schwelle um eine Anzahl von Standardabweichungen bei Bestimmung, daß die Anzahl der Ansprechzeiten größer als die erste Schwelle kleiner als D ist, wobei die erste Schwelle um K Standardabweichungen verkleinert werden kann, und wobei K und D dieselben oder verschiedene positive ganze Zahlen sind und die zweite Schwelle K multipliziert mit D ist.
  9. Computerimplementiertes Verfahren nach Anspruch 6, wobei die Anforderung von Betriebsmitteln von einem Client erzeugt wird.
  10. Computerimplementiertes Verfahren nach Anspruch 6, wobei die Anforderung von Betriebsmitteln durch einen Lastinjektor erzeugt wird.
  11. Computerimplementiertes Verfahren nach Anspruch 6, ferner mit dem Schritt des Initialisierens, wobei die Anzahl der Ansprechzeiten größer als die erste Schwelle auf Null und die erste Schwelle auf eine niedrigste Stufe gesetzt wird.
  12. Maschinenlesbare Programmspeichereinrichtung, die greifbar ein Programm von Anweisungen verkörpert, die durch die Maschine ausführbar sind, um Verfahrensschritte zum Auslösen eines Systems und/oder Verfahrens zur Software-Verjüngung durchzuführen, wobei die Verfahrensschritte folgendes umfassen: Empfangen einer Anforderung von Betriebsmitteln; Bestimmen einer Kenngröße eines Ansprechens auf die Anforderung von Betriebsmitteln; Vergleichen der Kenngröße des Ansprechens mit einer ersten Schwelle; Vergleichen einer Anzahl von Malen, die die Kenngröße des Ansprechens größer als die erste Schwelle ist, mit einer zweiten Schwelle; und Auslösen des Systems und/oder Verfahrens der Software-Verjüngung bei Bestimmung, daß die Anzahl von Malen, die die Kenngröße des Ansprechens größer als die erste Schwelle ist, größer oder gleich der zweiten Schwelle ist.
  13. Verfahren nach Anspruch 12, wobei die erste Schwelle entsprechend der Anzahl von Malen, die die Kenngröße des Ansprechens größer als die erste Schwelle ist, variiert.
  14. Verfahren nach Anspruch 13, ferner mit dem Schritt des Vergrößerns der ersten Schwelle mit der Anzahl von Malen, die die Kenngröße des Ansprechens größer als die erste Schwelle ist.
  15. Verfahren nach Anspruch 12, wobei die zweite Schwelle eine positive ganze Zahl ist.
  16. Maschinenlesbare Programmspeichereinrichtung, die greifbar ein Programm von Anweisungen verkörpert, die durch die Maschine ausführbar sind, um Verfahrensschritte zum Auslösen eines Systems und/oder Verfahrens der Software-Verjüngung durchzuführen, wobei die Verfahrensschritte folgendes umfassen: Empfangen einer Anforderung von Betriebsmitteln; Bestimmen einer Kenngröße eines Ansprechens auf die Anforderung von Betriebsmitteln; Vergleichen der Kenngröße des Ansprechens mit einer ersten Schwelle; Vergleichen einer Anzahl von Malen, die die Kenngröße des Ansprechens kleiner als die erste Schwelle ist, mit einer zweiten Schwelle; und Auslösen des Systems und/oder Verfahrens der Software-Verjüngung bei Bestimmung, daß die Anzahl von Malen, die die Kenngröße des Ansprechens kleiner als die erste Schwelle ist, größer oder gleich der zweiten Schwelle ist.
  17. Verfahren nach Anspruch 16, wobei die erste Schwelle entsprechend der Anzahl von Malen, die die Kenngröße des Ansprechens kleiner als die zweite Schwelle ist, variiert.
  18. Computerimplementiertes Verfahren nach Anspruch 17, ferner mit dem Schritt des Vergrößerns der ersten Schwelle mit der Anzahl von Malen, die die Kenngröße des Ansprechens kleiner als die erste Schwelle ist.
  19. Computerimplementiertes Verfahren nach Anspruch 16, wobei die zweite Schwelle eine positive ganze Zahl ist.
  20. Computerimplementiertes Verfahren zum Unterscheiden zwischen einem Burst von Anforderungen und einer Abnahme der Performance eines Softwareprodukts, mit den folgenden Schritten: Empfangen mehrerer Anforderungen von Betriebsmitteln; Vergleichen jeder der mehreren Anforderungen mit einer variablen Schwelle; Variieren der variablen Schwelle, um zwischen einem Burst von Anforderungen und einer Abnahme der Performance eines Softwareprodukts zur Abwicklung der mehreren Anforderungen zu unterscheiden; und Auslösen eines Systems und/oder Verfahrens der Software-Verjüngung bei Bestimmung, daß eine Anzahl von Ansprechzeiten größer als die variable Schwelle auf einer vorbestimmten höchsten Stufe größer oder gleich einer zweiten Schwelle ist.
DE102005057537A 2004-12-01 2005-12-01 Software-Verjüngungsalgorithmus unter Verwendung einer Kundeneinfluss-Performance-Metrik Withdrawn DE102005057537A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63216304P 2004-12-01 2004-12-01
US60/632,163 2004-12-01
US11/225,990 US20060130044A1 (en) 2004-12-01 2005-09-14 System and method for triggering software rejuvenation using a customer affecting performance metric
US11/225,990 2005-09-14

Publications (1)

Publication Number Publication Date
DE102005057537A1 true DE102005057537A1 (de) 2006-08-10

Family

ID=36585588

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005057537A Withdrawn DE102005057537A1 (de) 2004-12-01 2005-12-01 Software-Verjüngungsalgorithmus unter Verwendung einer Kundeneinfluss-Performance-Metrik

Country Status (2)

Country Link
US (1) US20060130044A1 (de)
DE (1) DE102005057537A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271838B2 (en) 2004-11-16 2012-09-18 Siemens Corporation System and method for detecting security intrusions and soft faults using performance signatures
US7657793B2 (en) * 2006-04-21 2010-02-02 Siemens Corporation Accelerating software rejuvenation by communicating rejuvenation events
US8984123B2 (en) 2009-04-23 2015-03-17 Nec Corporation Rejuvenation processing device, rejuvenation processing system, computer program, and data processing method
JP5403051B2 (ja) * 2009-04-23 2014-01-29 日本電気株式会社 若化処理装置、若化処理システム、コンピュータプログラムおよびデータ処理方法
US8874872B2 (en) 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
US10049040B2 (en) 2011-01-21 2018-08-14 Seagate Technology Llc Just in time garbage collection
US8959402B2 (en) * 2012-10-04 2015-02-17 Qualcomm Incorporated Method for preemptively restarting software in a multi-subsystem mobile communication device to increase mean time between failures
CN104536894B (zh) * 2015-01-09 2017-08-04 哈尔滨工程大学 针对两层软件老化现象的基于维护费用的全局优化方法
CN104965763B (zh) * 2015-07-21 2019-03-15 国家计算机网络与信息安全管理中心 一种老化感知的任务调度系统
US10157116B2 (en) 2016-11-28 2018-12-18 Google Llc Window deviation analyzer
CN112000580B (zh) * 2020-08-27 2022-09-23 武汉理工大学 负载相关的软件老化检测方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026391A (en) * 1997-10-31 2000-02-15 Oracle Corporation Systems and methods for estimating query response times in a computer system
US6457143B1 (en) * 1999-09-30 2002-09-24 International Business Machines Corporation System and method for automatic identification of bottlenecks in a network
US6725272B1 (en) * 2000-02-18 2004-04-20 Netscaler, Inc. Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time
US6618825B1 (en) * 2000-04-20 2003-09-09 Hewlett Packard Development Company, L.P. Hierarchy of fault isolation timers
US7055063B2 (en) * 2000-11-14 2006-05-30 International Business Machines Corporation Method and system for advanced restart of application servers processing time-critical requests
US7100079B2 (en) * 2002-10-22 2006-08-29 Sun Microsystems, Inc. Method and apparatus for using pattern-recognition to trigger software rejuvenation
US7555679B2 (en) * 2004-10-13 2009-06-30 Lenovo (Singapore) Pte Ltd System and method for computer system rejuvenation
US20060129367A1 (en) * 2004-11-09 2006-06-15 Duke University Systems, methods, and computer program products for system online availability estimation
JP4570527B2 (ja) * 2005-07-20 2010-10-27 富士通株式会社 システム性能監視プログラム及びシステム性能監視方法

Also Published As

Publication number Publication date
US20060130044A1 (en) 2006-06-15

Similar Documents

Publication Publication Date Title
DE102005057537A1 (de) Software-Verjüngungsalgorithmus unter Verwendung einer Kundeneinfluss-Performance-Metrik
Nurmi et al. Modeling machine availability in enterprise and wide-area distributed computing environments
US8055952B2 (en) Dynamic tuning of a software rejuvenation method using a customer affecting performance metric
DE102018113625A1 (de) Fehlerinjektionstestvorrichtung und -verfahren
US7475292B2 (en) System and method for triggering software rejuvenation using a customer affecting performance metric
DE112016006063T5 (de) Techniken zum Managen von Sensoranomalien
DE112010005400T5 (de) System für gegenseitige Überwachung von Mikrocomputern und ein Verfahren für gegenseitige Überwachung von Mikrocomputern
DE10240883A1 (de) Verfahren zum Erfassen eines unbegrenzten Wachstums verketteter Listen in einer laufenden Anwendung
EP1495417A1 (de) System und verfahren zur betriebsmittelbenutzungsschätzung
DE60314742T2 (de) System und verfahren zur überwachung eines computers
DE202017106569U1 (de) Analyse grossangelegter Datenverarbeitungsaufträge
DE10249644A1 (de) Softwareabsturzereignisanalyseverfahren und -system
DE102018217137A1 (de) Anzeigevorrichtung, Verwaltungssystem, und Steuerprogramm
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE112021001974T5 (de) Proaktives durchführen von aufgaben auf der grundlage eines schätzens vonhardwarerekonfigurationszeiten
CN112199850A (zh) 一种基于过程特征的系统弹性分布规律研究方法
CN112650608A (zh) 异常根因定位方法以及相关装置、设备
US8843931B2 (en) System and method for identifying business critical processes
DE102012221253A1 (de) Gleitkomma-Ereigniszähler mit automatischer Vorteilung
DE202017105807U1 (de) Fenster-Abweichungsanalysierer
DE102014213752A1 (de) Rechenvorrichtung und Verfahren zum Erkennen von Angriffen auf ein technisches System anhand von Ereignissen einer Ereignisfolge
DE102013202140A1 (de) Verfahren und Vorrichtung zur Überprüfung eines digitalen Multiplizierers
DE102017219195B4 (de) Verfahren zum gewährleisten eines betriebs eines rechners
EP2021922B1 (de) Verfahren und vorrichtung für ein fehlertoleranzmanagement einer softwarekomponente
US20070299968A1 (en) Method for the Early Indication of Serialization Bottlenecks

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: SIEMENS MEDICAL SOLUTIONS USA, INC., MALVERN, PA.,

8139 Disposal/non-payment of the annual fee