11.performance meetup lasttests

66
11. PerformanceMeetup 28. Mai 2013 [email protected] Effektiver Einsatz von Lasttests zur Optimierung der Skalierbarkeit von Web-Sites

description

Präsentation zum Thema Lasttests auf dem 11. Performance Meetup in Hamburg

Transcript of 11.performance meetup lasttests

Page 1: 11.performance meetup lasttests

11. PerformanceMeetup

28. Mai 2013

[email protected]

Effektiver Einsatz von Lasttests zur

Optimierung der Skalierbarkeit von

Web-Sites

Page 2: 11.performance meetup lasttests

© iteratec

2

Agenda

Erschlagen vom eigenen Erfolg

Beispiele aus der jüngeren Vergangenheit

Auch die Cloud ist kein Allheilmittel

Fahrplan zu entspannten Live-Gängen

Erfahrungen und Ergebnisse in der Praxis

Page 3: 11.performance meetup lasttests

© iteratec

3

Vom eigenen Erfolg erschlagen

Telekom Mobilfunkseite durch iPhone5 Andrang

Quelle: http://www.heise.de/mac-and-i/meldung/iPhone-Vorbestellung-ueberlastet-Telekom-1708303.html

Page 4: 11.performance meetup lasttests

© iteratec

4

Vom eigenen Erfolg erschlagen

DaWanda : zunehmende Ausfälle durch steigende Nutzerzahlen

Quelle: http://de.dawanda.com/topic/2169/10130642

Page 6: 11.performance meetup lasttests

© iteratec

6

Agenda

Erschlagen vom eigenen Erfolg

Beispiele aus der jüngeren Vergangenheit

Auch die Cloud ist kein Allheilmittel

Fahrplan zu entspannten Live-Gängen

Erfahrungen und Ergebnisse in der Praxis

Page 7: 11.performance meetup lasttests

© iteratec

7

Erschlagen vom eigenen Erfolg

Grundidee:

Einsatz von

Standardkomponenten zur

Lastverteilung (Load-Balancer)

+ horizontale Skalierbarkeit der

Anwendungskomponenten

+ dynamisches Buchen

zusätzlicher Ressourcen in der

Cloud

= Lastprobleme einfach gelöst

Wozu brauche ich Lasttests, ich habe doch die Cloud ?

Internet

Firewall

LoadBalancer

Web-

Server

Web-

Server

App-

Server

App-

Server

LoadBalancer

App-

Server

Datenbank

Auth

(LDAP)

Cache

Page 8: 11.performance meetup lasttests

© iteratec

8

Erschlagen vom eigenen Erfolg

Theory meets Reality

typische Bottlenecks:

alles was zentral ist

RZ-Anbindung,

Firewall,

zentraler Load-Balancer,

zentraler Cache,

zentrale Datenbank,

zentraler Authentication

Server (LDAP)

typisches Problem:

Implementierungsfehler

hebeln Skalierbarkeit aus

Wozu brauche ich Lasttests, ich habe doch die Cloud ?

Internet

Firewall

LoadBalancer

Web-

Server

Web-

Server

App-

Server

App-

Server

LoadBalancer

App-

Server

Datenbank

Auth

(LDAP)

Cache

Page 9: 11.performance meetup lasttests

© iteratec

9

Agenda

Erschlagen vom eigenen Erfolg

Fahrplan zu entspannten Live-Gängen

Definition von Lastanforderungen

Lasttests zur Überprüfung der Lastanforderungen

Auswahl der passenden Tools

Auswertung von Lasttests

Sizing der Systeme auf Basis von Lasttestergebnissen

Erfahrungen und Ergebnisse in der Praxis

Page 10: 11.performance meetup lasttests

© iteratec

10

Fachliche

Anforderung

Technische

Entsprechung

Betrachtungs-

Unterschied

Anzahl Besucher #User unangemeldete Besucher

Visits pro Monat #Session/h

Betrachtungs-Zeitraum,

Session-Timeout,

Bot-Session

PageView bzw.

PageImpression pro

Tag

Hit/s

Betrachtungs-Zeitraum,

statische Ressourcen,

AJAX-Requests,

Tracking-Requests,

API-Calls

Definition von Lastanforderungen

Typische Kennzahlen

Page 11: 11.performance meetup lasttests

© iteratec

