Autonomic Computing
Seminar (SS 2010)
Diagnosis
Über: Pinpoint: Problem Determination in Large, Dynamic Internet
Services (Chen, Mike et al.)
Oliver Stadie
7. Juni 2010
Autonomic Computing - Über: Pinpoint 2
Gliederung
● Problem & Ziel
● Idee
● Umsetzung
● Bewertung
● Einschränkungen & Ansätze
Autonomic Computing - Über: Pinpoint 3
Problem & Ziel (1)
● Problem: Riesige Systeme
● Ständige Änderung
● Ständiges Wachstum
● Fehler treten auf
● Interagierende, verteilte Komponenten
● Client Requests durchlaufen verschiedene
Komponenten
● Ziel: Fehlerquellen finden ohne konkretes System
zu kennen oder anzupassen
Autonomic Computing - Über: Pinpoint 4
Problem & Ziel (2)
● Fehlerhafter
Request:
● Problem:
Fehlerquelle könnte
in Komponente K21,
K22, K32 oder K33
liegen
● Ziel: Fehlerquelle
idenzifizieren
K11 K21 K31
K12 K22 K32
K13 K23 K33
System
Autonomic Computing - Über: Pinpoint 5
Idee (1)
● Viele Requests: ● Einige Komponenten haben
öfter Fehler als andere
● K22: 3 von 3 (100%)
● K21: 1 von 2 (50%)
● K12: 0 von 2 (0%)
● Zusammenspiel mehrerer
Komponenten
● K32+K33: 1 von 2 (50%)
● Sensitivität einstellbar
K11 K21 K31
K12 K22 K32
K13 K23 K33
Autonomic Computing - Über: Pinpoint 6
Idee (2)
1.Client Request
Traces
2.Failure Detection
(extern & intern)
3.Data Clustering
Analysis
Autonomic Computing - Über: Pinpoint 7
Idee (3)
● Client Request Traces
● Middleware instrumentieren → welche Komponenten für
jeden Request benutzt?
● Failure Detection
● Interne Failure Detection
● Externe Failure Detection
● Data Clustering Analysis
● Daten über benutzte Komponenten + Failure Daten →
fehlerhafte Komponenten & Interaktionen
Autonomic Computing - Über: Pinpoint 8
Idee (4) - Client Request Tracing
K2 Pinpoint K3
<R1, ...>
<R2, ...>
<R2, K2>
<R1, ...>
<R2, ...>
<R2, K2>
<R2, K3>
R2PinpointR
Middleware Framework
Trace Log
vorher
Trace Log
nachher
PP
Autonomic Computing - Über: Pinpoint 9
Idee (5) - Client Request Tracing
● Aufzeichnen aller Komponenten die jeder Request benutzt
● Alternativ: Aufzeichnen aller Maschinen (grob) oder Dateien
(fein)
● Weist ankommenden Requests ID zu
● Instrumentierung der Middleware
● Vergleichbar: umschreiben der verwendeten Bibliotheken (z. B.
Mathe-Bibliothek)
● Komponenten bleiben unberührt
● Abhängig vom benutzen Framework
Autonomic Computing - Über: Pinpoint 10
Idee (6) – Failure Detection
● Unabhängig von Client Request Tracing
● Aufzeichnen ob ein Request fehlerhaft ist
oder nicht
● Interne Failures:
● Werden maskiert bevor sie User erreichen
● Middleware wird instrumentiert
● External Failures
● z.B. Maschinen-Crash, veraltete Links
Autonomic Computing - Über: Pinpoint 11
Idee (9) – Failure Detection
● Erfolgreicher Request
K2 PinpointK3
<R1, ...>
<R2, ...>
R3PPR
Middleware Framework
Fault Log
vorher
Trace Log
nachher
<R1, ...>
<R2, ...>
<R3, Success>
Autonomic Computing - Über: Pinpoint 12
Idee (7) – Failure Detection
● Beispiel interner maskierter Fehler:
Autonomic Computing - Über: Pinpoint 13
R3
Idee (10) – Failure Detection
● Interner Fehler ohne PP:
K3 K4
Middleware Framework
K1 K2
Km
<<maskierend>>
Autonomic Computing - Über: Pinpoint 14
R3
Idee (11) – Failure Detection
● Interner Fehler mit PP:
K3 K4
Middleware Framework
K1 K2
Km
<<maskierend>>
Trace Log
nacher
<R1, ...>
<R2, ...>
<R3, Fail>
PP
Autonomic Computing - Über: Pinpoint 15
Idee (8) – Failure Detection
● Beispiel Externe Fehler:
● Error 404, Server-Timeouts, etc.
● Url: http://www.google.de/ungueltigeUrl
Autonomic Computing - Über: Pinpoint 16
R
Idee (12) – Failure Detection
● Externer Fehler ohne PP:
K3 K4
K1 K2
Middleware
Framework
Server
Response
mit Fehler
Autonomic Computing - Über: Pinpoint 17
R
Idee (13) – Failure Detection
● Externer Fehler mit PP:
K3 K4
K1 K2
Middleware
Framework
Server
Response
mit Fehler
PP
Trace Log
nacher
<R1, ...>
<R2, ...>
<R3, Fail>
Autonomic Computing - Über: Pinpoint 18
Idee (14) – Data Analysis
● Zusammenführen des Trace Logs und Failure
Logs. Bsp:
● Berechnen wie oft Komponenten (oder
Kombinationen) an Fehlern beteiligt sind
● Im Paper nicht näher erklärt
Autonomic Computing - Über: Pinpoint 19
Umsetzung (1)
● Prototyp auf J2EE Middleware implementiert
● Client Request Tracing
● Interne Fault Detection
● (Fault Injektion)
● Network Sniffer
● Externe Failure Detection, durch TCP- und HTTP-Check
der Responses
● Analyzer
● Benutzt nicht näher erläuterte Algorithmen
Autonomic Computing - Über: Pinpoint 20
Bewertung (1)
● Experimenteller Aufbau:
● e-commerce service: J2EE PetStore
demonstration application
● Fehler ins System injiziert
– 4 Typen von Fehlern
– Fehler Injektion getrennt von Fault Detector
● 133 Tests: Einzel-Komponenten-Fehler & Fehler
durch Interaktion
● Client Emulator: generiert Requests
Autonomic Computing - Über: Pinpoint 21
Bewertung (2)
Anteil
gefundener
fehlerhafter
Paare
perfekt
Autonomic Computing - Über: Pinpoint 22
Bewertung (3)
● Vergleich mit 2 anderen einfachen Analyse-
Verfahren
● Dedection & dependency checking
● Pinpoint hat deutlich bessere Ergebnisse
● Performance Verlust durch Pinpoint:
● Unter 10%
● Analyse kann offline gemacht werden
● Tracefiles: 2,5kB pro Request (100 Byte wenn
komprimiert)
Autonomic Computing - Über: Pinpoint 23
Einschränkungen und → Ansätze
● Komponenten die immer zusammenarbeiten nicht
unterscheidbar → synthetische Requests
● Request-übergreifende Fehler nicht identifizierbar → Traces
auf „shared state“ (Datenbanken) ausweiten
● „krankhafte Eingaben“ (z.B. fehlerhafte Cookies / defekter
Browser) nicht von Systemfehlern unterscheidbar → Die
Requests selbst aufzeichnen
● „fail-stutter“ fault (Performance-Verlust durch maskierte
Fehler) → Timing Informationen nutzen
Autonomic Computing - Über: Pinpoint 24
Quellen
● Pinpoint: Problem Determination in Large,
Dynamic Internet Services (Chen, Mike et al.)
Autonomic Computing - Über: Pinpoint 25
Diskussion, Fragen, Kommentare

