Performance evaluation Flashcards
Quali sono gli approcci di performance evaluation?
Quali sono gli approcci di comparison?
Quali sono i nostri parametri? nel grafico dove vogliamo rimanere (verde, giallo, rosso)? Quali sono le problematiche del futuro?
Abbiamo:
- Sistemi reali (bench marking)
- Modelli fisici: con prototipi su piccola scala, fare scale up del risultato
- Modelli matematici: equazioni che imitano il comportamento di un sistema, gestibili, what if scenari
- Simulatori: software che implementano il comportamento di un sistema
______
- Sistema reali vs modello: facile da fare e meno costoso/pericoloso
- fisico vs matematico: facile da realizzare, poco costoso e facile da modificare, i modelli matematici devono essere accurati
- soluzioni analitiche vs simulazione: Analitico è più precisio la sim è più flessibile
____
response time
throuput: quante richieste soddisfatte in unità di tempo
error rate
Vogliamo rimanere prossimi alla fine della zona verde.
Il workload può aumentare (rischio di overload), errori possono saltare fuori, dobbiamo fare del buon capacity planning ed è un compito complesso e costoso potenzialmente.
Quali sono le tipologie di Testing?
Functional: se si comporta come aspettato (Unit testing, vediamo i risultati attesi e se ci sono bugs)
Activity: come funziona in condizioni normali, al di fuori dello unit testing, fatto dallo user
Endurance: sistema busy, per what if scenarios per capacity planning
Stress: sistema al limite, creiamo failures, cerchiamo i bottleneck e se c’è presenza di trashing
Benchmarking: sistema sotto load standardizzati per comparare con altri scenari etc…
Cosa sono i benchmark?
Quali sono i tipi?
Quali sono i possibili abusi?
Quali sono gli standard?
Abbiamo i toy benchmark per scenari circoscritti facili da usare ma non molto rappresentativi, come ad esempio, quick sort, problema delle otto regine etc… (e sti cazzi?)
Real benchmark: usiamo software dedicati per testare le performance del sistema (es. ray tracing, compiling kernel linux) ha problemi di porting e di ottimizzazione (es. driver gpu assenti e viene usata la cpu) se usiamo più software come li pesiamo.
Benchmark Sintetici: prendono operazioni comuni dei software, tipicamente limitato dall’architettura HW. Si focalizzano su un aspetto, es. dhrystone per operazini integer e whetstone per floating point
Benchmark reali
Considero le applicazioni oltre agli algoritmi (non fa solo quicksorts) ma lavora su problemi reali (no compiling kernel linuz)
_____
Alcuni casi abbiamo architettura HW ottimizzati per il benchmarking. es. PowerPC ha un istruzione hw per operazioni multiply and sum dei vettori, per il calcolo matriciale fatto da Whetstone.
In alcuni casi abbiamo l’ottimizzazione dei compiler, i benchmark sono in formato binario (pre-compiled).
I bench homebrew non sono molto affidabili che funziona su diverse feature in certi scenari. Se vengono mostrati solo alcuni subset di benchmarks è sospetto.
Certe curve vengono croppate dove magari il mio benchmark comincia a avere un tendenza esponenziale su carichi alti.
___
Ci sono delle organizzazioni che modellano e standarizzano i benchmark come SPEC e TPC.
SPEC Web: benchmark che cerca di creare workload per sito web generale, usa un workload rapresentativo basato su logs. Definisce un controller, tanti client e un server
SPEC-cloud: per IaaS nel contesto di scalabilità ed elasticità.
Quali sono i contributi del response time?
Che cos’è il network model?
Node model?
Complex model?
Network, front end, middle tier node, back end node
Ogni nodo: CPU time + storage time + communication LAN
(rete, disco e CPU)
____
Abbiamo pacchetti in arrivo una queue, server e output dei pacchetti processati
___
Queue -> CPU con core in parallelo -> storage -> LAN -> output
___
Front end (parallelo) -> Middle tier (parallelo) -> back end (parallelo) -> Network (bottleneck)
ognuno ha una coda
Formalizzazione
nodo con CPU,LAN e storage
1 server
Workload:
Si service time medio alla risorsi i-esima (1/mu)
Wi tempo di attesa i-esima fila
Lambda i arrival rate alla fila i-esima
____
Metriche di performance
Ri response time avg i queue
Xi troughput queue i
X0 overall system troughput
___
Number of jobs at a resource
Niw richiest in waiting per la risorsa i
Nis numero di richiesto servite
Ni numero di richieste alla risorsa i
legge di little
Ho un periodo di osservazione tau
Bi tempo di busy durante l’intervallo
Ci richieste completate in periodo tau
Utilizzazione Ui=Bi/tau
____
Xi = Ci/τ
Ui = Bi Xi/Ci = (Bi/Ci) * Xi = Si * Xi
Utilizzazione con m server
Ui = (Xi/m) Si
___
Legge di Little
Abbiamo una black box
N richieste dentro
X rate di outgoing request
R time spent within the system
N=X*R
se lo applichiamo al nostro problema
Niw = Xi * Wi
Nis = Xi * Si
Ni = Xi * Ri
modelli open loop vs closed loop
Open loop: potenzialmente utenti infiniti, richieste entrano ed escono dal sistema
Closed loop: utenti finiti. le richieste ciclicano e think time degli users
con la legge di Little, closed loop formulation (pop M, think time Z)
R+Z = M/X
processi stocastici
modelli analitici
E’ un processo con un comportamento aleatorio, descritto in termini probabilistici.
___
nel modello analitico abbiamo i job che arrivano e quelli processati che sono entrambi stocastici.
arrival/process/servers/queuelen
M -> poisson
G -> generic
D -> Deterministic
Ek -> Erlang (multi stadio con tanti server in cascata)
___
Processo di poisson possono essere descritti come una catena di Markov, arrival rate lambda. leave rate mu ro=lambda/mu
Probabilità di essere in uno stato Pk=(1-ρ)ρK
Mano a mano che arrivano oggetti passo a uno stato, e torno indietro ogni volta che lo servo.
Tresp = 1/(μ - λ)
___
Usiamo la formula di Pollaczek-Kichin (M/G/1) per sapere il tempo di attesa in coda e quello di risposta.
coefficiente di variazione Cv^2
Allen-Cuneen approximation (G/G/N systems)
Come classifichiamo le failures?
Quali sono le metriche? Quali sono le classi di avalailability?
Permanent
Recoverable
Transient: sparisce dopo un po’
Intermittent
Funzionale: Si guasta una funzione che funziona come non dovrebbe
Di performance: SLA Violations, sistema funziona ma non nelle prestazioni desiderate
Totale: si canna tutto, anche se si schianta una componente critica
Paraziale: solo un certo sottosistema
____
MTTF
MTTR
MTBF (Meantime Between Faults) = MTTF + MTTR
Availability = MTTF/MTBF
reliability tau= prob che un sistema sia available su un certo periodo, se allunghiamo il periodio convergiamo alla availability
___
1 unmanaged (36 giorni di unavailable)
2 managed (3-6 giorni di unavailable)
3 well managed (526 minuti di unavailable)
4 fault tolerant (53 minuti di unavailable)
5 highly available (0.53minuti di unavailable)
6 very ha 0.053minuti di unavailable)
7 ultra available 0.0053minuti di unavailable)
In cosa consiste gestire una failure?
Come interagiscono i sistemi?
Teorema del CAP?
E’ un doppio compito:
Detection: devo rilevarlo subito (prima dei clienti)
- preventiva: facciamo dei test preventivi
- concorrente
Recovery: ripristinare lo stato di funzionamento
- error handling(dipendeMTTR): rollback allo stato corretto, rollforward(salto allo stato finale), compensazione con sistemi idle
- fault handling: diagnosis (post mortem analysis), isolation, reconfiguration, re-intialization
______
Abbiamo n subsystems che interagiscono in diversi modi
Serie : lampadine di natale
R(reliability)=produttoria[i] ri
parallelo: se un elemento s’interrompe ho solo un degrado
R = 1 - prod(1-ri)
___
Possiamo solo avere 2 su 3
Consistency
Partition Tolerance: funziona anche se ho problematiche durante lo scambio di messaggi (abbiamo 2 sistemi)
Availiability
Workload forecasting
Vogliamo predirre il workload, ci sono vari parametri come il session arrrival rate, richieste per session, think time, workload mix, response size.
Magari abbiamo tante richieste ma chiede solo l’homepage.
Dobbiamo vedere se ci serve davvero un modello complesso e su quali dati lavoro.
Raccogliamo dei data, costruiamo un modello, faccio forecasting e validation.
____
I dati possono filtrarli, magari un’analisi di fourier per dei pattern periodici.
_____
Misure d’errore:
Errore medio
Errore quadratico medio
Summa degli square error
____
Funzioni d’interpolazione (comune se voglio intercettare dei trend)
Minimize square error
___
Autocorrelazione: correlazione di una var con se stessa nel tempo
Slow decay
Fast decay
Tipi di simulazione?
Statico
Dinamico
Deterministici
Stocastici: il più comune
Tempo discrete a eventi
Tempo continue
Simulatori discreti
____
Quali sono gli step per una buona simulazione?
Abbiamo uno stato che include un clock.
Ho una serie di funzioni invocate al momento giusto:
- inizializzazione
- timing
- event management
Il main fa lo startup e shutdown
____
Definizione del modello
- collezionare dati per i parametri del modello
- documentare le assunzioni del modello
- collezionare dati di performance di un sistema esistente
- definire il livello di dettaglio
Fare validation del modello
SW development
Simulation validation:
- confrontare con dati o modello teorico
- fare una sensitivity analysis rispetto ai parametri
Gli esperimenti:
- dobbiamo definire la lunghezza della run
- numero delle run
- c’è un transitiorio da evitare durante l’aaccensione
Scriviamo il report