11

Generelle Empfehlung: Ausrichtung an den Business-

Anforderungen

Business-Kennzahlen als Basis für die Definition der

Lastanforderungen verwenden

Aber: Abweichungen zur technischen Sicht berücksichtigen

Die Server müssen die technisch ankommende Last verkraften

Richtigen Betrachtungszeitraum wählen

technisch motivierte Lastkomponenten berücksichtigen

Bot-Requests

Statische Ressourcen

AJAX-Calls

Tracking-Requests

Definition von Lastanforderungen

Woran ausrichten

Page 12: 11.performance meetup lasttests

© iteratec

12

Definition von Lastanforderungen

Betrachtungs-Zeitraum : Typische Tageskurve

Page 13: 11.performance meetup lasttests

© iteratec

13

Definition von Lastanforderungen

Betrachtungs-Zeitraum : Monatsverlauf

relevante Kennzahl

für Businessplan

maßgebliches Ziel

für Lasttest

Page 14: 11.performance meetup lasttests

© iteratec

14

Statische Ressourcen

bis zu 100 Bilder, Javascript- und CSS-Dateien pro Seitenaufruf

Definition von Lastanforderungen

Übersehene Anforderungsbestandteile : Statische Ressourcen

MIME Type Requests▼

image 80

js 16

html 12

css 10

other 6

text 2

flash 0

Lösungen

auf CDN auslagern

auf eigene Cookie-less Domain auslagern

im Lasttest mit berücksichtigen (Last mit generieren)

Page 15: 11.performance meetup lasttests

© iteratec

15

Woher kommen zusätzliche Requests?

Google

Microsoft Bing

diverse andere Suchmaschinen

automatisiertes Verfügbarkeits-Monitoring

automatisiertes Performance-Monitoring

Benchmarking der Wettbewerber

Verlinkungen in sozialen Netzwerken

...

Bots verursachen

50% aller Sessions

10% aller Seitenaufrufe

1-click Sessions (Bot setzt keinen Cookie)

Definition von Lastanforderungen

Übersehene Anforderungsbestandteile : Bot-Requests

Page 16: 11.performance meetup lasttests

© iteratec

16

Definition von Lastanforderungen

Abgestuftes Vorgehen mit mehreren Meilensteinen

Page 17: 11.performance meetup lasttests

© iteratec

17

Woher kommen konkrete Anforderungen ?

1. Ablösung Altsystem: Zahlen zur Nutzung des Altsystem

Web-Tracking (fachliche Kennzahlen) !

Monitoring (technische Kennzahlen)

Definition von Lastanforderungen

Quellen für Anforderungen

Page 18: 11.performance meetup lasttests

© iteratec

18

Seitenverteilung aus dem Web-Tracking

Definition von Lastanforderungen

Quellen für Anforderungen

Page 19: 11.performance meetup lasttests

© iteratec

19

Woher kommen konkrete Anforderungen ?

1. Ablösung Altsystem: Zahlen zur Nutzung des Altsystem

Web-Tracking (fachliche Kennzahlen) !

Monitoring (technische Kennzahlen)

2. neue Anwendungen:

Business Case

Benchmarking (Wettbewerber)

3. Interviews (Stakeholder: Fachabteilung, Betrieb, ...)

haben oft nur allgemeine Ziele und wenig konkrete Vorstellungen

Definition von Lastanforderungen

Quellen für Anforderungen

Page 20: 11.performance meetup lasttests

© iteratec

20

Agenda

Erschlagen vom eigenen Erfolg

Fahrplan zu entspannten Live-Gängen

Definition von Lastanforderungen

Lasttests zur Überprüfung der Lastanforderungen

Auswahl der passenden Tools

Auswertung von Lasttests

Sizing der Systeme auf Basis von Lasttestergebnissen

Erfahrungen und Ergebnisse in der Praxis

Page 21: 11.performance meetup lasttests

© iteratec

21

1. Testarten

Performance-Messung: Wie schnell ist das System ohne Last?

Lasttest: Wie verhält sich das System unter Last?

Stresstest: Wie kommt das System mit Überlastsituationen klar?

2. Umfang

Komponenten-Lasttest: Lasttest einzelner Komponenten

System-Lasttest: Lasttest des Gesamtsystems

3. Zielsetzungen