Autonomic Computing - Diagnosis - Pinpoint Summary

  • 1.
    Autonomic Computing Seminar (SS2010) Diagnosis Über: Pinpoint: Problem Determination in Large, Dynamic Internet Services (Chen, Mike et al.) Oliver Stadie 7. Juni 2010
  • 2.
    Autonomic Computing -Über: Pinpoint 2 Gliederung ● Problem & Ziel ● Idee ● Umsetzung ● Bewertung ● Einschränkungen & Ansätze
  • 3.
    Autonomic Computing -Über: Pinpoint 3 Problem & Ziel (1) ● Problem: Riesige Systeme ● Ständige Änderung ● Ständiges Wachstum ● Fehler treten auf ● Interagierende, verteilte Komponenten ● Client Requests durchlaufen verschiedene Komponenten ● Ziel: Fehlerquellen finden ohne konkretes System zu kennen oder anzupassen
  • 4.
    Autonomic Computing -Über: Pinpoint 4 Problem & Ziel (2) ● Fehlerhafter Request: ● Problem: Fehlerquelle könnte in Komponente K21, K22, K32 oder K33 liegen ● Ziel: Fehlerquelle idenzifizieren K11 K21 K31 K12 K22 K32 K13 K23 K33 System
  • 5.
    Autonomic Computing -Über: Pinpoint 5 Idee (1) ● Viele Requests: ● Einige Komponenten haben öfter Fehler als andere ● K22: 3 von 3 (100%) ● K21: 1 von 2 (50%) ● K12: 0 von 2 (0%) ● Zusammenspiel mehrerer Komponenten ● K32+K33: 1 von 2 (50%) ● Sensitivität einstellbar K11 K21 K31 K12 K22 K32 K13 K23 K33
  • 6.
    Autonomic Computing -Über: Pinpoint 6 Idee (2) 1.Client Request Traces 2.Failure Detection (extern & intern) 3.Data Clustering Analysis
  • 7.
    Autonomic Computing -Über: Pinpoint 7 Idee (3) ● Client Request Traces ● Middleware instrumentieren → welche Komponenten für jeden Request benutzt? ● Failure Detection ● Interne Failure Detection ● Externe Failure Detection ● Data Clustering Analysis ● Daten über benutzte Komponenten + Failure Daten → fehlerhafte Komponenten & Interaktionen
  • 8.
    Autonomic Computing -Über: Pinpoint 8 Idee (4) - Client Request Tracing K2 Pinpoint K3 <R1, ...> <R2, ...> <R2, K2> <R1, ...> <R2, ...> <R2, K2> <R2, K3> R2PinpointR Middleware Framework Trace Log vorher Trace Log nachher PP
  • 9.
    Autonomic Computing -Über: Pinpoint 9 Idee (5) - Client Request Tracing ● Aufzeichnen aller Komponenten die jeder Request benutzt ● Alternativ: Aufzeichnen aller Maschinen (grob) oder Dateien (fein) ● Weist ankommenden Requests ID zu ● Instrumentierung der Middleware ● Vergleichbar: umschreiben der verwendeten Bibliotheken (z. B. Mathe-Bibliothek) ● Komponenten bleiben unberührt ● Abhängig vom benutzen Framework
  • 10.
    Autonomic Computing -Über: Pinpoint 10 Idee (6) – Failure Detection ● Unabhängig von Client Request Tracing ● Aufzeichnen ob ein Request fehlerhaft ist oder nicht ● Interne Failures: ● Werden maskiert bevor sie User erreichen ● Middleware wird instrumentiert ● External Failures ● z.B. Maschinen-Crash, veraltete Links
  • 11.
    Autonomic Computing -Über: Pinpoint 11 Idee (9) – Failure Detection ● Erfolgreicher Request K2 PinpointK3 <R1, ...> <R2, ...> R3PPR Middleware Framework Fault Log vorher Trace Log nachher <R1, ...> <R2, ...> <R3, Success>
  • 12.
    Autonomic Computing -Über: Pinpoint 12 Idee (7) – Failure Detection ● Beispiel interner maskierter Fehler:
  • 13.
    Autonomic Computing -Über: Pinpoint 13 R3 Idee (10) – Failure Detection ● Interner Fehler ohne PP: K3 K4 Middleware Framework K1 K2 Km <<maskierend>>
  • 14.
    Autonomic Computing -Über: Pinpoint 14 R3 Idee (11) – Failure Detection ● Interner Fehler mit PP: K3 K4 Middleware Framework K1 K2 Km <<maskierend>> Trace Log nacher <R1, ...> <R2, ...> <R3, Fail> PP
  • 15.
    Autonomic Computing -Über: Pinpoint 15 Idee (8) – Failure Detection ● Beispiel Externe Fehler: ● Error 404, Server-Timeouts, etc. ● Url: http://www.google.de/ungueltigeUrl
  • 16.
    Autonomic Computing -Über: Pinpoint 16 R Idee (12) – Failure Detection ● Externer Fehler ohne PP: K3 K4 K1 K2 Middleware Framework Server Response mit Fehler
  • 17.
    Autonomic Computing -Über: Pinpoint 17 R Idee (13) – Failure Detection ● Externer Fehler mit PP: K3 K4 K1 K2 Middleware Framework Server Response mit Fehler PP Trace Log nacher <R1, ...> <R2, ...> <R3, Fail>
  • 18.
    Autonomic Computing -Über: Pinpoint 18 Idee (14) – Data Analysis ● Zusammenführen des Trace Logs und Failure Logs. Bsp: ● Berechnen wie oft Komponenten (oder Kombinationen) an Fehlern beteiligt sind ● Im Paper nicht näher erklärt
  • 19.
    Autonomic Computing -Über: Pinpoint 19 Umsetzung (1) ● Prototyp auf J2EE Middleware implementiert ● Client Request Tracing ● Interne Fault Detection ● (Fault Injektion) ● Network Sniffer ● Externe Failure Detection, durch TCP- und HTTP-Check der Responses ● Analyzer ● Benutzt nicht näher erläuterte Algorithmen
  • 20.
    Autonomic Computing -Über: Pinpoint 20 Bewertung (1) ● Experimenteller Aufbau: ● e-commerce service: J2EE PetStore demonstration application ● Fehler ins System injiziert – 4 Typen von Fehlern – Fehler Injektion getrennt von Fault Detector ● 133 Tests: Einzel-Komponenten-Fehler & Fehler durch Interaktion ● Client Emulator: generiert Requests
  • 21.
    Autonomic Computing -Über: Pinpoint 21 Bewertung (2) Anteil gefundener fehlerhafter Paare perfekt
  • 22.
    Autonomic Computing -Über: Pinpoint 22 Bewertung (3) ● Vergleich mit 2 anderen einfachen Analyse- Verfahren ● Dedection & dependency checking ● Pinpoint hat deutlich bessere Ergebnisse ● Performance Verlust durch Pinpoint: ● Unter 10% ● Analyse kann offline gemacht werden ● Tracefiles: 2,5kB pro Request (100 Byte wenn komprimiert)
  • 23.
    Autonomic Computing -Über: Pinpoint 23 Einschränkungen und → Ansätze ● Komponenten die immer zusammenarbeiten nicht unterscheidbar → synthetische Requests ● Request-übergreifende Fehler nicht identifizierbar → Traces auf „shared state“ (Datenbanken) ausweiten ● „krankhafte Eingaben“ (z.B. fehlerhafte Cookies / defekter Browser) nicht von Systemfehlern unterscheidbar → Die Requests selbst aufzeichnen ● „fail-stutter“ fault (Performance-Verlust durch maskierte Fehler) → Timing Informationen nutzen
  • 24.
    Autonomic Computing -Über: Pinpoint 24 Quellen ● Pinpoint: Problem Determination in Large, Dynamic Internet Services (Chen, Mike et al.)
  • 25.
    Autonomic Computing -Über: Pinpoint 25 Diskussion, Fragen, Kommentare