autonomic computing - diagnosis - pinpoint summary

25
Autonomic Computing Seminar (SS 2010) Diagnosis Über: Pinpoint: Problem Determination in Large, Dynamic Internet Services (Chen, Mike et al.) Oliver Stadie 7. Juni 2010

Upload: oliver-stadie

Post on 21-Feb-2017

194 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic ComputingSeminar (SS 2010)

Diagnosis

Über: Pinpoint: Problem Determination in Large, Dynamic Internet Services (Chen, Mike et al.)

Oliver Stadie

7. Juni 2010

Page 2: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 2

Gliederung● Problem & Ziel● Idee● Umsetzung● Bewertung● Einschränkungen & Ansätze

Page 3: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 4: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 5: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 6: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 6

Idee (2)

1.Client Request Traces

2.Failure Detection (extern & intern)

3.Data Clustering Analysis

Page 7: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 8: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 9: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 10: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 11: Autonomic Computing - Diagnosis - Pinpoint Summary

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>

Page 12: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 12

Idee (7) – Failure Detection● Beispiel interner maskierter Fehler:

Page 13: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 13

R3

Idee (10) – Failure Detection● Interner Fehler ohne PP:

K3 K4

Middleware Framework

K1 K2

Km<<maskierend>>

Page 14: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 15: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 15

Idee (8) – Failure Detection● Beispiel Externe Fehler:

● Error 404, Server-Timeouts, etc.● Url: http://www.google.de/ungueltigeUrl

Page 16: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 16

R

Idee (12) – Failure Detection● Externer Fehler ohne PP:

K3 K4

K1 K2

Middleware Framework

Server

Response mit Fehler

Page 17: Autonomic Computing - Diagnosis - Pinpoint Summary

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>

Page 18: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 19: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 20: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 21: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 21

Bewertung (2)

Anteilgefundener fehlerhafter Paare

perfekt

Page 22: Autonomic Computing - Diagnosis - Pinpoint Summary

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)

Page 23: Autonomic Computing - Diagnosis - Pinpoint Summary

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

Page 24: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 24

Quellen● Pinpoint: Problem Determination in Large,

Dynamic Internet Services (Chen, Mike et al.)

Page 25: Autonomic Computing - Diagnosis - Pinpoint Summary

Autonomic Computing - Über: Pinpoint 25

Diskussion, Fragen, Kommentare