Entwicklungs-Lasttest: Untersuchung des Lastverhaltens,

Identifikation von Engpässen

Abnahme-Lasttest: Überprüfung der Zielerreichung bzgl.

Lastanforderungen

Lasttests zur Überprüfung der Lastanforderungen

Begriffsklärung

Page 22: 11.performance meetup lasttests

© iteratec

22

1. Testarten

Performance-Messung: Wie schnell ist das System ohne Last?

Lasttest: Wie verhält sich das System unter Last?

Stresstest: Wie kommt das System mit Überlastsituationen klar?

2. Umfang

Komponenten-Lasttest: Lasttest einzelner Komponenten

System-Lasttest: Lasttest des Gesamtsystems

3. Zielsetzungen

Entwicklungs-Lasttest: Untersuchung des Lastverhaltens,

Identifikation von Engpässen

Abnahme-Lasttest: Überprüfung der Zielerreichung bzgl.

Lastanforderungen

Lasttests zur Überprüfung der Lastanforderungen

Begriffsklärung

Page 23: 11.performance meetup lasttests

© iteratec

23

Lasttests zur Überprüfung der Lastanforderungen

Typische Anforderung : Lineare Skalierbarkeit

Anzahl User

Page 24: 11.performance meetup lasttests

© iteratec

24

Messung mit linear steigender Last

Lasttests zur Überprüfung der Lastanforderungen

Beispiel: Durchsatzmessung in Abhängigkeit von der Last

Page 25: 11.performance meetup lasttests

© iteratec

25

Messung mit linear steigender Last

Lasttests zur Überprüfung der Lastanforderungen

Beispiel: Durchsatzmessung in Abhängigkeit von der Last

Lastkurve bei idealem

Systemverhalten

(lineare Skalierbarkeit)

Page 26: 11.performance meetup lasttests

© iteratec

26

Messung mit linear steigender Last

grün: linearer Bereich, Antwortzeit ist konstant,

auch bei steigender Last

gelb: nichtlinearer Bereich, Antwortzeiten beginnen zu steigen,

orange: Sättigung, Antwortzeiten steigen synchron zur Last

rot: Überlast, Antwortzeiten steigen stärker als die Last, der

Durchsatz verringert sich mit weiterer Erhöhung der Last,

Lasttests zur Überprüfung der Lastanforderungen

Beispiel: Durchsatzmessung in Abhängigkeit von der Last

Lastkurve bei idealem

Systemverhalten

(lineare Skalierbarkeit)

Page 27: 11.performance meetup lasttests

© iteratec

27

Realistische Lasttests

möglichst viele der Requests, die in der Realität auftauchen

alle relevanten UseCases

statische Ressourcen, AJAX-Calls, Tracking-Requests, …

Mix der Requests (Häufigkeitsverteilung)

Sessionlänge

Abfolge der Requests

Think-Time

Datenvielfalt (Kategorien, Artikel, Suchbegriffe, Kunden, ...)

Lasttests zur Überprüfung der Lastanforderungen

Realistische Lasttests

modellierter Lastanteil 90% 95% 98% 99%

abzubildende UseCases 5-10 10-20 25-50 50-100

Page 28: 11.performance meetup lasttests

© iteratec

28

Zufällige Lasttests

Deterministische Szenarien haben weniger Aussagekraft

testen nur ein konkretes Szenario und verbergen Fehler

finden Fehler, die in der Realität so nicht vorkommen werden

zufällige Testdaten, zufällige Session-Längen, zufällige Testschritt-

Reihenfolgen, zufällige Wartezeiten (Think Time), zufällige

Warenkorbgrößen

Praxis

Gewichtete Zufallsauswahl auf Basis relativer Häufigkeiten (CSV)

Auswahl Suchbegriff aus den Top-3000 Suchbegriffen der Kunden

Zufälliger Shuffle der Testschritt-Reihenfolge

Think-Time zwischen Testschritten

Lasttests zur Überprüfung der Lastanforderungen

Zufällige Lasttests

Page 29: 11.performance meetup lasttests

© iteratec

29

Regelmäßige Lasttests

Lastziele werden nicht auf Anhieb erreicht

neue Fehler machen bereits erreichtes zunichte

Praxis

Automatisierte Komponenten-Lasttest in der Build-Pipeline

