Performance evaluation Flashcards

1
Q

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?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quali sono le tipologie di Testing?

A

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…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cosa sono i benchmark?

Quali sono i tipi?

Quali sono i possibili abusi?

Quali sono gli standard?

A

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à.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quali sono i contributi del response time?

Che cos’è il network model?

Node model?

Complex model?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Formalizzazione

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

legge di little

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

modelli open loop vs closed loop

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

processi stocastici

modelli analitici

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
A

Allen-Cuneen approximation (G/G/N systems)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Come classifichiamo le failures?
Quali sono le metriche? Quali sono le classi di avalailability?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

In cosa consiste gestire una failure?

Come interagiscono i sistemi?

Teorema del CAP?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Workload forecasting

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Tipi di simulazione?

A

Statico
Dinamico

Deterministici
Stocastici: il più comune
Tempo discrete a eventi
Tempo continue

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Simulatori discreti

____
Quali sono gli step per una buona simulazione?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quali sono i vantaggi della simulazione?

Quali sono gli svantaggi?

Quali sono i pitfalls?

A

Per sistemi complessi che non soluzioni in forma chiusa

___
KPI = key perfromacne indicator

In esame da dei modelli già trattati
In realta non programmiamo i simulatori nella realtà
___
Le metriche statistiche

Se non abbiamo intervalli di confidenza, abbiamo poco in mano, se è basso vuol dire che non ho modo di capire cosa sta succedendo. In esame chiede un KPI (nelle slide)

17
Q
A

Validation: dobbiamo verificare che il modello è implementato bene, cioè rispecchia il sistema

Verification: Implentazione del sw

Stabilire credibilità: le info sono accettate da esperiti

18
Q
A