Automatisierte tgl. System-Lasttests + mehrfach individuell

gestartete Lasttests am Tage

Automatisierte Abnahme-Lasttest in der Release-Pipeline

Lasttests zur Überprüfung der Lastanforderungen

Regelmäßige Lasttests

Page 30: 11.performance meetup lasttests

© iteratec

30

Lasttests zur Überprüfung der Lastanforderungen

Einordnung der Lasttests in die Build- und Release-Pipeline

Page 31: 11.performance meetup lasttests

© iteratec

31

Perfor-mance Lasttest

Robust-heit

System-LPT

Perfor-mance Lasttest

Robust-heit

Abnahme-LPT

Lasttests zur Überprüfung der Lastanforderungen

Einordnung der Lasttests in die Build- und Release-Pipeline

Perfor-mance Lasttest

Komponenten-LPT

Page 32: 11.performance meetup lasttests

© iteratec

32

Agenda

Erschlagen vom eigenen Erfolg

Fahrplan zu entspannten Live-Gängen

Definition von Lastanforderungen

Lasttests zur Überprüfung der Lastanforderungen

Auswahl der passenden Tools

Auswertung von Lasttests

Sizing der Systeme auf Basis von Lasttestergebnissen

Erfahrungen und Ergebnisse in der Praxis

Page 33: 11.performance meetup lasttests

© iteratec

33

Toolklassen

synthetische http-Request-Last (ab, JMeter, Silk Performer)

capture replay von realem Traffic (JMeter, Silk Performer,

LoadRunner)

simulierte Browser (XLT)

ferngesteuerte Browser (Soke)

ferngesteuerte Rechner (viele WinRunner)

gesteuerte Menschengruppe

TradeOff

Hardware-Aufwand Pflege-Aufwand / Realitätstreue

Auswahl der passenden Tools

Tool-Klassen

Page 34: 11.performance meetup lasttests

© iteratec

34

Auswahl der passenden Tools

HW-Bedarf

Tool-Kategorie echte

User

echte

Browser

simulierte

Browser

HTTP-Traffic einfache

HTTP-

Last synthetisch capture /

replay

Realitätstreue max sehr

hoch

hoch mittel max gering

Pflegeaufwand min gering gering hoch mittel mittel

HW-Bedarf (für

Ziellast)

2-5.000

PC

1-2.000

VM

50-100

VM

10-20 VM 3-5

VM

open source Tools - •Soke •Soke •JMeter

•Grinder

•Gatling

•Apache

Bench

•Siege

kommerzielle Tools - •XLT •LoadRunner

•SilkPerformer

Page 35: 11.performance meetup lasttests

© iteratec

35

Auswahl der passenden Tools

HW-Bedarf

Tool-Kategorie echte

User

echte

Browser

simulierte

Browser

HTTP-Traffic einfache

HTTP-

Last synthetisch capture /

replay

Realitätstreue max sehr

hoch

hoch mittel max gering

Pflegeaufwand min gering gering hoch mittel mittel

HW-Bedarf (für

Ziellast)

2-5.000

PC

1-2.000

VM

50-100

VM

10-20 VM 3-5

VM

open source Tools - •Soke •Soke •JMeter

•Grinder

•Gatling

•Apache

Bench

•Siege

kommerzielle Tools - •XLT •LoadRunner

•SilkPerformer

Page 36: 11.performance meetup lasttests

© iteratec

36

Agenda

Erschlagen vom eigenen Erfolg

Fahrplan zu entspannten Live-Gängen

Definition von Lastanforderungen

Lasttests zur Überprüfung der Lastanforderungen

Auswahl der passenden Tools

Auswertung von Lasttests

Sizing der Systeme auf Basis von Lasttestergebnissen

Erfahrungen und Ergebnisse in der Praxis

Page 37: 11.performance meetup lasttests

© iteratec

37

Auswertung von Lasttests

Überblick über die Gesamtlandschaft

Prelive-cluster

50 Lastgeneratoren (8 core, 8GB RAM)

jenkins-lpt

xltmaster-dev xltmaster-qa-166 xltmaster-qa-85

LoadBalancer

PA-Proxy PA-Proxy

Au

th

Ord

er

P1

3N

Pro

du

ct

SA

N

LPT

LoadBalancer

PA-Proxy PA-Proxy

Au

th

Ord

er

P1

3N

Pro

du

ct

SA

N

Live

LoadBalancer

PA-Proxy PA-Proxy

Au

th

Ord

er

P1

3N

Pro

du

ct

SA

N

Graphite Splunk

Logging KPI

Page 38: 11.performance meetup lasttests

© iteratec

38

Auswertung von Lasttests

Auswertungen

Prelive-cluster

50 Lastgeneratoren (8 core, 8GB RAM)

jenkins-lpt

xltmaster-dev xltmaster-qa-166 xltmaster-qa-85

LoadBalancer

PA-Proxy PA-Proxy

Au

th

Ord

er

P1

3N

Pro

du

ct

SA

N

LPT

LoadBalancer

PA-Proxy PA-Proxy

Au

th

Ord

er

P1

3N

Pro

du

ct

SA

N

Live

LoadBalancer

PA-Proxy PA-Proxy

Au

th

Ord

er

P1

3N

Pro

du

ct

SA

N

Graphite Splunk

Logging KPI

1.XLT-Report

2.Splunk-Report 3.Graphite-Graph

1.Antwortzeiten

2.(Profiling) Log 3.Ressourcen-

Monitoring

Page 39: 11.performance meetup lasttests

© iteratec

39

Durchsatz (Hits/s)

Durchsatz User (Laufzeitprobleme ?)

Aktionen

Fehleranteil

Seitenladezeiten

Durchsatz / Aktion

Requests (Antwortzeiten, zeitlicher Verlauf)

Custom Timer (Auftreten von speziellen Fehlern,

Detaillaufzeiten)

External Data (Externe Laufzeiten)

Error and Event (Fehlerbilder, Fehlerursachen)

Agents (Agent-Auslastung, Validität Messergebnisse)

Auswertung von Lasttests

1 XLT-Report

Page 40: 11.performance meetup lasttests

© iteratec

40

Verlängerung der Laufzeiten lässt Anzahl simulierter User

überproportional steigen

Auswertung von Lasttests

1 XLT-Report : Typische Fehlerbilder

Page 41: 11.performance meetup lasttests

© iteratec

41

Stau auf der Datenautobahn

Auswertung von Lasttests

1 XLT-Report : Typische Fehlerbilder

Erwartete Kurve

Page 42: 11.performance meetup lasttests

© iteratec

42

Einbruch nach Erreichen einer Lastgrenze = Überlast

Auswertung von Lasttests

1 XLT-Report : Typische Fehlerbilder

Page 43: 11.performance meetup lasttests

© iteratec

43

zunehmende Anzahl Timeouts lässt durchschnittliche Laufzeit

kontinuierlich steigen

Auswertung von Lasttests

1 XLT-Report : Typische Fehlerbilder

Page 44: 11.performance meetup lasttests

© iteratec

44

Live Demo

Auswertung von Lasttests

1. XLT-Report

Page 45: 11.performance meetup lasttests

© iteratec

45

Ziel: Fehlerbild in der Anwendung ermitteln

Whitebox-Sicht

Basis: Performance-Logs der Anwendung

Log-Dateien aller beteiligten Maschinen werden durch Splunk

eingesammelt und zentral indexiert und bereitgestellt

Konsolidierung über Maschinengrenzen hinweg

Konsolidierung über LogFile-Typen hinweg

Dynamische AdHoc Queries möglich

Explorative Untersuchung der Performance-Kennzahlen

Detaillierung bis hin zum einzelnen Request

Herausforderung:

Zielsystem besteht aus einem Dutzend separaten Teilsystemen

Welches Teilsystem ist für Performanceprobleme verantwortlich ?

Auswertung von Lasttests

2 Splunk-Report

Page 46: 11.performance meetup lasttests

© iteratec

46

RESTful Architektur 1

Shared Nothing als Architekturprinzip 2

Vertikaler Systemschnitt 3

Zentrale Verantwort-lichkeit für Daten 4

Buy when non core A

Gemeinsame Basistechnologien B

Macro-Architektur

Micro-Architektur

Shop

office

Shop

pages

Search

& N

avigat

ion

Produ

ct

Perso

nalisa

tion

Order

User

Track

ing

Auth

After

Sales

ELCH

Frontend-Integration

Daten-Integration

Vertikale Systemarchitektur des Zielsystems

Funktionale Gliederung

Page 47: 11.performance meetup lasttests

© iteratec

47

Shop

office

Shop

pages

Search

& N

avigat

ion (S

AN)

Produ

ct

Perso

nalisa

tion

(P13N

)

Order

User

Track

ing

Auth

After

Sales

ELCH

Frontend-Integration

Daten-Integration

Vertikale Systemarchitektur des Zielsystems

Seitenkomposition Der Seitenrahmen und der Hauptinhalt kommt aus dem product-

System Der Miniwarenkorb liefert das order-System Die Navigation wird vom san-System bereitgestellt Die Produktempfehlungen stammen aus dem p13n-System

Page 48: 11.performance meetup lasttests

© iteratec

48

Dashboard

Client Backend Request Laufzeiten

Aufteilung nach PageTag

Welches System ist für Laufzeitprobleme verantwortlich ?

Auswertung von Lasttests

2 Splunk-Report

Page 49: 11.performance meetup lasttests

© iteratec

49

Live-Demo

Auswertung von Lasttests

2 Splunk-Report

Page 50: 11.performance meetup lasttests

© iteratec

50

Rubriken für Ressourcenauslastung

Physikalische Systemressourcen

CPU

Platten-IO

RAM

Netzwerk-IO

Logische SW-Ressourcen

Plattform (Tomcat Threadpool, Java GC)

Anwendung (Pools, Queues, Synchronisation nebenläufiger Threads)

Verlinkung Jenkins-Job Graphoo Dashboards

Details zur Ressourcenauslastung aller Maschinen

Übersichts-Dashboard zu Performance- und Lasttests

Graphoo = eigene Rails-Anwendung

dynamische Generierung der Dashboards mit Graphite-Grafiken

Basis : aktuelles Inventory der Umgebung + Dashboard-Config

Auswertung von Lasttests

3. Graphite-Graphen

Page 51: 11.performance meetup lasttests

© iteratec

51

Graphoo Dashboard mit Graphite-Grafiken

Auswertung von Lasttests

3. Graphite-Graphen

Page 52: 11.performance meetup lasttests

© iteratec

52

Live-Demo

Auswertung von Lasttests

3. Graphite-Graphen

Page 53: 11.performance meetup lasttests

© iteratec

53

Agenda

Erschlagen vom eigenen Erfolg

Fahrplan zu entspannten Live-Gängen

Definition von Lastanforderungen

Lasttests zur Überprüfung der Lastanforderungen

Auswahl der passenden Tools

Auswertung von Lasttests

Sizing der Systeme auf Basis von Lasttestergebnissen

Erfahrungen und Ergebnisse in der Praxis

Page 54: 11.performance meetup lasttests

© iteratec

54

1. Messung der Spitzenlast im Lasttest

2. Messung der Ressourcenauslastung während des Lasttests

3. Messung der zugeordneten Ressourcen in der Lastumgebung

4. Vorgabe der Ziellast

5. Vorgabe der Ressourcenauslastung bei Ziellast

Lastreserve

Ausfallreserve

6. Vorgaben zum Server-/VM-Zuschnitt

minimale Anzahl Server/VM‘s pro Komponente

Ressourcen pro Server/VM

7. Extrapolation der benötigten Ressourcen in der Zielumgebung

Sizing der Systeme auf Basis von Lasttestergebnissen

Vorgehen

)(

)(

)(

)(

Re

Re**)()( ReRe

live

Test

Test

live

radslastungsgssourcenau

radslastungsgssourcenau

Last

ZiellastngTestumgebulive ssourcendarfssourcenbe

Page 55: 11.performance meetup lasttests

© iteratec

55

Vorgabe Ressourcenauslastung bei Ziellast

Lineare Skalierbarkeit auf einer Maschine nur bis max. 50-70%

Ressourcenauslastung erreichbar

Ausfallsicherheitsreserve 50%

Ziel-Wert: 50% * 60% = 30%

Vorgaben zum Server-/VM-Zuschnitt

Ausfallsicherheit:

AppServer: mindestens zwei Server pro Aufgabe

MongoDB Replica-Set: mindestens 3 DBs im Replica-Verbund

Ressourcen pro Server

mindestens 2 core pro Server/VM (System + Applikation)

nie swapping zulassen ausreichend memory

minimale disk size für sicheren Betrieb (logging, backup/restore)

Sizing der Systeme auf Basis von Lasttestergebnissen

Grundannahmen

Page 56: 11.performance meetup lasttests

© iteratec

56

Agenda

Erschlagen vom eigenen Erfolg

Fahrplan zu entspannten Live-Gängen

Erfahrungen und Ergebnisse in der Praxis

Page 57: 11.performance meetup lasttests

© iteratec

57

Kontinuierliche Lasttests seit 12 Monaten

6 Ziel-Umgebungen, davon 3 für Lasttests genutzt

Je Umgebung zwischen 50 und 150 VM

50 VM‘s als Lastgeneratoren

5-10 Lasttestläufe pro Tag

5-10 GByte Ergebnisdaten pro Lasttestlauf

ca. 100 Metriken pro VM pro Minute

ca. 100 GByte tägliches Log-Volumen aus Lasttests

3 große Meilensteine erfolgreich bewältigt

Mitarbeitershop

Closed Alpha

Live Beta

Erfahrungen und Ergebnisse in der Praxis

Zahlen

Page 58: 11.performance meetup lasttests

© iteratec

58

Ohne smarte Ziele geht es nicht.

S = Spezifisch

M = Messbar

A = Akzeptiert

R = Realistisch

T = Terminiert

Erfahrungen und Ergebnisse in der Praxis

Lessons learned

Page 59: 11.performance meetup lasttests

© iteratec

59

Ohne smarte Ziele geht es nicht.

S = Spezifisch

M = Messbar

A = Akzeptiert

R = Realistisch

T = Terminiert

Zielerreichung laufend kommunizieren und visualisieren

Dashboard

Erfahrungen und Ergebnisse in der Praxis

Lessons learned

Page 60: 11.performance meetup lasttests

© iteratec

60

Arbeitsstand für alle sichtbar visualisieren: Dashboard

Erfahrungen und Ergebnisse in der Praxis

Dashboard

Page 61: 11.performance meetup lasttests

© iteratec

61

Ohne smarte Ziele geht es nicht.

S = Spezifisch

M = Messbar

A = Akzeptiert

R = Realistisch

T = Terminiert

Zielerreichung laufend kommunizieren und visualisieren

Dashboard

Die Probleme treten meist nicht dort auf, wo man sie vermutet.

Lasttest so dicht wie möglich an der Wirklichkeit gestalten

BlackBox Test

Erfahrungen und Ergebnisse in der Praxis

Lessons learned

Page 62: 11.performance meetup lasttests

© iteratec

62

err

eic

hte

r D

urc

hsatz

Projektlaufzeit

Erfahrungen und Ergebnisse in der Praxis

Beispiele für aufgedeckte Skalierbarkeitsprobleme

Problem: Default-Konfiguration des nginx

beschränkt CPU-Nutzung auf einen Core

Lösung: Anpassung nginx-Konfiguration

Page 63: 11.performance meetup lasttests

© iteratec

63

err

eic

hte

r D

urc

hsatz

Projektlaufzeit

Erfahrungen und Ergebnisse in der Praxis

Beispiele für aufgedeckte Skalierbarkeitsprobleme

Problem: Auslieferung statischer

Ressourcen setzt App-Server unter Last

Lösung: Einführung Asset-Server für

statischen Content

Page 64: 11.performance meetup lasttests

© iteratec

64

err

eic

hte

r D

urc

hsatz

Projektlaufzeit

Erfahrungen und Ergebnisse in der Praxis

Beispiele für aufgedeckte Skalierbarkeitsprobleme

Problem: zu wenig RAM führt unter Last

zum Swapping der Such-Server

Lösung: mehr RAM

Page 65: 11.performance meetup lasttests

© iteratec

67

Ziele müssen allgemein akzeptiert werden

SMART

Zielerreichung laufend kommunizieren

Dashboard

Probleme meist nicht dort, wo man sie vermutet

Wirklichkeitsnähe

Entspannte Live-Gänge in Sachen Performance- und Lastverhalten

sind keine Utopie

Erfahrungen und Ergebnisse in der Praxis

Konsequenzen für die Gestaltung der Lasttests

Page 66: 11.performance meetup lasttests

© iteratec

68

Eure Fragen ?

Kontakt: [email protected]

Iteratec GmbH